尝试训练我的张量流图时,我收到错误信息:
ValueError:使用序列设置数组元素
发生在这行代码中,在feed_dict函数中:
# run the session and train the model
_, c = sess.run([optimizer, cost], feed_dict = {input_x: x_train_v, output_y: y_train})
我的输出变量(y_train)似乎有问题。它是pandas数据框内的大小(25)的列表。 已检查每个列表是否与
具有相同的长度print(y_train.shape) #(23904,)
print(y_train.apply(type)[0]) #<class 'list'>
n = len(y_train[0])
if all(len(x) == n for x in y_train):
print("true") #true
使用以下代码创建变量:
dataframe['category_number'] = ""
for _ in range(len(dataframe)):
string = dataframe.at[_, 'Product Categorization Tier 1'].strip()
number = category_list.index(string)
# saving as category vector
vector = [0] * 25
vector[number] = 1
dataframe.at[_,'category_number'] = vector
y_train = train_df["category_number"]
修改 成本函数和优化器
prediction = neural_network_model(input_x )
cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=prediction, labels=output_y))
optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost)
答案 0 :(得分:0)
尝试类似
的内容y_train = []
for _ in range(len(dataframe)):
string = dataframe.at[_, 'Product Categorization Tier 1'].strip()
number = category_list.index(string)
# saving as category vector
vector = [0] * 25
vector[number] = 1
y_train.append(vector)
确保你得到一个2d-int数组而不是一个对象数组