先ほどこちらの記事でローカル環境でtensorFlowの環境を構築したが、GPUが使えなかったので、AWSのGPUインスタンスでGPUを試みようとしたところ、インストール後にこんなエラーが出てつまづいた。
$ python tensorflow/models/image/mnist/convolutional.py
Traceback (most recent call last):
File "tensorflow/models/image/mnist/convolutional.py", line 13, in <module>
import tensorflow.python.platform
File "/home/ec2-user/virtualenv/tensorflow/local/lib/python2.7/site-packages/tensorflow/__init__.py", line 4, in <module>
from tensorflow.python import *
File "/home/ec2-user/virtualenv/tensorflow/local/lib/python2.7/site-packages/tensorflow/python/__init__.py", line 13, in <module>
from tensorflow.core.framework.graph_pb2 import *
File "/home/ec2-user/virtualenv/tensorflow/local/lib/python2.7/site-packages/tensorflow/core/framework/graph_pb2.py", line 16, in <module>
from tensorflow.core.framework import attr_value_pb2 as tensorflow_dot_core_dot_framework_dot_attr__value__pb2
File "/home/ec2-user/virtualenv/tensorflow/local/lib/python2.7/site-packages/tensorflow/core/framework/attr_value_pb2.py", line 16, in <module>
from tensorflow.core.framework import tensor_pb2 as tensorflow_dot_core_dot_framework_dot_tensor__pb2
File "/home/ec2-user/virtualenv/tensorflow/local/lib/python2.7/site-packages/tensorflow/core/framework/tensor_pb2.py", line 16, in <module>
from tensorflow.core.framework import tensor_shape_pb2 as tensorflow_dot_core_dot_framework_dot_tensor__shape__pb2
File "/home/ec2-user/virtualenv/tensorflow/local/lib/python2.7/site-packages/tensorflow/core/framework/tensor_shape_pb2.py", line 22, in <module>
serialized_pb=_b('\n,tensorflow/core/framework/tensor_shape.proto\x12\ntensorflow\"d\n\x10TensorShapeProto\x12-\n\x03\x64im\x18\x02 \x03(\x0b\x32 .tensorflow.TensorShapeProto.Dim\x1a!\n\x03\x44im\x12\x0c\n\x04size\x18\x01 \x01(\x03\x12\x0c\n\x04name\x18\x02 \x01(\tb\x06proto3')
TypeError: __init__() got an unexpected keyword argument 'syntax'
解決方法
python-protobufというモジュールのバージョンが古い場合、TensorFlowで要求されているprotobuf-3.0.0a4とコンフリクトしてうまく動かないらしい。
なのでpython-protobufを一度アンインストールする。
pip uninstall protobuf
これでもう一度importしてみると、解決した。