pythonのkerasでSparse autoencoderの学習を行っているのですが、エポックを回すごとに徐々にですが確実に遅くなっていきます。
ざっくりとですが、表示される速さも6us/step程度だったものが、1時間後には10us/step程度になり、24時間後には40us/step程度になります。多くのエポックを回すことができず困っています。
エポックごとにまったく異なる学習を開始しており、前のエポックから次のエポックに影響はないはずなので毎回同じ速度で計算できるはずだと思うのですが。原因や対処方法を教えていただきたいです。
環境はWindows10のWSLで、CPU使用率は30%程度、メモリは十分空きありです。
試しにmnistのデータを使ってほぼ同じ条件で実行しても同じように遅くなりました。そのコードは以下です。
python
1from keras.layers import Input, Dense 2from keras.models import Model,Sequential 3from keras.datasets import mnist 4from keras import regularizers 5import numpy as np 6 7(x_train, _), (x_test, _) = mnist.load_data() 8x_train = x_train.astype('float32') / 255. 9x_test = x_test.astype('float32') / 255. 10x_train = x_train.reshape((len(x_train), np.prod(x_train.shape[1:]))) 11x_test = x_test.reshape((len(x_test), np.prod(x_test.shape[1:]))) 12 13#同じ条件になるようにデータを切り取り 14X_train=x_train[0:96000,0:25] 15X_test=x_test[96000:96256,0:25] 16 17encoding_dim = 3 18input_img = Input(shape=(25,)) 19 20for i in range(1000): 21 autoencoder=Sequential() 22 encoded = Dense(encoding_dim, activation='relu', 23 activity_regularizer=regularizers.l1(1e-4))(input_img) 24 decoded = Dense(25, activation='sigmoid')(encoded) 25 autoencoder = Model(input=input_img, output=decoded) 26 27 autoencoder.compile(optimizer='adam', loss='binary_crossentropy') 28 autoencoder.fit(X_train, X_train, 29 nb_epoch=30, 30 batch_size=256, 31 shuffle=True, 32 validation_data=(X_test, X_test)) 33
回答1件
あなたの回答
tips
プレビュー