2017-06-16 45 views
0

我是TFLearn的新手,尝试创建一个简单的加法程序。 输入是2个值,输出是一个值,这是输入的总和。我得到的错误是"ValueError: Cannot feed value of shape (100,) for Tensor 'TargetsData/Y:0', which has shape '(?, 1)"看起来形状/批量大小似乎与代码中的匹配,所以我不知道列车/测试数据的生成方式是否是问题,或者NN创建代码是否有误。 这里是代码:尝试创建简单加法模型时,TFLearn无法提供形状值(ValueError)

import numpy as np 
import tflearn 


def generate_answers(data): 
    answers = [] 
    for row in data: 
     answers.append(sum(row)) 
    return np.array(answers).astype(float) 

train_data_count = 1000 
test_data_count = 100 

net = tflearn.input_data(shape=(None, 2)) 
net = tflearn.fully_connected(net, 100) 
net = tflearn.fully_connected(net, 100) 
net = tflearn.fully_connected(net, 1, activation="linear") 
net = tflearn.regression(net, optimizer='sgd', loss='mean_square', metric='R2', learning_rate=0.1) 
model = tflearn.DNN(net) 

train_data = np.random.randint(500, size=(train_data_count, 2)).astype(float) 
train_answers = generate_answers(train_data) 
print(train_data.shape) 
print(train_answers.shape) 
model.fit(train_data, train_answers, n_epoch=100, batch_size=100, show_metric=True) 

test_data = np.random.randint(500, size=(test_data_count, 2)).astype(float) 
test_answers = generate_answers(test_data) 
predictions = model.predict(test_data) 

count = 0 
for i in range(len(predictions)): 
    if test_answers[i] == predictions[i]: 
     count += 1 
print(count, "/", len(predictions)) 

任何帮助表示赞赏。

回答

0

原来,在回归帮助解决该问题之前添加net = tflearn.reshape(net, [-1])。该程序仍然有一些错误,但至少可以解决。

相关问题