假设我有一些输入输出,如下所示:
title = []
for text in texts:
temp=[]
for texData in text.find_all('h1', attrs = {'class': 'entry-title'}):
temp.append(texData.get_text())
title.append(temp)
输入始终为 0或1 ,而输出始终为 1或2或3
我该如何在keras中创建适合这些输入输出的神经网络?
input1 : [0 1 1 1 0 ... 1]
output1 : [1 2 2 3 ... 3 3 1 2 2]
...
我尝试将输出标准化为 0 0.5 1 ,但这没有帮助。
我尝试了各种损失函数
我尝试定义自定义损失函数
我尝试了许多网络体系结构
在大多数情况下,其acc约为0.09
从理论上讲,它只不过是二进制集,应该不难,但我找不到正确的方法
答案 0 :(得分:0)
对于最后一个分类层,应对其进行softmax
激活。此激活用于分类。不过,可能需要您对输出进行热编码。
答案 1 :(得分:0)
回答我自己的问题: 似乎有两种方法可以解决该问题:
1-丑陋的方法:
每个数字使用两个输出,因此 1 将变为 01 , 2 变为 10 和< strong> 3 变为 11 ,对于 00 ,您可以将其用于以上任何一项,甚至可以计算精度
2-不太丑陋的方法:
每个输出使用三个热编码,因此 1 变为 001 , 2 变为 010 , 3 变为 100
您还可以使用2D [x] [3] 输入,以便获得2D输出 [y] [3] ,但这似乎没有必要>