【发布时间】:2021-10-18 03:38:52
【问题描述】:
假设我正在做一个标准的 DNN 分类任务,并且我正在使用交叉熵损失。损失计算后,我将掩码向量([0, 0, 0, 1, 1, ...] 应用于损失以将部分损失设置为零。
问题是 Tensorflow 将如何处理这种零损失?是否会参与反向传播?
【问题讨论】:
标签: tensorflow machine-learning deep-learning backpropagation
假设我正在做一个标准的 DNN 分类任务,并且我正在使用交叉熵损失。损失计算后,我将掩码向量([0, 0, 0, 1, 1, ...] 应用于损失以将部分损失设置为零。
问题是 Tensorflow 将如何处理这种零损失?是否会参与反向传播?
【问题讨论】:
标签: tensorflow machine-learning deep-learning backpropagation
是的,tensorflow 将能够处理这个问题。导致掩蔽损失值的梯度将只是 0,因为它们不影响损失值。
【讨论】:
在计算出实际损失后,对模型的损失应用掩码本质上意味着在反向传播过程中忽略了梯度的零元素。例如,在处理时间序列数据时,将掩码向量应用于损失是一种非常常见的方法,通常将其填充为具有相同的长度。在计算梯度时,这些额外的零值对您的模型没有用处,因此会被忽略。
【讨论】: