TensorFlowというDeep Learning関連のもので、pythonコードを学習中。
https://www.tensorflow.org/versions/master/tutorials/mnist/tf/index.html#tensorflow-mechanics-101
その fully_connected_feed.py にある以下の記述について
from six.moves import xrange # pylint: disable=redefined-builtin
Sixは、Python 2 と Python 3 の間の違いを吸収するためのシンプルなユーティリティを提供します。
同じページの下の方に対応表がある。
Six名 | Python2名 | Python3名 |
---|---|---|
... | ... | ... |
range | xrange() | range |
... | ... | ... |
Six名にすることでPython3対応しやすくするのだろう。
しかしながら fully_connected_feed.py においては以下のように Python2名で記載しているので、Python3対応するときに結局書き直さないといけない。
# Start the training loop.
for step in xrange(FLAGS.max_steps):
ためしに以下のようにしても実行でき、Precisionも同様になった。
# Start the training loop.
for step in range(FLAGS.max_steps):
元々の fully_connected_feed.py において、以下をコメントアウトしても動作に問題ないので、結局Sixは使われていないような気がする。
from six.moves import xrange # pylint: disable=redefined-builtin