у меня есть следующий код
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, который будет заполнен, поэтому он пуст. Как мне адаптировать свой код, поставить ли поезд на командную команду перед компиляцией? или я бы поместил компиляцию в другом месте кода вместе с операторами после него? Я в замешательстве.