0
私はKerasを使用して1つのLSTMモデルを構築しています。私はデータフレームをワードトークンに変換するためにTfidVectorizer()を使用しました。期待されるndim = 3、ndim = 2が見つかりました。ケラスのLSTMレイヤーに疎行列を供給する方法は?
「:入力0は、層lstm_1と互換性がないndim = 3期待、ndim = 2を発見したとValueErrorが」tfidvectorizer()の変換方法は、私はLSTM層に供給csr_matrixを返し、私はいつもがエラーを取得します以下
が私のpythonコード
dfTest = pd.read_csv("C:\\ML\\test.csv",
dtype={'url': np.str, 'name': np.str, 'verdict': np.int32},
error_bad_lines = False, sep=',', delimiter=',', header=0,
names=['url', 'name', 'verdict'])
dataFrame = dfTest['url'] + " "+ dfTest['name']
target = dfTest['verdict']
lstData = []
for row in dataFrame:
row = row.replace('http://www.', ' ')
row = row.replace('.', ' ')
row = row.replace('/', ' ')
row = row.replace('com', ' ')
lstData.append(row)
print(lstData)
tk1 = TfidfVectorizer(max_features = 1000);
tk1.fit(lstData)
matrix = tk1.transform(lstData)
print(matrix.shape)
print(matrix)
#data = np.reshape(data, data.shape + (1,))
target = np.reshape(target, target.shape + (1,))
print(target.shape)
print(target)
model1 = Sequential()
model1.add(LSTM(128, dropout_W=0.2, dropout_U=0.2, input_shape= (5,)))
model1.add(Dense(1))
model1.add(Activation('sigmoid'))
model1.compile(loss='binary_crossentropy', optimizer='rmsprop')
model1.fit(matrix, y=target, batch_size=200, nb_epoch=5, verbose=1,
validation_split=0.2, shuffle=True)
である私は、MLの世界に新しいです、PL私はここで間違ってやっているものを見つけるためのお手伝い。 ありがとうございます。