私は、トレーニングのための次のネットワークを持っている単純なテンソルフローニューラルネットワークは、精度を上げたり、損失を減らしたりしませんか?
graph = tf.Graph()
with graph.as_default():
tf_train_dataset = tf.constant(X_train)
tf_train_labels = tf.constant(y_train)
tf_valid_dataset = tf.constant(X_test)
weights = tf.Variable(tf.truncated_normal([X_train.shape[1], 1]))
biases = tf.Variable(tf.zeros([num_labels]))
logits = tf.nn.softmax(tf.matmul(tf_train_dataset, weights) + biases)
loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits, tf_train_labels))
optimizer = tf.train.GradientDescentOptimizer(0.5).minimize(loss)
train_prediction = tf.nn.softmax(logits)
valid_prediction = tf.nn.softmax(tf.matmul(tf_valid_dataset, weights) + biases)
と、次のように私はそれを実行した、
num_steps = 10
with tf.Session(graph=graph) as session:
tf.initialize_all_variables().run()
print('Initialized')
for step in range(num_steps):
_, l, predictions = session.run([optimizer, loss, train_prediction])
print("Loss: ",l)
print('Training accuracy: %.1f' % sklearn.metrics.accuracy_score(predictions.flatten(), y_train.flatten()))
しかし
Initialized
Loss: 0.0
Training accuracy: 0.5
Loss: 0.0
Training accuracy: 0.5
を次のようにX_trainの形状が(213403ですoutputes 、25)、y_trainは(213403、1)でログに対処します。私は2つのクラス、すなわち1または0しかないので、ラベルを1つのホットとしてエンコードしませんでした。私は2次的な損失関数でも試みましたが、それは同じで、同じことが起こりました。損失関数はすべて。私は文法上の間違いをここで感知していますが、私は無知です。