Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Keras 自定义损失函数:对二进制交叉熵误差应用权重_Keras - Fatal编程技术网

Keras 自定义损失函数:对二进制交叉熵误差应用权重

Keras 自定义损失函数:对二进制交叉熵误差应用权重,keras,Keras,我在和Keras玩,试着从上下文中预测一个词,例如从一句话“我必须说食物很好吃!”中预测一个词,我希望得到这样的结果: [say the ? was tasty] -> food, meals, spaghetti, drinks 然而,我目前的问题是,我正在训练的网络似乎只学习单个单词的概率,而不是它们在特定上下文中的概率 由于单词的频率不平衡,我认为我可能/可能/应该对我的损失函数应用权重,这是目前的二进制交叉熵函数 我只需将每个单词的相反概率乘以错误: def加权二进制交叉熵(y_

我在和Keras玩,试着从上下文中预测一个词,例如从一句话“我必须说食物很好吃!”中预测一个词,我希望得到这样的结果:

[say the ? was tasty] -> food, meals, spaghetti, drinks
然而,我目前的问题是,我正在训练的网络似乎只学习单个单词的概率,而不是它们在特定上下文中的概率

由于单词的频率不平衡,我认为我可能/可能/应该对我的损失函数应用权重,这是目前的二进制交叉熵函数

我只需将每个单词的相反概率乘以错误:

def加权二进制交叉熵(y_真,y_pred):
返回K.mean(K.binary_交叉熵(y_pred,y_true)*(1字权重),轴=1)
该函数被模型用作损失函数:

model.compile(优化器='adam',loss=weighted\u binary\u crossentropy)
但是,我的结果是完全相同的,我不确定我的模型是否损坏,或者我是否使用了
loss
parameter/函数错误

我的
加权\u binary\u crossentropy()
函数是否与我刚才描述的一样?我这样问是因为出于某种原因,它的工作原理类似:
word_-weights,axis=1)

实际上,正如人们在
fit
函数中读到的那样,可以提供
sample_-weights
,这似乎正是您想要使用的。

它说“如果您需要进行时间步采样权重(2D权重),请将其设置为“临时”。“无”默认为采样权重(1D)。”对我来说,这听起来不像是每个输出维度的误差权重——因为这是我想做的。你想为每个单词应用的权重是否不同?