태그 보관물: TensorFlow

TensorFlow 1.11.0 RC0 Release

텐서플로 1.11.0 RC0 버전이 릴리즈되었습니다. 1.11.0 버전부터는 cudnn 7.2 이상을 설치해야 합니다. 1.11.0에서 바뀐 자세한 내용은 릴리즈 노트를 참고해 주세요.

텐서플로 1.11.0 RC0 버전은 pip를 사용해 설치할 수 있습니다.

$ pip install --upgrade --pre tensorflow
$ pip install --upgrade --pre tensorflow-gpu

(업데이트) 1.11.0 RC1 버전이 릴리즈되었습니다.

핸즈온 머신러닝 주피터 노트북 업데이트 안내

핸즈온 머신러닝의 원서 주피터 노트북이 조금 업데이트되었습니다. 변경된 내용을 번역서의 깃허브에도 반영하였습니다. 다음은 변경된 상세 내용입니다.

  • 14_recurrent_neural_networks.ipynb
    • 레버(Reber) 문법 연습문제에서 my_reber_classifier의 경로를 변경하고 추정 확률을 퍼센트로 나타냅니다.
      with tf.Session() as sess:
      saver.restore(sess, "my_reber_classifier")
      y_proba_val = y_proba.eval(feed_dict={X: X_test, seq_length: l_test})
      
      print()
      print("레버 문자열일 추정 확률:")
      for index, string in enumerate(test_strings):
      print("{}: {:.2f}%".format(string, y_proba_val[index][0]))

      을 다음으로 변경합니다.

      with tf.Session() as sess:
      saver.restore(sess, "./my_reber_classifier")
      y_proba_val = y_proba.eval(feed_dict={X: X_test, seq_length: l_test})
      
      print()
      print("레버 문자열일 추정 확률:")
      for index, string in enumerate(test_strings):
      print("{}: {:.2f}%".format(string, 100 * y_proba_val[index][0]))
  • 02_end_to_end_machine_learning_project.ipynb
    • 사이킷런의 0.20 버전에 포함될 ColumnTransformer를 사용하면 책의 예제에서처럼 DataFrameSelectorFeatureUnion을 사용하지 않고 간단히 전체 파이프라인을 만들 수 있습니다. 아직 사이킷런 0.20 버전이 릴리스되기 전이므로 여기서는 future_encoders.pyColumnTransformer를 넣어 놓고 사용합니다.
      from future_encoders import ColumnTransformer
      
      num_attribs = list(housing_num)
      cat_attribs = ["ocean_proximity"]
      
      full_pipeline = ColumnTransformer([
      ("num", num_pipeline, num_attribs),
      ("cat", OneHotEncoder(), cat_attribs),
      ])
      
      housing_prepared = full_pipeline.fit_transform(housing)
      housing_prepared
  • 11_deep_learning.ipynb
    • 텐서플로 모델 재사용하기에서 노드 이름 수정
      hidden3 = tf.get_default_graph().get_tensor_by_name("dnn/hidden4/Relu:0")

      을 다음으로 변경합니다.

      hidden3 = tf.get_default_graph().get_tensor_by_name("dnn/hidden3/Relu:0")
  • 11_deep_learning_exercises.ipynb
    • 불필요한 변수 초기화 루틴 삭제
      for var in output_layer_vars: 
          var.initializer.run()
  • extra_tensorflow_reproducibility.ipynb 파일 추가

감사합니다! 🙂

TensorFlow 1.10.0 Release

텐서플로 1.10.0 버전이 릴리즈되었습니다. tf.math 하위에 수학 함수들이 정리되었고 라즈베리파이를 위한 설치 문서가 추가되었습니다. 최근 넘파이(Numpy) 1.15.0 버전이 릴리즈되었지만 텐서플로 1.10 버전은 넘파이 1.14.5까지만 지원합니다.

텐서플로 1.10 버전은 pip를 사용해 설치할 수 있습니다. 아직 파이썬 3.7 버전의 빌드는 제공하지 않습니다.

$ pip install --upgrade tensorflow
$ pip install --upgrade tensorflow-gpu

TensorFlow 1.10.0 RC0 Release

