ValueError:不支持任何值。 - Keras自定义丢失功能

时间:2018-03-22 05:20:46

标签: python tensorflow keras loss-function

我的自定义丢失函数出现此错误:ValueError:不支持任何值。

输出是二进制数字的二维数组(2000,2)。 我只需要计算某些条目的准确性(由NN选择),而不是整个集合。

这是我的损失功能以及我是如何做到的:

def getBalance(x_true, x_pred):

    ##Selected entries for calculation
    x_pred = K.tf.round(x_pred)
    trade_index = K.tf.not_equal(x_pred[:,1], 0 )

    x_true_tradeable  = K.tf.boolean_mask(x_true[:,0], trade_index)
    x_pred_tradeable  = K.tf.boolean_mask(x_pred[:,0], trade_index)


    Accuracy = K.mean(K.equal(x_true_tradeable, x_pred_tradeable))
    return Accuracy

这是我的模型供参考:

model = Sequential()
model.add(Dropout(0.4, input_shape=(train_input_data_NN.shape[1], train_input_data_NN.shape[2])))
model.add(LSTM(30, dropout=0.4, recurrent_dropout=0.4,  return_sequences=False))
model.add(Dense(2, activation='sigmoid'))
model.compile(loss='getBalance', optimizer='adam')
history = model.fit(train_input_data_NN, outputs_NN, epochs=50,  batch_size=64, verbose=1, validation_data=(test_input_data_NN, outputs_NN_test))

0 个答案:

没有答案