【发布时间】:2018-10-21 15:08:44
【问题描述】:
我想在 keras 中做以下损失函数:
Loss = mse + double_derivative(y_pred,x_train)
我无法合并衍生术语。我试过K.gradients(K.gradients(y_pred,x_train),x_train),但没有帮助。
我收到错误消息:
AttributeError: 'NoneType' 对象没有属性 'op'
def _loss_tensor(y_true, y_pred,x_train):
l1 = K.mean(K.square(y_true - y_pred), axis=-1)
sigma = 0.01
lamda = 3
term = K.square(sigma)*K.gradients(K.gradients(y_pred,x_train),x_train)
l2 = K.mean(lamda*K.square(term),axis=-1)
return l1+l2
def loss_func(x_train):
def loss(y_true,y_pred):
return _loss_tensor(y_true,y_pred,x_train)
return loss
def create_model_neural(learning_rate, num_layers,
num_nodes, activation):
model_neural = Sequential()
x_train = model_neural.add(Dense(num_nod, input_dim=num_input, activation=activation))
for i in range(num_layers-1):
model_neural.add(Dense(num_nodes,activation=activation,name=name))
model_neural.add(Dense(1, activation=activation))
optimizer = SGD(lr=learning_rate)
model_loss = loss_func(x_train=x_train)
model_neural.compile(loss=model_loss,optimizer=optimizer)
return model_neural
【问题讨论】:
-
你必须具体,“没有帮助”是相当模糊的。您是否收到错误消息?错误的价值观?在您的问题中包含任何错误消息。
-
@MatiasValdenegro 我收到以下错误“AttributeError: 'NoneType' object has no attribute 'op'”
-
什么是
dice?我想你的意思是loss。 -
@rvinas 哦,是的。这是损失。谢谢。已编辑
标签: python machine-learning neural-network keras loss-function