텐서플로 1.10 RC 버전이 릴리즈되었습니다. 1.9버전이 나온지 정말 며칠되지 않았는데 말이죠. 1.10버전부터 NVIDIA NCCL 2.2 버전을 사용합니다. 2개 이상의 GPU를 사용하는 경우 NCCL 라이브러리를 업데이트해야 합니다. 텐서플로 1.10 RC 버전은 pip 명령을 사용해 설치할 수 있습니다.

$ pip install --upgrade --pre tensorflow
$ pip install --upgrade --pre tensorflow-gpu

(업데이트) RC1 버전이 릴리즈되었습니다.

사이킷런도 0.20 버전을 준비중입니다. 아마 가을에는 릴리즈되지 않을까 생각됩니다.

최근 사이킷런에서 리팩토링된 코드 중에서 습관적으로 사용하던 np.ones(), np.zeros()np.full()로 바꾼 것이 눈에 띄입니다. 무심코 다음처럼 비효율적인 코드를 쓰게 됩니다.

np.ones((3,2)) * -1

다음과 같이 쓰는게 훨씬 직관적이고 효율적입니다. 🙂

np.full((3,2), -1.)

TensorFlow 1.9 Release

텐서플로 1.9 버전이 릴리즈되었습니다. tf.keras가 케라스 2.1.6 버전 스펙으로 업데이트되었습니다. 텐서플로의 튜토리얼도 케라스 기반으로 바뀌었네요. 텐서플로는 pip 로 손쉽게 설치할 수 있습니다. PyPI에 파이썬 3.6 버전의 리눅스용 휠wheel이 빠져 있습니다. 깃허브에 이슈가 등록되었으니 하루, 이틀 정도면 추가될 것 같습니다. “핸즈온 머신러닝”의 주피터 노트북도 모두 텐서플로 1.9에서 테스트하고 바뀌는 내용을 안내해 드리겠습니다.

$ pip install --upgrade --pre tensorflow
$ pip install --upgrade --pre tensorflow-gpu

(업데이트) 파이썬 3.6 버전의 리눅스 휠이 추가되었습니다.

“핸즈온 머신러닝” 주피터 노트북 업데이트 안내

핸즈온 머신러닝“의 3장, 11장 주피터 노트북이 조금 업데이트되었습니다.

  • 3장: 연습문제 3번의 답에 서포트 벡터 머신과 랜덤 포레스트의 결과를 박스 플롯(boxplot)으로 비교하는 셀이 추가되었습니다. 다음 스샷을 참고해 주세요.

  • 11장: SELU 활성화 함수에 대한 설명이 보강되었습니다. 다음 스샷을 참고해 주세요.


감사합니다! 🙂

TensorFlow 1.9.0 RC0, Keras 2.2.0 Release

텐서플로 1.9.0 RC0 버전이 릴리즈되었습니다. tf.keras가 케라스 2.1.6 버전 API로 업데이트되었습니다. tf.layers 하위 클래스들이 tf.keras.layers를 상속하도록 변경되었습니다. 텐서플로의 고수준 API와 케라스 API가 공통 분모를 가지게 되었다는 점이 흥미롭습니다.

그 외에도 버그 수정과 기능의 변화가 많이 있습니다. 자세한 내용은 릴리즈 노트를 참고하세요.  1.9.0 RC0 버전은 pip 명령으로 간단히 설치할 수 있습니다.

$ pip install --upgrade --pre tensorflow
$ pip install --upgrade --pre tensorflow-gpu

(업데이트) 텐서플로 1.9.0 RC1 버전이 릴리즈되었습니다.
(업데이트) 텐서플로 1.9.0 RC2 버전이 릴리즈되었습니다.

케라스 2.2.0 버전이 릴리즈되었습니다. Model 클래스를 리팩토링한 것이 가장 큰 변화같습니다. ModelSequential 클래스의 상속관계를 직관적으로 만들었습니다. 이전 버전까지는 Sequential 클래스에서 Model 클래스의 객체를 만들어 model 속성에 저장했습니다. 이제는 Model 클래스의 단순 상속 클래스이기 때문에 평범한 파이썬 클래스처럼 Model 클래스의 메서드를 참조할 수 있습니다. Sequential 클래스의 model 속성은 deprecated 됩니다. 이런 변경 덕택에 나만의 모델 클래스를 쉽게 서브 클래스로 만들 수 있습니다.

