2017-06-16 71 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])。該程序仍然有一些錯誤,但至少可以解決。

相關問題