#python #tensorflow #machine-learning
Вопрос:
Я выполняю и старый пример кода, я пытаюсь обновить старый класс, но продолжаю сталкиваться с проблемами компиляции, все проблемы, похоже, связаны с «оптимизаторами» после обновления до новых пакетов, теперь у меня проблема с ошибкой «индекс вне диапазона», вот класс (я пытался отключить нетерпеливое выполнение, которое было предложено на одном из форумов по той же проблеме, но это не решило проблему):
Спасибо.
#import kera #from keras import layers, models, optimizers #from keras import backend as K #from keras.regularizers import l2 import tensorflow as tf from tensorflow import keras from tensorflow.keras import layers, models, optimizers from tensorflow.keras.regularizers import l2 from tensorflow.keras import backend as K from tensorflow.python.framework.ops import disable_eager_execution disable_eager_execution() class Actor: # """Actor (policy) Model. """ def __init__(self, state_size, action_size): self.state_size = state_size self.action_size = action_size self.build_model() def build_model(self): states = layers.Input(shape=(self.state_size,), name='states') net = layers.Dense(units=16,kernel_regularizer=l2(1e-6))(states) net = layers.BatchNormalization()(net) net = layers.Activation("relu")(net) net = layers.Dense(units=32,kernel_regularizer=l2(1e-6))(net) net = layers.BatchNormalization()(net) net = layers.Activation("relu")(net) actions = layers.Dense(units=self.action_size, activation='softmax', name = 'actions')(net) self.model = models.Model(inputs=states, outputs=actions) action_gradients = layers.Input(shape=(self.action_size,)) loss = K.mean(-action_gradients * actions) optimizer = optimizers.Adam(lr=.00001) updates_op = optimizer.get_updates(params=self.model.trainable_weights, loss=loss) self.train_fn = K.function( inputs=[self.model.input, action_gradients, K.learning_phase()], outputs=[], updates=updates_op)