2017-11-29 8 views
1

Ich weiß, das ist eine dumme Frage, aber ich kann nicht scheinen es aus. Ich füttere in einem numpy Array von und diesen Fehler (, 200,75?):ValueError: Kann den Wert der Form (64, 200, 75) für Tensor 'TargetsData/Y: 0' nicht einspeisen, der Form hat '(200, 75)'

ValueError: Cannot feed value of shape (64, 200, 75) for Tensor 'TargetsData/Y:0', which has shape '(200, 75)' 

Hier ist mein Code:

import numpy as np 
import tflearn 
print("loading features....") 
features = np.load("features_xs.npy") 
print("loading classes....") 
classes = np.load("classes_xs.npy") 

symbols = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p' 
,'q','r','s','t','u','v','w','x','y','z', 
'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U', 
'V','W','X','Y','Z','1','2','3','4','5','6','7','8','9','0','.',',', 
'!','?',':',';','\'','(',')','-','_',' ','"',] 
num_symbols = len(symbols) 

input_layer = tflearn.input_data(shape=[None, 200,num_symbols]) 
input_layer = tflearn.flatten(input_layer) 
dense1 = tflearn.fully_connected(input_layer, 1000, activation='tanh', 
           regularizer='L2', weight_decay=0.001) 
dense2 = tflearn.fully_connected(dense1, 2000, activation='tanh', 
           regularizer='L2', weight_decay=0.001) 
dense2 = tflearn.fully_connected(dense2, 1000, activation='tanh', 
           regularizer='L2', weight_decay=0.001) 
dropout2 = tflearn.dropout(dense2, 0.8) 
final = tflearn.fully_connected(dropout2, (200*num_symbols), activation='tanh') 
reshape = tflearn.reshape(final, [200,num_symbols], name="Reshape") 

Adam = tflearn.Adam(learning_rate=0.01) 
net = tflearn.regression(reshape, optimizer=Adam, 
         loss='categorical_crossentropy') 

# Training 
model = tflearn.DNN(net, tensorboard_verbose=0) 
model.fit(features, classes, n_epoch=1, show_metric=True, run_id="dense_model") 
model.save("model") 

num_symbols bis 75 im Fall == wird Sie mich fragen,

Ich kann die Lösung bitte nicht helfen, danke.

Antwort

1

Führen Sie den folgenden Code:

print(classes.shape) 

Sie werden eine Leistung von (64, 200, 75) bekommen. Aber Ihre letzte Schicht reshape erwartet Form von (200, 75). Sie müssen Werte mit der Form (200, 75) von Ihrer classes Variable eingeben, um den Fehler zu beheben.

Verwandte Themen