tensorflow 백엔드가있는 Keras를 사용하여 자동 인코딩을 시도하고 있습니다. 특히, n_components (즉, 200) 개의 샘플링 된 n_times (즉, 20000)의 벡터 데이터를 가지고 있습니다. 시간 t를 훈련 할 때 나는 그것을 시간 t와 만 비교하는 것이 중요합니다. 그것은 샘플링 시간을 뒤섞고있는 것으로 보입니다. 나는 병목 현상을 제거하고 네트워크가 n_components를 예측하는 것이 좋지 않다는 것을 알았습니다. 대신 각 구성 요소에 의해 조정 된 입력의 평균과 비슷한 것을 나타냅니다. 내가 행동, n_times의 두 번째 구성 요소를 셔플하고, model.fit (act.T, act_shuffled.T)로 전달 테스트 한병목 현상이없는 Keras autoencoder가 원본 데이터를 반환하지 않습니다.
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
과 : 여기
병목 내 네트워크는 주석 model.fit (act.T, act.T)와의 차이점을 확인하십시오. 내가 뭔가 잘못하고 있는거야? 특정 시간부터 배우기 위해 어떻게 강제 할 수 있습니까?많은 감사, 아서