Kerasを使用してPythonで感情分析を実行しようとしています。そのためには、テキストのWord埋め込みを実行する必要があります。データを自分のモデル:
model_1 = Sequential()
model_1.add(Embedding(1000,32, input_length = X_train.shape[0]))
model_1.add(Flatten())
model_1.add(Dense(250, activation='relu'))
model_1.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
私の列車データの形は
(4834,)
そしてPandasシリーズオブジェクトです。モデルを近似し、他のデータで検証しようとすると、次のエラーが表示されます。
model_1.fit(X_train, y_train, validation_data=(X_test, y_test), epochs=2, batch_size=64, verbose=2)
ValueError:モデル入力のチェック中にエラーが発生しました:embedding_1_inputには形状(None、4834)が必要ですが、形状(4834、1)の配列が必要です
Kerasに適するようにデータを変更するにはどうすればよいですか? np.reshapeを試してみましたが、その関数にNone要素を配置することはできません。
前もって感謝します
None
は、トレーニングに入る予定の行の数であるため、定義できません。また、Kerasはpandasデータフレームではなくnumpy配列を入力として必要とします。最初にdf.values
でdfをnumpy配列に変換してからnp.reshape((-1, 4834))
を実行する必要があります。 np.float32
を使用しますこれは、GPUでトレーニングする場合に重要です。
https://pypi.org/project/keras-pandas/
最も簡単な方法は、keras_pandasパッケージを使用してpandasデータフレームをkerasに適合させることです。以下に示すコードは、パッケージドキュメントの一般的な例です。
from keras import Model
from keras.layers import Dense
from keras_pandas.Automater import Automater
from keras_pandas.lib import load_titanic
observations = load_titanic()
# Transform the data set, using keras_pandas
categorical_vars = ['pclass', 'sex', 'survived']
numerical_vars = ['age', 'siblings_spouses_aboard', 'parents_children_aboard', 'fare']
text_vars = ['name']
auto = Automater(categorical_vars=categorical_vars, numerical_vars=numerical_vars, text_vars=text_vars,
response_var='survived')
X, y = auto.fit_transform(observations)
# Start model with provided input nub
x = auto.input_nub
# Fill in your own hidden layers
x = Dense(32)(x)
x = Dense(32, activation='relu')(x)
x = Dense(32)(x)
# End model with provided output nub
x = auto.output_nub(x)
model = Model(inputs=auto.input_layers, outputs=x)
model.compile(optimizer='Adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
# Train model
model.fit(X, y, epochs=4, validation_split=.2)
これを機能させるには、Pandasの特定のバージョンが必要です。現在のバージョン(2018年8月20日現在)を使用している場合、これは失敗します。
PandasとKeras(pip uninstall ....)をロールバックして、このような特定のバージョンをインストールします
python -m pip install pandas==0.19.2