繁体   English   中英

Tensorflow 范围与标签

[英]Tensorflow range vs. labels

Tensorflow 快要死了,请帮忙:)我在这里找到了一些关于我遇到的问题的答案,但它们没用......我不明白为什么我会收到这条消息:


InvalidArgumentError:  Received a label value of 3 which is outside the valid range of [0, 3).  Label values: 2 3 3 1 2 1 1 3 1 1 1 2 3 3 1 1 1 3 1 3 2 3 1 2 1 3 2 1 2 2 2 3
     [[node sparse_categorical_crossentropy/SparseSoftmaxCrossEntropyWithLogits/SparseSoftmaxCrossEntropyWithLogits (defined at <ipython-input-68-069e54b769de>:2) ]] [Op:__inference_train_function_47373]

Function call stack:
train_function

我有三个输出标签,但错误提示 233121... 超出了三个... 为什么? 有趣的是,当我将最后一个密集层中的标签数量更改为 4 时,一切正常。 但我不想要 4 个类,因为预测矩阵返回 4 列概率。

我的 simple.network 看起来像这样:

model = Sequential()
model.add(Embedding(len(word_index) + 1,
                     EMBEDDING_DIMENSION))
model.add(SpatialDropout1D(0.3))
model.add(Bidirectional(LSTM(EMBEDDING_DIMENSION)))
model.add(Dense(EMBEDDING_DIMENSION, activation='relu'))
model.add(Dropout(0.8))

model.add(Dense(EMBEDDING_DIMENSION, activation='relu'))
model.add(Dropout(0.8))

model.add(Dense(3, activation='softmax'))

我做错了什么? 我有最新的 tf 2.3。 我只在复制与原始数据一起使用的示例时更改数据输入...有什么想法吗?

您的标签应从 0 开始。也就是说,消息中的值为[1, 2, 2, 0, 1, 0, 0, ...] 通常,当您有n类时,将标签编码为0n-1之间的整数。 由于您没有在定义标签的地方包含代码,因此很遗憾,我无法包含代码示例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM