私はテンソルフローバックエンドでKerasを使用してオートエンコーダーを作成しようとしています。特に、n_components(すなわち200)のサンプリングされたn_times(すなわち20000)のベクトルのデータを有する。私は時間tを訓練するとき、それを時間tとだけ比較することが重要である。それはサンプリング時間をシャッフルしているようです。私はボトルネックを解消し、ネットワークが各コンポーネントによってスケーリングされた入力の平均に似た何かを表現する代わりに、n_componentsを予測するのはかなり悪い仕事であることがわかりました。ここでボトルネックのないKerasオートエンコーダーが元のデータを返さない
はコメントアウトボトルネックと私のネットワークである:
model = keras.models.Sequential()
# Make a 7-layer autoencoder network
model.add(keras.layers.Dense(n_components, activation='relu', input_shape=(n_components,)))
model.add(keras.layers.Dense(n_components, activation='relu'))
# model.add(keras.layers.Dense(50, activation='relu'))
# model.add(keras.layers.Dense(3, activation='relu'))
# model.add(keras.layers.Dense(50, activation='relu'))
model.add(keras.layers.Dense(n_components, activation='relu'))
model.add(keras.layers.Dense(n_components, activation='relu'))
model.compile(loss='mean_squared_error', optimizer='sgd', metrics=['accuracy'])
# act is a numpy matrix of size (n_components, n_times)
model.fit(act.T, act.T, epochs=15, batch_size=100, shuffle=False)
newact = model.predict(act.T).T
私は第二幕の構成要素、n_times、およびmodel.fitとして渡す(act.T、act_shuffled.T)をシャッフルテストしているとmodel.fit(act.T、act.T)との違いはありません。私は何か間違っているのですか?特定の時間からどのように学習することができますか?
多くのおかげで、 アーサー