2017-04-16 17 views
0

Tensorflowで非常に簡単な分類の例を試していました。 1ホットベクトル、tf.nn.softmaxを使用する代わりに、ロットによる交差気圧損失。私は0/1ラベルの離散的な場合を使用したかったのです。ここでNNモデルの出力は0または1になるでしょう。したがって、私はこのようなやり方をしました。したがって、y_ = tf.nn.sigmoid(tf.matmul(hidden、weight2)+ bias2) y_ = tf.cast(tf.greaterequal(y 、0.5)、tf.float32)これはテンソル0または1を与えます。しかし、私はこれを訓練しようとするとエラーが発生します。ここに完全なコードがあります。 https://gist.github.com/kris-singh/54aecbc1d61f1d7d79a43ae2bfac8516私は何をしようとしているのですか?もしそうなら、どのように?Tensorflowの離散ラベルによる分類

+1

私はtf.greaterequal()のようなmax関数をグラデーション降下オプティマイザと一緒に使うことはできないと思います。このようなオプティマイザが個別のネットワーク出力をどのように扱うべきなのか、私は想像もできません。 Sigmoidを使用して連続したネットワーク出力を許可し、キャスト()やその他のgreaterequal()操作を実行するだけで、トレーニング自体ではなく、ある種の分類精度を測定することができます。 – ml4294

+0

ええと....ありがとう私は同じ行に沿って私はバックプロパゲーションが計算上のグラフの "キャスト"ノードでは機能しないことを理解しています。しかし、ペンと紙でこれを計算する間、これは私にとってかなり合理的なようです。この場合、伝播されたエラーは0または1になります。これは理にかなっていますか? –

答えて

0

私はコメントが質問に答えると思います。

関連する問題