我是tensorflow新手,想要训练用于分类的逻辑模型。tensorflow InvalidArgumentError:您必须为dtype float提供占位符张量的值
# Set model weights
W = tf.Variable(tf.zeros([30, 16]))
b = tf.Variable(tf.zeros([16]))
train_X, train_Y, X, Y = input('train.csv')
#construct model
pred = model(X, W, b)
# Minimize error using cross entropy
cost = tf.reduce_mean(-tf.reduce_sum(Y*tf.log(pred), reduction_indices=1))
# Gradient Descent
learning_rate = 0.1
#optimizer = tf.train.AdamOptimizer(learning_rate).minimize(cost)
optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost)
# Initializing the variables
init = tf.initialize_all_variables()
get_ipython().magic(u'matplotlib inline')
import collections
import matplotlib.pyplot as plt
training_epochs = 200
batch_size = 300
train_X, train_Y, X, Y = input('train.csv')
acc = []
x = tf.placeholder(tf.float32, [None, 30])
y = tf.placeholder(tf.float32, [None, 16])
with tf.Session() as sess:
sess.run(init)
# Training cycle
for epoch in range(training_epochs):
avg_cost = 0.0
#print(type(y_train[0][0]))
print(type(train_X))
print(type(train_X[0][0]))
print X
_, c = sess.run([optimizer, cost], feed_dict = {x: train_X, y: train_Y})
的feef_dict方法不起作用,与抱怨:InvalidArgumentError:必须喂为占位符张量 'Placeholder_54' 的值与D型浮子 [[节点:Placeholder_54 = Placeholderdtype = DT_FLOAT,形状= [] ,_device = “/作业:本地主机/复制:0 /任务:0/CPU:0”]] 引起运算u'Placeholder_54' :
予检查的数据类型,用于训练特征数据X:
train_X type: <type 'numpy.ndarray'>
train_X[0][0]: <type 'numpy.float32'>
train_X size: (300, 30)
place_holder info : Tensor("Placeholder_56:0", shape=(?, 30), dtype=float32)
我不知道它为什么抱怨。希望有人可以帮助,谢谢
如果你在一个jupyter笔记本,在定义你的变量之前,尝试运行'tf.reset_default_graph()'。我遇到了一些类似的问题,这是帮助解决问题的一个方面。 – Engineero