1
私は入力として正規化されたword2vecを持つ非常に単純なNNを使用しています。 私の列車(ミニバッチに基づいて)を走らせるとき、列車の費用は1020年頃から始まり、1000人民元を下回りますが、これ以上ではありません。正確さは約50%です。TensorFlowなぜ私の費用関数は減少しないのですか?
なぜコストは下がりませんか?どのようにして、毎回の秤量が更新されることを確認することができますか?
apply_weights_OP = tf.matmul(X, weights, name="apply_weights")
add_bias_OP = tf.add(apply_weights_OP, bias, name="add_bias")
activation_OP = tf.nn.sigmoid(add_bias_OP, name="activation")
cost_OP = tf.nn.l2_loss(activation_OP-yGold, name="squared_error_cost")
optimizer = tf.train.AdamOptimizer(0.001)
global_step = tf.Variable(0, name='global_step', trainable=False)
training_OP = optimizer.minimize(cost_OP, global_step=global_step)
correct_predictions_OP = tf.equal(
tf.argmax(activation_OP, 0),
tf.argmax(yGold, 0)
)
accuracy_OP = tf.reduce_mean(tf.cast(correct_predictions_OP, "float"))
newCost, train_accuracy, _ = sess.run(
[cost_OP, accuracy_OP, training_OP],
feed_dict={
X: trainX[indice_bas: indice_haut],
yGold: trainY[indice_bas: indice_haut]
}
)
おかげ
私はつぶやきのバイナリ分類をしています。私は既にクロスエントロピー(cost_OP = -tf.reduce_sum(yGold * tf.log(activation_OP)))を試みましたが、トレーニング中の精度は99%でした。テストセットでは100%の精度が得られました。おそらく私は隠れた層を追加しようとするべきです。 – fhe