che sto cercando di eseguire questo SimpleRNN:Numero errato di dimensioni su model.fit
model.add(SimpleRNN(init='uniform',output_dim=1,input_dim=len(pred_frame.columns)))
model.compile(loss="mse", optimizer="sgd")
model.fit(X=predictor_train, y=target_train, batch_size=len(pred_frame.index),show_accuracy=True)
L'errore è il model.fit, come potete vedere qui sotto:
File "/Users/file.py", line 1496, in Pred
model.fit(X=predictor_train, y=target_train, batch_size=len(pred_frame.index),show_accuracy=True)
File "/Library/Python/2.7/site-packages/keras/models.py", line 581, in fit
shuffle=shuffle, metrics=metrics)
File "/Library/Python/2.7/site-packages/keras/models.py", line 239, in _fit
outs = f(ins_batch)
File "/Library/Python/2.7/site-packages/keras/backend/theano_backend.py", line 365, in __call__
return self.function(*inputs)
File "/Library/Python/2.7/site-packages/theano/compile/function_module.py", line 513, in __call__
allow_downcast=s.allow_downcast)
File "/Library/Python/2.7/site-packages/theano/tensor/type.py", line 169, in filter
data.shape))
TypeError: ('Bad input argument to theano function with name "/Library/Python/2.7/site-packages/keras/backend/theano_backend.py:362" at index 0(0-based)', 'Wrong number of dimensions: expected 3, got 2 with shape (88, 88).')
L'errore mi sta dicendo che ha il numero sbagliato di dimensioni, dovrebbe essere 3 e ha solo 2. Quali sono le dimensioni a cui si riferisce?
Grazie per la spiegazione, ho un problema simile. Perché i passaggi massimi per il backpropagation nel caso in cui si sta commentando sono solo 2? E perché il numero di sequenze è 5? A proposito, con sequenza intendi un'epoca nell'allenamento? – David
Ho scelto a caso il numero 2 come la quantità di passaggi precedenti per il backpropagation per questo esempio. In combinazione con il numero (anche liberamente scelto) di 8 campioni, questo porta a un totale di 5 sequenze. La sequenza 1 include il campione 1, 2 e 3, la sequenza 2 include 2, 3 e 4 e così via. Vedi la visualizzazione nella mia risposta per i dettagli. Un'epoca è fatta quando la rete è stata addestrata con ciascuna sequenza una volta. Quindi inizi di nuovo con la prima sequenza – Lorrit