小编J P*_*ack的帖子

Tensorflow - 损失从高开始并且不会减少

我开始用张量流编写神经元网络,我的每个示例项目中都有一个问题.

我的损失总是从50或更高的东西开始并且没有减少,或者如果它减少,它的确如此缓慢,以至于在我所有的时代之后我甚至没有接近可接受的损失率.

它已经尝试过的事情(并没有太大影响结果)

  • 测试过度拟合,但在下面的例子中,您可以看到我有15000个训练和15000个测试数据集以及900个神经元之类的东西
  • 测试了不同的优化器和优化器值
  • 尝试使用testdata作为trainingdata来增加traingdata
  • 尝试增加和减少批量大小

我根据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)

loss neural-network deep-learning tensorflow cross-entropy

6
推荐指数
1
解决办法
7000
查看次数