0

を使用して単純な自動エンコーダーを実行しようとしていますnolearn:

import nolearn
from nolearn.dbn import DBN
from sklearn.cross_validation import train_test_split
data=np.load('doc_user_matrix.npy')
print (data.shape) #outputs: (10000,500)

(x_train, x_test, y_train, y_test)=train_test_split(data,data,test_size = 0.33)

hidden_layer=10

ae = DBN([x_train.shape[0], hidden_layer, x_train.shape[0]],
                learn_rates = 0.3,
                learn_rate_decays = 0.9,
                epochs = 10)

ae.fit(x_train, x_train)

何らかの理由で、次のエラーが発生します。

ValueError: 不正な入力形状 (10000, 500)

このエラーが発生する理由と解決方法を説明できる人はいますか?

4

1 に答える 1

1

通常、2 番目の次元は機能に対応し、1 番目の次元はインスタンスに対応します。試す:

[x_train.shape[1], hidden_layer, x_train.shape[1]]
于 2015-12-13T16:22:54.613 に答える