我有一个 Lambda 层,它从前一层获取输入,进行一些预处理。Lambda 层的输出是预测,使用的是 keras.losses.mean_squared_error。
#model
inputs = Input(shape=(len_train_data_columns,))
dense1 = Dense(777, activation='relu')(inputs)
dropout1 = Dropout(0.4)(dense1)
softmax = Dense(3, activation='softmax')(dropout1)
predictions = Lambda(custom_layer,
output_shape= custom_layer_output_shape,
arguments= {'experiment_config': experiment_config},
)(softmax)
model = Model(inputs = inputs, outputs = predictions)
model.compile(optimizer=adam(lr=0.0001), loss=keras.losses.mean_squared_error, metrics=keras.losses.mean_squared_error)
Lambda 的输出是 (num_rows, 1)。
我得到 ValueError: An operation has Nonefor gradient。请确保您的所有操作都定义了渐变(即可微分)。没有梯度的常见操作:K.argmax、K.round、K.eval。
这是为什么?我使用Keras损失...