TensorFlow v1.2.1 > AutoEncoderを実行してみた


動作環境
GeForce GTX 1070 (8GB)
ASRock Z170M Pro4S [Intel Z170chipset]
Ubuntu 16.04.4 LTS desktop amd64
TensorFlow v1.2.1
cuDNN v5.1 for Linux
CUDA v8.0
Python 3.5.2
IPython 6.0.0 -- An enhanced Interactive Python.
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
GNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu)
scipy v0.19.1
geopandas v0.3.0
MATLAB R2017b (Home Edition)
ADDA v.1.3b6
gnustep-gui-runtime v0.24.0-3.1

AutoEncoderを実行してみた。

コードは以下を取得。
https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/3_NeuralNetworks/autoencoder.py

Python3で実行 > エラー

.pyというファイルだが、Python3で実行すると以下のエラーになる。

    import _tkinter
ImportError: No module named '_tkinter'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "autoencoder.py", line 21, in <module>
    import matplotlib.pyplot as plt
  File "/usr/local/lib/python3.5/dist-packages/matplotlib/pyplot.py", line 115, in <module>
    _backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup()
  File "/usr/local/lib/python3.5/dist-packages/matplotlib/backends/__init__.py", line 32, in pylab_setup
    globals(),locals(),[backend_name],0)
  File "/usr/local/lib/python3.5/dist-packages/matplotlib/backends/backend_tkagg.py", line 6, in <module>
    from six.moves import tkinter as Tk
  File "/home/yasokada/.local/lib/python3.5/site-packages/six.py", line 92, in __get__
    result = self._resolve()
  File "/home/yasokada/.local/lib/python3.5/site-packages/six.py", line 115, in _resolve
    return _import_module(self.mod)
  File "/home/yasokada/.local/lib/python3.5/site-packages/six.py", line 82, in _import_module
    __import__(name)
  File "/usr/lib/python3.5/tkinter/__init__.py", line 38, in <module>
    raise ImportError(str(msg) + ', please install the python3-tk package')
ImportError: No module named '_tkinter', please install the python3-tk package

Tkinterは以前気になりセットアップした覚えはある。
(学習コストとメリットを天秤にかけて、当面使わないことにしている。)

Jupyter Notebookで実行

ソースの内容を見るとMatplotlibを使っているのでJupyter Notebook(以下Jupyter)で実施してみる。

同じソースは.ipynbファイルとして作成。Jupyterで実行してみた。

Reconstructed Images
の生成まで動作した。

.ipynbとして配布すればいいように思うが、そうしない理由はあるのかもしれない。

対応TensorFlowのバージョン?

https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/3_NeuralNetworks/autoencoder.py
のhistoryを見ると
Aug 29, 2017で止まっている。

最新のTensorFlowでもそのまま動作するコードなのか未消化。
https://www.tensorflow.org/versions/
https://github.com/tensorflow/tensorflow/blob/master/RELEASE.md