Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.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
Python 如何解决损失:南和;准确度:0.0000e+;LSTM问题中的00?Tensorflow 2.x_Python_Tensorflow_Text Classification - Fatal编程技术网

Python 如何解决损失:南和;准确度:0.0000e+;LSTM问题中的00?Tensorflow 2.x

Python 如何解决损失:南和;准确度:0.0000e+;LSTM问题中的00?Tensorflow 2.x,python,tensorflow,text-classification,Python,Tensorflow,Text Classification,我正在处理一个LSTM问题。我试图根据文本分类预测MBTI(Myers-Briggs测试)人格类型(共有16种人格类型) 我有一个csv文件,它经过了预处理:删除了stopwords,对其进行了柠檬化、标记化、排序和填充。文件没有任何NaN值,文本序列只有整数 但是,在尝试训练我得到的模型时会产生问题: 损失:nan-准确度:0.0000e+00-价值损失:nan-价值准确度:0.0000e+00 按要求:x、y数据和标签与结果的外观如何 打印(验证标签) [[ 5] [10] [ 4]

我正在处理一个LSTM问题。我试图根据文本分类预测MBTI(Myers-Briggs测试)人格类型(共有16种人格类型)

我有一个csv文件,它经过了预处理:删除了stopwords,对其进行了柠檬化、标记化、排序和填充。文件没有任何NaN值,文本序列只有整数

但是,在尝试训练我得到的模型时会产生问题:

损失:nan-准确度:0.0000e+00-价值损失:nan-价值准确度:0.0000e+00


按要求:x、y数据和标签与结果的外观如何

打印(验证标签)
[[ 5]
[10]
[ 4]
[ 4]
[15]
[12]
[ 1]...]
打印(验证\u填充[0])
maxlen=240
数组([23353147677,1,1409,108451530,1,
103,  107,  998,  117, 1389,   25,    1,   28, 1889,  165,    1,
1520,   49,  718,   65,   55,   34,    0,    0,    0,    0,    0,
0,0,0,0,0,0,0,0,0,0,0,0,…],数据类型=int32)
打印(序列标签)
[[ 8]
[ 9]
[ 3]
[ 7]
[ 4]
[10]
[15]
[11]...]
打印(列数据填充[0])
maxlen=240
数组([19,301,133,302,562,133,28,563,895,896,897,118,99,
564, 397,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0…],dtype=int32)
results=model.evaluate(验证\u填充,验证\u标签\u seq)
测试=验证\u填充[10]
预测=模型。预测类([测试])
打印(预测[1])
59/59[====================================]-0s 1ms/样本-损耗:nan-精度:0.0000e+00
[0]
/tensorflow-2.1.0/python3.6/tensorflow_core/python/keras/engine/sequential.py:342:RuntimeWarning:在更大版本中遇到无效值
return(proba>0.5).astype('int32')
打印(预测)
数组([[0],
[0],
...
[0],
[0]],dtype=int32)

我尝试了什么?

  • 我已经试着换成不同的优化器
  • 降低批量大小
  • 检查数据帧和序列中的值错误(训练和验证数据)

预期输出: 也许我建立的模型是错误的,所以我会解释这是主要的想法。我想得到一个输出或十六个输出,这决定了你性格类型的准确性

1 output:
INTP: 89%

16 outputs:
ENTP: 5% | INTP: 81% | INTJ: 1% | ...
如果您想查看,下面是代码:

数据帧:


如果您在代码中使用softmax作为最终输出,将考虑任何改进问题的建议。这是一堆概率值,并用代码中比较的内容进行检查。标签对目标进行编码。它们不匹配,这就是为什么它的精度为0。我建议将softmax o/p更改为正确的形式,以便通过比较
精度
度量得出正确的结果

例如:

软最大输出
[0.2,0.8]
其他
[0,1]


那就是不匹配,准确性就会受到影响。

@GUNTERSAMA:不,我不是这个意思。我要说的是检查
y
predicted-y
,我认为在这种情况下,它们的格式不正确。因为softmax sigmoid都会给出这个问题。@GUNTERSAMA添加预测的
y
和真实的
y
@GUNTERSAMA.:我想您需要使用
tf.Print
来查看值?这就是你知道那里有什么的方法。看,我的想法很简单。(x,y)->
x=特征
y=真实标签
。现在,您的模型在对样本进行训练后获取这些
x
,并预测一些
y\u hat
。现在比较一下这两者。你会明白我的意思@Guntersama我想您可以通过回答原始问题并提出新问题以获得进一步反馈来结束此问题。这将有助于未来的用户@冈特萨马