環境
Colaboratory
深層学習をtensorflow
で作っています
ソースコード
ソースコード : https://drive.google.com/file/d/1E1ThZAuEc8-8oyArmmDsppOqXB3a9rDj/view?usp=sharing
質問
例えば、身長と体重から性別を判定する場合、出力値は[p, 1-p]
のようになります(片方が男性、もう片方が女性で、pは確率)。
この場合、accuracy
は、
python:accuracy.py
1# modelの定義 2y = tf.nn.softmax(省略) 3t = tf.placeholder(tf.float32, shape=[None, 1]) # 出力 4correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(t, 1)) # *1 5accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32) # *2
としていて、問題なく動作しています。
*1の行:tとy(t:正解データ、y:modelの実行結果)は配列で、それぞれの配列の中の最大値のindexを比べることで、modelが推測した性別と正解データの性別が一致しているかを調べ、テストデータごとにTrue
またはFalse
で結果をcorrect_prediction
に保存しておく。
*2の行:correct_prediction
に入っているTrue
の数(1.0 x Trueの数)/correct_prediction
に入っているTrue
/False
の数を計算することで、正答率を求めている
という理解をしています。
ですが、例えば体重と性別から身長を推測する場合、出力値は、[p]のようになります。
この場合、accuracyを求めるのに上の方法は使えず、(y - x) ** 2
のような方法を使わないといけません。
ですが、正解データは標準化しているので、-1~1に値が収まっていないです。また、tensorflowに対する知識も浅いため、tensorflowでaccuracy
をどのように実装すればよいかがわかりません。
どのように実装すればよいかを教えていただけると助かります。
回答1件
あなたの回答
tips
プレビュー