Train_on_batch, сохранение скрытого представления в списке - PullRequest
0 голосов
/ 05 марта 2020

у меня есть следующий код


                for t in range (9400):


                    autoencoder.compile(loss='binary_crossentropy',
                                   optimizer='rmsprop')


                    output_layers = ['latent_outputs']

                    autoencoder.metrics_tensors = [latent_outputs]
                    x = [layer.output for layer in autoencoder.layers if layer.name in output_layers]
                    x.remove(x[0])
                    x = np.asarray(x)
                    x = np.flatten(x)
                    x = np.ndarray.reshape(x, (1,360,640,3))
                    if cny < 9398:

                        z=tf.keras.layers.average(x[1], a[cny-1:cny, :, :,:])
                        d = np.tile(z, (360, 1))

                        a[cny-1:cny,:,:,:]=d
                    cny+=1
                    loss = autoencoder.train_on_batch(X_D[t-1:t:,:,:], Y_D[t-1:t:,:,:])

                    acc_loss += loss

Я хотел бы, чтобы блок кода после компиляции выполнялся каждый раз, когда я вызываю train_on_batch, проблема в том, что я получаю сообщение об ошибке «индекс списка вне диапазона» строка "x.remove (x [0])", так что я решил, что когда код выполняется, не было вызова train_on_batch для списка x, который будет заполнен, поэтому он пуст. Как мне адаптировать свой код, поставить ли поезд на командную команду перед компиляцией? или я бы поместил компиляцию в другом месте кода вместе с операторами после него? Я в замешательстве.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...