假设我有以下参数的网络:
现在,我知道损失是按以下方式计算的:二进制交叉熵应用于图像中关于每个类的每个像素.基本上,每个像素将有5个损耗值
这一步后会发生什么?
当我训练我的网络时,它只为一个纪元打印一个损失值.在生成单个值时需要进行多种级别的损失累积,以及在文档/代码中它的发生方式根本不明确.
axis=-1.那么这是所有类的所有像素的平均值还是所有类的平均值,还是两者都是?以不同的方式说明:不同类别的损失如何组合以产生图像的单一损失值?
这完全没有在文档中解释,对于对keras进行多类预测的人来说非常有用,无论网络类型如何.这是keras代码开始的链接,其中一个首先通过了损失函数.
我能找到最接近解释的是
loss:String(目标函数的名称)或目标函数.看到损失.如果模型具有多个输出,则可以通过传递字典或损失列表在每个输出上使用不同的损失.然后,模型将最小化的损失值将是所有单个损失的总和
来自keras.那么这是否意味着图像中每个类的损失只是总和?
此处的示例代码供有人试用.这是从Kaggle借来的基本实现,并针对多标签预测进行了修改:
# Build U-Net model
num_classes = 5
IMG_DIM = 256
IMG_CHAN = 3
weights = {0: 1, 1: 1, 2: 1, 3: 1, 4: 1000} #chose an extreme value just to check for any reaction
inputs = Input((IMG_DIM, IMG_DIM, IMG_CHAN))
s = Lambda(lambda x: …Run Code Online (Sandbox Code Playgroud)