UpSampling1D в керасе безумно медленный? - PullRequest
0 голосов
/ 08 февраля 2019

Я пытаюсь построить автокодер в Keras, все идет хорошо, но когда я добавляю слой UpSampling1D, запускаю код и пытаюсь получить сводку модели, программа просто зависает навсегда.Моя проблема в том, что у меня есть входной и выходной размер 220500, у сверточных слоев с этим нет проблем, и они компилируются практически мгновенно.Однако слои повышающей дискретизации начинают становиться безумно медленными, когда количество слоев для выборки достигает около 50 000 и в основном замерзает.Есть ли способ обойти это или это какое-то внутреннее ограничение в слое повышения качества?Кроме того, с чего бы это?Как получается, что свертка может обрабатывать гораздо большие размеры, чем повышающая дискретизация?: S

Вот мой фактический код:

def autoencoder(input_dim):

input_layer = Input(shape=(input_dim,1))
encode = Conv1D(filters=1,kernel_size=10,strides=2,activation="relu",padding='same')(input_layer)
encode = BatchNormalization()(encode)
n=20
for i in range(15):
    encode = Conv1D(filters=1,kernel_size=10,strides=2,activation="relu",padding='same')(encode)
    encode = BatchNormalization()(encode)

decode = Conv1D(filters=1,kernel_size=10,strides=1,activation="relu",padding='same')(encode)
decode = UpSampling1D(2)(decode)
decode = BatchNormalization()(decode)
for i in range(14):
    decode = Conv1D(filters=1,kernel_size=10,strides=1,activation="relu",padding='same')(decode)
    decode = UpSampling1D(2)(decode)
    decode = BatchNormalization()(decode)

decode = Conv1D(filters=1,kernel_size=10,strides=1,activation="sigmoid",padding='same')(decode)
autoencoder_model = Model(input_layer, decode)
autoencoder_model.compile(optimizer='adadelta', loss='binary_crossentropy')
autoencoder_model.summary()
return autoencoder_model
...