введите описание изображения здесь В настоящее время я работаю над системой интеллектуального управления светом traffi c. Я использую глубокое обучение. Я использую бэкэнд Keras и Tensorflow, кто-нибудь знает, что может быть причиной проблемы, и как я мог ее решить. Буду очень признателен, если кто-нибудь сможет помочь. В ссылке выше есть скриншот ошибки. Вот код для глубокого нейронного net:
hidden_dimensions = 1024
x = Input(shape=(self.data_dimension,), name="x")
h = x
h = Dense(hidden_dimensions, kernel_regularizer=regularizers.l2(1e-9),
activity_regularizer=regularizers.l1(1e-9))(h)
h = Dropout(0.5)(h)
h = LeakyReLU(0.2)(h)
h = Dense(math.floor(hidden_dimensions/2), kernel_regularizer=regularizers.l2(1e-9),
activity_regularizer=regularizers.l1(1e-9))(h)
h = Dropout(0.5)(h)
h = LeakyReLU(0.2)(h)
h = Dense(math.floor(hidden_dimensions/4), kernel_regularizer=regularizers.l2(1e-9),
activity_regularizer=regularizers.l1(1e-9))(h)
h = Dropout(0.5)(h)
h = LeakyReLU(0.2)(h)
y = Dense(np.prod(self.action_space.shape), kernel_regularizer=regularizers.l2(1e-9),
activity_regularizer=regularizers.l1(1e-9))(h)
self.Q = Model(x, y, name="Q")
action = Input(shape=(1,), dtype = 'float32', name="action")
"""selected_y = merge([y, action], mode=lambda z: k.reshape(z[0][k.arange(k.shape(z[0])[0]), k.reshape(z[1], (-1,))], (-1, 1)),
output_shape=lambda z: z[1])"""
selected_y = concatenate([y, action])
self.Q_s = Model([x, action], selected_y, name = "Q_s")
value = Lambda(lambda z: k.max(z, axis=-1, keepdims=True),
output_shape=lambda z: (z[0], 1))(y)
self.V = Model(x, value, name="V")
x_prime = Input(shape=(self.data_dimension,), name="x_prime")
done = Input(shape=(1,), name = "done", dtype="float32")
v_prime = Lambda(lambda z: k.stop_gradient(z), output_shape = lambda z: z)(self.V(x_prime))
q = self.Q_s([x, action])
print(k.shape(x))
r_pred = concatenate([q, v_prime, done])
k.reshape(x, (1, self.data_dimension))
k.reshape(x_prime, (1, self.data_dimension))
print(x.shape)
print(x_prime.shape)
self.training_model = Model([x, action, x_prime, done], r_pred, name="training_model")
self.training_model.compile(self.optimizer, "mean_squared_error")