爲什麼x需要是float?爲什麼不能這樣做int因爲我傳遞了一個類型的列表int?爲什麼這個tf.placeholder是一個浮點數?
代碼:
x = tf.placeholder(tf.float32, shape=[None, 1]) # Why must this be a float?
y = tf.placeholder(tf.int32, shape=[None, 2])
with tf.name_scope("network"):
layer1 = tf.layers.dense(x, 100, activation=tf.nn.relu, name="hidden_layer")
output = tf.layers.dense(layer1, 2, name="output_layer")
with tf.name_scope("loss"):
xentropy = tf.nn.softmax_cross_entropy_with_logits(labels=y, logits=output)
loss = tf.reduce_mean(xentropy, name="loss")
with tf.name_scope("train"):
optimizer = tf.train.AdamOptimizer()
training_op = optimizer.minimize(loss)
with tf.name_scope("eval"):
with tf.Session() as sess:
for i in range(1, 50):
sess.run(tf.global_variables_initializer())
saver = tf.train.Saver()
sess.run(training_op, feed_dict={x: np.array(train_data).reshape([-1, 1]), y: label})
if i % 10 == 0:
saver.save(sess, "saved_models/testing")
print "Saved"
當我改變它tf.int32,它提供了以下錯誤:
TypeError: Value passed to parameter 'features' has DataType int32 not in list of allowed values: float16, float32, float64
,如果需要,我可以提供更多的代碼。
輸入以'train_data = range(1,10000,1) – Bosen