또 하나의 변경 사항은 모델의 fit(), predict(), evaludate() 메서드의 입력값으로 텐서플로의 텐서를 넣을 수 있습니다. 물론 텐서플로 백엔드일 경우에만 가능합니다. make_one_shot_iterator() 메서드 등으로 tf.Iterator 객체를 만들어 주입할 수 있습니다.

자세한 내용은 릴리즈 노트를 참고하세요. 케라스는 pip로 간단하게 설치할 수 있습니다.

$ pip install keras

[핸즈온 머신러닝] 업데이트 안내해 드립니다.

핸즈온 머신러닝” 도서의 수정 사항에 대해 안내해 드립니다. 최근 원서 깃허브에 여러가지 내용이 추가 되어서 이를 번역서 깃허브에 반영하였습니다. 본문 내용에 영향이 있는 것은 에러타로 등록하였습니다. 도서를 구매하셨다면 꼭 확인 부탁드립니다. 주요한 변경 사항은 다음과 같습니다.

  • 7장의 연습문제 8, 9번의 답이 추가되었습니다.
  • 16장의 연습문제 8번의 답이 추가되었습니다.
  • 2장 3장에 범주형 변수의 인코딩을 위해 OrdinalEncoder와 OneHotEncoder를 사용하는 예가 추가되었습니다(사이킷런 0.20에 추가될 예정인 CategoricalEncoder가 두 개의 클래스로 리팩토링되었습니다). 그리고 두 클래스를 future_encoders.py 로 분리했습니다.
  • 2장에 신뢰 구간을 구하는 예가 추가되었습니다.
  • 7장에 XGBoost 예가 추가되었습니다.
  • 10장에 tf.contrib.learn 외에 tf.estimator를 사용한 예가 추가되었습니다.
  • 12장에 tf.data 를 사용한 예가 추가되었습니다.
  • 16장에 넘파이 배열을 사용한 재현 메모리 구현 예가 추가되었습니다.
  • tf.examples.tutorials.mnist 가 deprecated 될 예정이므로 Keras에 포함된 MNIST 함수를 사용하도록 바꾸었습니다.
  • 텐서보드를 주피터 노트북에 표현하기 위해 추가했던 코드를 tensorflow_graph_in_jupyter.py 파일로 분리했습니다.
  • 9장에 있던 자동 미분 예를 extra_autodiff.ipynb로 분리했습니다. 이 노트북의 번역을 완료하여 업데이트했습니다.

아직 번역하지 못한 extra 노트북이 여러개 남아 있습니다. 꾸준히 작업하고 있으니 조금만 기다려 주세요. 감사합니다!

TensorFlow 1.8.0 Release

텐서플로 1.8.0 버전이 릴리즈되었습니다. 눈에 띄이는 것은 그래디언트 부스팅 모델(BoostedTreesClassifier, BoostedTreesRegressor)이 estimator 아래 추가되어 사용하기 편리해진 것입니다. ‘핸즈온 머신러닝‘을 출간하자마자 모든 노트북을 다시 실행해야겠네요. 🙂

자세한 변경 내용은 릴리즈 노트를 참고하세요. 이전과 마찬가지로 pip 명령으로 간단히 설치할 수 있습니다.

$ pip install --upgrade tensorflow
$ pip install --upgrade tensorflow-gpu

‘핸즈온 머신러닝’이 출간되었습니다.

b9267655530_lHands-On Machine Learning with Scikit-Learn & TensorFlow의 번역서 ‘핸즈온 머신러닝‘이 출간되었습니다!

그 동안 이 작업을 하면서 많은 것을 배웠습니다. 모쪼록 다른 누군가에게도 도움이 된다면 다행입니다.

원래 번역서 제목이 ‘사이킷런과 텐서플로를 활용한 머신러닝, 딥러닝 실무’ 정도로 예상되었는데 출간 직전에 ‘핸즈온 머신러닝’으로 변경되었습니다. 개인적으로는 단순하고 평소에도 부르는 이름이라 만족입니다. 🙂 혹시 이 책에 관해 궁금한 점 있으면 언제든지 댓글이나 메일 주세요.

마지막으로 책을 만드는 데 도움을 주신 많은 분들께 다시 한번 감사드립니다.

(저자 오렐리앙도 아주 기뻐하네요. ㅎ)