質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

2555閲覧

TypeError: Expected bool for argument 'transpose_a'

退会済みユーザー

退会済みユーザー

総合スコア0

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2017/05/12 01:11

TypeError: Expected bool for argument 'transpose_a' not <tensorflow.python.ops.variables.Variable object at 0x7f0732493630>.
とエラーが出ました。

def xxx(train_X, train_y, test_X): train_X= tf.placeholder(tf.float32,[None,784]) train_y= tf.placeholder(tf.float32,[None,784]) W = tf.Variable(tf.zeros([784,10])) b = tf.Variable(tf.zeros([10])) y = tf.nn.softmax(tf.matmul(train_X, train_y,W)+b) pred_y= tf.placeholder(tf.float32,[None,10]) cross_entropy = -tf.reduce_sum(pred_y*tf.log(y)) train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy) init = tf.initialize_all_variables() correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1)) accuracy = tf.reduce_mean(tf.cast(correct_prediction,"foat")) return pred_y

とMNISTを読み込んで推測する準備をするコードを記事を参考にしながら書きました。
訓練画像を入れる変数→重みの用意→バイアスの用意→ソフトマックス回帰→予想ラベルの用意→交差エントロピー→勾配硬化法→変数の初期化→正しいかの予測→精度の計算の順にコードを構築しました。
さらに、このxxxメソッドを呼び出すコードを以下に書きました。

from sklearn.utils import shuffle from sklearn.metrics import f1_score from sklearn.datasets import fetch_mldata from sklearn.model_selection import train_test_split import numpy as np import tensorflow as tf del [ tf.app, tf.compat, tf.contrib, tf.errors, tf.gfile, tf.graph_util, tf.image, tf.layers, tf.logging, tf.losses, tf.metrics, tf.python_io, tf.resource_loader, tf.saved_model, tf.sdca, tf.sets, tf.summary, tf.sysconfig, tf.test, tf.train ] def load_mnist(): mnist = fetch_mldata('MNIST original') mnist_X, mnist_y = shuffle(mnist.data.astype('float32'), mnist.target.astype('int32'), random_state=42) mnist_X = mnist_X / 255.0 return train_test_split(mnist_X, mnist_y, test_size=0.2, random_state=42) def validate(): train_X, test_X, train_y, test_y = load_mnist() # validate for small dataset train_X_mini = train_X[:100] train_y_mini = train_y[:100] test_X_mini = test_X[:100] test_y_mini = test_y[:100] pred_y = xxx(train_X_mini, train_y_mini, test_X_mini) print(f1_score(test_y_mini, pred_y, average='macro')) def score(): train_X, test_X, train_y, test_y = load_mnist() pred_y = xxx(train_X, train_y, test_X) print(f1_score(test_y, pred_y, average='macro'))
validate() #score()

これらの3つのコードを上から順に Jupyter Notebookで実行したのですが、

--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-13-6eaef2a4f45a> in <module>() ----> 1 validate() 2 #score() <ipython-input-12-64b812fb44e9> in validate_homework() 50 test_y_mini = test_y[:100] 51 ---> 52 pred_y = xxx(train_X_mini, train_y_mini, test_X_mini) 53 print(f1_score(test_y_mini, pred_y, average='macro')) 54 <ipython-input-11-f4e0642d25c8> in homework(train_X, train_y, test_X) 4 W = tf.Variable(tf.zeros([784,10])) 5 b = tf.Variable(tf.zeros([10])) ----> 6 y = tf.nn.softmax(tf.matmul(train_X, train_y,W)+b) 7 #1行10列のベクトルに正解ラベルがなるようにしている? 8 pred_y= tf.placeholder(tf.float32,[None,10]) /usr/local/lib/python3.4/dist-packages/tensorflow/python/ops/math_ops.py in matmul(a, b, transpose_a, transpose_b, adjoint_a, adjoint_b, a_is_sparse, b_is_sparse, name) 1853 else: 1854 return gen_math_ops._mat_mul( -> 1855 a, b, transpose_a=transpose_a, transpose_b=transpose_b, name=name) 1856 1857 /usr/local/lib/python3.4/dist-packages/tensorflow/python/ops/gen_math_ops.py in _mat_mul(a, b, transpose_a, transpose_b, name) 1452 """ 1453 result = _op_def_lib.apply_op("MatMul", a=a, b=b, transpose_a=transpose_a, -> 1454 transpose_b=transpose_b, name=name) 1455 return result 1456 /usr/local/lib/python3.4/dist-packages/tensorflow/python/framework/op_def_library.py in apply_op(self, op_type_name, name, **keywords) 690 attr_value.list.f.extend([_MakeFloat(x, key) for x in value]) 691 elif attr_def.type == "bool": --> 692 attr_value.b = _MakeBool(value, key) 693 elif attr_def.type == "list(bool)": 694 attr_value.list.b.extend([_MakeBool(x, key) for x in value]) /usr/local/lib/python3.4/dist-packages/tensorflow/python/framework/op_def_library.py in _MakeBool(v, arg_name) 167 if not isinstance(v, bool): 168 raise TypeError("Expected bool for argument '%s' not %s." % --> 169 (arg_name, repr(v))) 170 return v 171 TypeError: Expected bool for argument 'transpose_a' not <tensorflow.python.ops.variables.Variable object at 0x7f0732493630>.

とエラーが出ました。私が書いていない'transpose_a'のところでエラーが出ているのが理解できません。どう直せばよいのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

tensorflowのmatmulの第3引数はbool値を想定しているので、Wを渡せばエラーになって当然です。
記事のコードをそのまま使っているなら、記事が間違っているのでしょうし、記事を参考にあなたが記述したコードであれば、記事の内容をよく理解していない可能性が高いでしょう。

投稿2017/05/12 06:09

m-take

総合スコア249

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問