Tensorflow,ValueError:使用序列设置数组元素

时间:2018-06-01 10:40:56

标签: python pandas tensorflow

尝试训练我的张量流图时,我收到错误信息:

  

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)

完整错误消息: enter image description here

1 个答案:

答案 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数组而不是一个对象数组