PythonでTensorFlowをimportするときに発生するエラーについて
現在私はTensorFlowについていろいろなWebサイトを見ながら勉強してるのですが、エラーが出て困っています。
pythonシェルでimport tensorflowと入力すると何事もなくインポートできるのですが、コードを実行するとエラーが出ます。
コード内容はTensorFlow を使った機械学習ことはじめというスライドの中の最初のサンプルです。
コードとエラー内容
python
1import numpy as np 2import matplotlib.pyplot as plt 3import tensorflow as tf 4 5#入力変数と出力変数のプレースホルダを作成 6x = tf.placeholder(tf.float32, shape=(None,2), name="x") 7y_ = tf.placeholder(tf.float32, shape=(None,1), name="y") 8#モデルパラメータ 9a = tf.Variable(tf.zeros((2,1)), name="a") 10#モデル式 11y = tf.matmul(x, a) 12#誤差関数(loss) 13loss = tf.reduce_mean(tf.square(y_ - y)) 14#最適化手段を選ぶ(最急降下法) 15train_step = tf.train.GradientDescentOptimizer(0.02).minimize(loss) 16 17#訓練データの作成 18train_x = np.array([[1., 3.], [3., 1.,], [5., 7.]]) 19train_y = np.array([190., 330., 660.]).reshape(3, 1) 20print ("x=", train_x) 21print ("y=", train_y) 22 23#(2)セッションを準備し、変数を初期化 24sess = tf.Session() 25init = tf.global_variables_initializer() 26sess.run(init) 27 28#(3)最急勾配法でパラメータ更新(100回更新する) 29for i in range(100): 30 _, l, a_ = sess.run([train_step, loss, a], feed_dict={x: train_x, y: train_y}) 31 if (i+1) % 10 == 0: 32 print ("step=%3d, a1=%6.2f, a2=%6.2f, loss=%.2f" % (i + 1, a_[0], a_[1], 1)) 33 34#学習結果を出力 35est_a = sess.run(a, feed_dict={x: train_x, y: train_y}) 36print ("Estimated: a1=%6.2f, a2=%6.2f" % (est_a[0], est_a[1]))
エラー文
x= [[ 1. 3.] [ 3. 1.] [ 5. 7.]] y= [[ 190.] [ 330.] [ 660.]] Traceback (most recent call last): File "D:\Program Files\Anaconda3\lib\site-packages\tensorflow\python\client\session.py", line 1021, in _do_call return fn(*args) File "D:\Program Files\Anaconda3\lib\site-packages\tensorflow\python\client\session.py", line 1003, in _run_fn status, run_metadata) File "D:\Program Files\Anaconda3\lib\contextlib.py", line 66, in __exit__ next(self.gen) File "D:\Program Files\Anaconda3\lib\site-packages\tensorflow\python\framework\errors_impl.py", line 469, in raise_exception_on_not_ok_status pywrap_tensorflow.TF_GetCode(status)) tensorflow.python.framework.errors_impl.InvalidArgumentError: You must feed a value for placeholder tensor 'y' with dtype float [[Node: y = Placeholder[dtype=DT_FLOAT, shape=[], _device="/job:localhost/replica:0/task:0/cpu:0"]()]] During handling of the above exception, another exception occurred: Traceback (most recent call last): File "sample_1.py", line 37, in <module> _, l, a_ = sess.run([train_step, loss, a], feed_dict={x: train_x, y: train_y}) File "D:\Program Files\Anaconda3\lib\site-packages\tensorflow\python\client\session.py", line 766, in run run_metadata_ptr) File "D:\Program Files\Anaconda3\lib\site-packages\tensorflow\python\client\session.py", line 964, in _run feed_dict_string, options, run_metadata) File "D:\Program Files\Anaconda3\lib\site-packages\tensorflow\python\client\session.py", line 1014, in _do_run target_list, options, run_metadata) File "D:\Program Files\Anaconda3\lib\site-packages\tensorflow\python\client\session.py", line 1034, in _do_call raise type(e)(node_def, op, message) tensorflow.python.framework.errors_impl.InvalidArgumentError: You must feed a value for placeholder tensor 'y' with dtype float [[Node: y = Placeholder[dtype=DT_FLOAT, shape=[], _device="/job:localhost/replica:0/task:0/cpu:0"]()]] Caused by op 'y', defined at: File "sample_1.py", line 7, in <module> y_ = tf.placeholder(tf.float32, shape=(None,1), name="y") File "D:\Program Files\Anaconda3\lib\site-packages\tensorflow\python\ops\array_ops.py", line 1587, in placeholder name=name) File "D:\Program Files\Anaconda3\lib\site-packages\tensorflow\python\ops\gen_array_ops.py", line 2043, in _placeholder name=name) File "D:\Program Files\Anaconda3\lib\site-packages\tensorflow\python\framework\op_def_library.py", line 759, in apply_op op_def=op_def) File "D:\Program Files\Anaconda3\lib\site-packages\tensorflow\python\framework\ops.py", line 2240, in create_op original_op=self._default_original_op, op_def=op_def) File "D:\Program Files\Anaconda3\lib\site-packages\tensorflow\python\framework\ops.py", line 1128, in __init__ self._traceback = _extract_stack() InvalidArgumentError (see above for traceback): You must feed a value for placeholder tensor 'y' with dtype float [[Node: y = Placeholder[dtype=DT_FLOAT, shape=[], _device="/job:localhost/replica:0/task:0/cpu:0"]()]]
その後検索してみるとprotobufをアンインストールしてからimportすると解決するという記事をQiitaで見つけたのでやってみましたtensorFlowのimportでTypeErrorが出る場合
しかし、そうすると別のエラーが出てきました
エラー文
Traceback (most recent call last): File "sample_1.py", line 3, in <module> import tensorflow as tf File "D:\Program Files\Anaconda3\lib\site-packages\tensorflow\__init__.py", line 24, in <module> from tensorflow.python import * File "D:\Program Files\Anaconda3\lib\site-packages\tensorflow\python\__init__.py", line 63, in <module> from tensorflow.core.framework.graph_pb2 import * File "D:\Program Files\Anaconda3\lib\site-packages\tensorflow\core\framework\graph_pb2.py", line 6, in <module> from google.protobuf import descriptor as _descriptor ImportError: No module named 'google.protobuf'
その後protobufを再インストールしたのですが、最初に載せたエラー文と同じ内容のものが表示されました。
解決方法がありましたら教えて頂きたいです。
実行環境
Windows10
Python3.5.2(Anaconda)

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/01/01 06:03