自定义Keras损失函数,包含占位符和常数Tensor对象的计算

时间:2019-07-10 19:03:47

标签: python tensorflow keras

我想为Keras网络编写自定义损失函数。 在此函数中,结果不仅取决于 y_actual y_pred ,而且取决于我使用 y_actual 。 我写了以下函数。在此函数中,我希望将从数据库中检索到的 y_actual 标签包含在损失计算中。

def custom_loss(y_actual,y_pred):   
dataset_whole=pd.read_sql("select * from Records", con=db)
dataset_features_only=dataset_whole.drop(['label'],axis=1)

dataset_whole_np=dataset_whole.values
dataset_whole_tf=tf.constant(dataset_whole_np)

dataset_features_np=dataset_features_only.values
dataset_features_tf=tf.constant(dataset_features_np)


index=tf.where(tf.equal(dataset_features_tf, y_actual))
row=dataset_whole_tf[index,:]

label=row['label']

return ((y_actual-y_pred)-tf.Variable(label,tf.float64))**

我在 row = dataset_whole_tf [index,:] 行中看到此错误消息:

ValueError: Shapes must be equal rank, but are 2 and 0 From merging shape 0 with other shapes. for 'loss/dense_7_loss/strided_slice/stack_1' (op: 'Pack') with input shapes: [?,2], [].

0 个答案:

没有答案