我正在使用tensorflow作为我的作业,为MNIST数据集开发简单的MLP神经网络。在这个问题上,我们应该实现以tanh为激活功能的多层感知器。我应该将数据标签与[-1,+ 1]一起使用。例如对于数字3,我们有:
[-1,-1,-1,+1,-1,-1,-1,-1,-1,-1]
我知道对于S型函数,我们可以使用on_hot,例如:
mnist = input_data.read_data_sets("/tmp/data/", one_hot=True)
以便将数据放置在[0,1]中,如数字3所示:
[0,0,0,1,0,0,0,0,0,0]
如何在[-1,+ 1]之间编码标签。 预先感谢您的帮助
答案 0 :(得分:0)
不必要地否决了这个问题。顺便说一句..如果我理解正确,这就是答案。
我了解的是,必须使用tanh来代替sigmoid,所以您希望输出数据的格式为+ 1s和-1s而不是0s和1s。
请注意,一种热编码是专门设计用于获取1和0的输出的。这就是为什么它被称为一种热编码-它为正确答案输出1,为其他答案输出0。
现在,没有内置函数来获取所需的输出。但是我更喜欢通过编写自己的代码的一种简短的方法。别害怕-那只是一行代码。
import numpy as np
a = np.array([1, 1, 1, 0, 1, 0])
a[a==0]=-1
输出为:
array([1, 1, 1, -1, 1, -1])
您可以使用相同的代码。使用您的代码将一个热编码标签作为输出,然后使用这一行代码来获取所需的内容。
a[a==0]=-1
谢谢..