텐서플로우 2.x 시작해 보기
try:
# %tensorflow_version only exists in Colab.
%tensorflow_version 2.x
except Exception:
pass
파이썬 작업 환경은 구글 Colab 을 이용합니다. (https://colab.research.google.com/)
1. Try and Except
try A, except B는 “A를 하는데 만일 그게 뜻대로 안되면 B를 해라”의 의미로 간단히 이해할 수 있습니다. try내의 코드가 성공적으로 수행된다면 except 이하의 내용은 처리되지 않습니다. 반대로 try 내의 코드가 제 역할을 수행하지 못하고 에러를 발생시키면, except 이하의 구문이 실행됩니다.
위의 코드 블록의 예시를 통해 살펴보면, try 를 통해 아래의 코드를 실행시키는 것을 알 수 있습니다.
%tensorflow_version 2.x
참고로, # 기호 다음에 나오는 문자열은 코멘트로 간주되어 프로그램 실행시 # 이하는 실행되지 않습니다. 따라서 “# %tensorflow_version only exists in Colab” 이 부분은 컴퓨터가 아닌 사람을 대상으로 하는 설명이라고 간주할 수 있습니다.
% 기호는 대한 내용은 하단에서 다루도록 하겠습니다.
더 쉬운 예제를 통해 try, except 가 어떻게 사용되는지 확인해 보겠습니다.
아래의 코드를 살펴봅시다.
try:
f = open(‘이런_이름을_가진_파일_이름은_없습니다.txt’)
except Exception:
print(‘미안합니다. 그런 이름을 가진 파일은 존재하지 않습니다.’)
위의 코드에서는 try 구문을 이용해 ‘이런_이름을_가진_파일_이름은_없습니다.txt’ 라는 파일을 f 라는 변수에 저장하고자 했습니다. 하지만 파일 이름에서 알 수 있듯 이런 파일은 존재하지 않지요. 이렇게 되면 try 구문이 수행하려고 하는 일이 실행되지 못하고, 에러를 일으킵니다. 이 때 바로 except 구문이 실행됩니다. 여기서 ‘Exception’은 try 구문 실행이 실패했을 때를 가리킵니다. 즉 에러가 발생하는 상황인것이죠. 따라서 위의 코드에 따르면, 실행 결과로 ‘미안합니다. 그런 이름을 가진 파일은 존재하지 않습니다.’ 라는 문장이 출력됩니다.
2. % Magic function
파이썬 코드를 살펴보다 보면, 심심치 않게 % 기호를 발견하게 됩니다. 이 기호는 ipython magic function을 나타내는 표시입니다. 즉, 파이썬 인터랙티브 노트북, 다른 말로 확장자가 ipynb 로 끝나는 노트북 환경에서 작업할 때 손쉽게 이용할 수 있는 함수인 것이지요.
%matplotlib inline
저는 위의 코드를 통해 magic function 이라는 것의 존재를 처음 알게 됐었습니다. 참고로 위의 코드는, ipython 노트북 안에서 그래프를 바로 출력해서 보여주는 역할을 합니다.
magic function 일반에 대한 더 자세한 설명을 확인하고 싶으신 분은, 다음의 웹페이지를 참고하시기 바랍니다.
(구글 코랩 magic function: https://colab.research.google.com/github/jakevdp/PythonDataScienceHandbook/blob/master/notebooks/01.03-Magic-Commands.ipynb
ipython 전반 magic function: https://ipython.readthedocs.io/en/stable/interactive/magics.html)
그렇다면, 아래의 코드를 조금 더 자세히 살펴봅시다.
try:
# %tensorflow_version only exists in Colab.
%tensorflow_version 2.x
# 다음에 나오는 코멘트를 주목해 봅시다. “%tensorflow_version 은 오직 Colab 에서만 존재한다” 라고 적혀있습니다. 즉 아래의 %은 코랩이라는 ipython 노트북 환경에서 특수하게 작동하는 magic function 이라는 것이지요. 즉, 코랩 환경이 아닌 일반 주피터 노트북등의 환경에서 위의 코드를 실행하려면 에러가 발생합니다. 텐서플로우 2.0 버전은 코랩에서만 지원되고 있기 때문입니다.