gpt4 book ai didi

python - 稀疏_分类_交叉熵的维度误差

转载 作者:太空宇宙 更新时间:2023-11-03 14:28:56 26 4
gpt4 key购买 nike

我的加权稀疏分类交叉熵损失在更新到 Keras 2.1.1 后不起作用。我之前使用的版本是2.0.6,当时运行得很好。

输出层中有 2 个类(0 和 1)。我传递了带有额外维度的展平一维数组作为标签。

label = label.flatten().astype(np.int16)
label = np.expand_dims(label, axis=-1)

如果我直接调用sparse_categorical_crossentropy,则不会显示任何错误并且训练将开始。为了验证自定义加权损失函数的调用方式没有任何问题,我从 keras/backend/tensorflow_backend.py 复制了 sparse_categorical_crossentropy,将其重命名为 scc 并将其分配给损失函数。

// default
net.model.compile(optimizer=Adam(lr=0.001), loss=sparse_categorical_crossentropy)

// scc is just a copy of sparse_categorical_crossentropy from tensorflow_backend
net.model.compile(optimizer=Adam(lr=0.001), loss=scc)

这会产生以下错误:

ValueError: Error when checking target: expected mask to have shape (None, 4096, 2) but got array with shape (8, 4096, 1)

如果我将标签更改为One-Hot编码格式以对应2个标签,那么tensorflow会抛出错误,如下所示:

label = np.hstack((label, (~label.astype(bool)).astype(int)))

W tensorflow/core/framework/op_kernel.cc:1192] Invalid argument: logits and labels must have the same first dimension, got logits shape [32768,2] and labels shape [65536]

知道我做错了什么吗?

最佳答案

问题已在 8514 中修复.

Keras Issue

关于python - 稀疏_分类_交叉熵的维度误差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47443880/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com