我开始用张量流编写神经元网络,我的每个示例项目中都有一个问题.
我的损失总是从50或更高的东西开始并且没有减少,或者如果它减少,它的确如此缓慢,以至于在我所有的时代之后我甚至没有接近可接受的损失率.
它已经尝试过的事情(并没有太大影响结果)
我根据https://youtu.be/vq2nnJ4g6N0的知识创建了网络
但是,让我们看看我的一个测试项目:
我有一个名单列表,并希望假设性别,所以我的原始数据如下所示:
names=["Maria","Paul","Emilia",...]
genders=["f","m","f",...]
Run Code Online (Sandbox Code Playgroud)
为了将它提供给网络,我将名称转换为charCodes数组(期望最大长度为30)并将性别转换为位数组
names=[[77.,97. ,114.,105.,97. ,0. ,0.,...]
[80.,97. ,117.,108.,0. ,0. ,0.,...]
[69.,109.,105.,108.,105.,97.,0.,...]]
genders=[[1.,0.]
[0.,1.]
[1.,0.]]
Run Code Online (Sandbox Code Playgroud)
我为输出层建立了3个隐藏层[30,20],[20,10],[10,10]和[10,2]的网络.所有隐藏层都具有ReLU作为激活功能.输出层具有softmax.
# Input Layer
x = tf.placeholder(tf.float32, shape=[None, 30])
y_ = tf.placeholder(tf.float32, shape=[None, 2])
# Hidden Layers
# H1
W1 = tf.Variable(tf.truncated_normal([30, 20], stddev=0.1))
b1 = tf.Variable(tf.zeros([20]))
y1 = tf.nn.relu(tf.matmul(x, W1) + b1)
# H2
W2 = tf.Variable(tf.truncated_normal([20, 10], stddev=0.1))
b2 = tf.Variable(tf.zeros([10]))
y2 = tf.nn.relu(tf.matmul(y1, W2) + b2)
# …Run Code Online (Sandbox Code Playgroud)