Python 2.7 每个小批量的重复损失值和降低的精度
以下是我的多模式架构: 构建图 我正在使用Python 2.7 每个小批量的重复损失值和降低的精度,python-2.7,tensorflow,neural-network,conv-neural-network,Python 2.7,Tensorflow,Neural Network,Conv Neural Network,以下是我的多模式架构: 构建图 我正在使用tf.conct连接我的两个网络。我正在使用AdamOptimizer,学习率为1e-4。但我有经常性的损失值和准确性似乎是下降通过。我尝试过改变不同的学习速度。我在下面附上了我的网络图。我知道,如果我的损失是恒定的,那么我的模型就会偏离。但这里的价值观是反复出现的,我不确定这意味着什么 我怀疑我的第二个网络tf.name\u scope('conv1\u joints'),我猜它没有学到任何东西。 为什么我有重复损失值 我应该进一步做哪些修改 更新
tf.conct
连接我的两个网络。我正在使用AdamOptimizer,学习率为1e-4
。但我有经常性的损失值和准确性似乎是下降通过。我尝试过改变不同的学习速度。我在下面附上了我的网络图。我知道,如果我的损失是恒定的,那么我的模型就会偏离。但这里的价值观是反复出现的,我不确定这意味着什么
我怀疑我的第二个网络tf.name\u scope('conv1\u joints')
,我猜它没有学到任何东西。
def weight_variable(shape):
initial = tf.truncated_normal(shape, stddev=0.1)
return tf.Variable(initial)
def bias_variable(shape):
initial = tf.constant(0.1,shape=shape)
return initial
更新2:(设置lr=0.1
和batch\u size=50
)
你能分享一下你的网络初始化吗?(如何初始化权重?/是否使用RelU?/minibatch size?)我使用
tf.truncated\u normal()
进行初始化。总数据点是834,我的批量大小是4。我在我的fc_1
、conv1
和conv2
名称范围中使用了relu hanks-批量大小对我来说似乎非常小,您可能无法很好地估计梯度,这可以解释在不考虑学习率的情况下来回跳跃以及似乎正在发生的完全缺乏学习的情况。我会尝试批量大小至少为80,看看循环值是否消失。我明白了,这是有道理的。我将批次大小增加到50,并开始获得恒定损失小批次损失=1.945910
。我已经将我的学习率提高到0.1,只是为了看看发生了什么。我已经更新了上面更新2下的结果,损失在增加,准确性在降低。更新2中的计数是怎么回事?还有,嘿,也许我遗漏了一些东西,但是你的密集层没有连接到任何东西吗?你能分享一下你的网络初始化吗?(如何初始化权重?/是否使用RelU?/minibatch size?)我使用tf.truncated\u normal()
进行初始化。总数据点是834,我的批量大小是4。我在我的fc_1
、conv1
和conv2
名称范围中使用了relu hanks-批量大小对我来说似乎非常小,您可能无法很好地估计梯度,这可以解释在不考虑学习率的情况下来回跳跃以及似乎正在发生的完全缺乏学习的情况。我会尝试批量大小至少为80,看看循环值是否消失。我明白了,这是有道理的。我将批次大小增加到50,并开始获得恒定损失小批次损失=1.945910
。我已经将我的学习率提高到0.1,只是为了看看发生了什么。我已经更新了上面更新2下的结果,损失在增加,准确性在降低。更新2中的计数是怎么回事?还有,嘿,也许我遗漏了一些东西,但是你的致密层没有连接到任何东西吗?
Output:
COUNT = 80
Iter 25280, Minibatch Loss= 1.984576, Training Accuracy= 0.25000
COUNT = 160
Iter 25360, Minibatch Loss= 1.484576, Training Accuracy= 0.25000
COUNT = 240
Iter 25440, Minibatch Loss= 1.984576, Training Accuracy= 0.50000
COUNT = 320
Iter 25520, Minibatch Loss= 2.484576, Training Accuracy= 0.00000
COUNT = 400
Iter 25600, Minibatch Loss= 1.984576, Training Accuracy= 0.00000
COUNT = 480
Iter 25680, Minibatch Loss= 2.984576, Training Accuracy= 0.00000
COUNT = 560
Iter 25760, Minibatch Loss= 2.984576, Training Accuracy= 0.00000
COUNT = 640
Iter 25840, Minibatch Loss= 2.984576, Training Accuracy= 0.00000
COUNT = 720
Iter 25920, Minibatch Loss= 2.484576, Training Accuracy= 0.00000
COUNT = 800
Iter 26000, Minibatch Loss= 1.984576, Training Accuracy= 0.00000
def weight_variable(shape):
initial = tf.truncated_normal(shape, stddev=0.1)
return tf.Variable(initial)
def bias_variable(shape):
initial = tf.constant(0.1,shape=shape)
return initial
Iter 500, Minibatch Loss= 2.401168, Training Accuracy= 0.16000
--------------------------RESHUFFLING--------------------
COUNT = 100
Iter 1000, Minibatch Loss= 2.294569, Training Accuracy= 0.10000
COUNT = 600
Iter 1500, Minibatch Loss= 2.622372, Training Accuracy= 0.08000
--------------------------RESHUFFLING--------------------
COUNT = 200
Iter 2000, Minibatch Loss= 2.481168, Training Accuracy= 0.16000
COUNT = 700
Iter 2500, Minibatch Loss= 2.488970, Training Accuracy= 0.06000
--------------------------RESHUFFLING--------------------
COUNT = 300
Iter 3000, Minibatch Loss= 2.416773, Training Accuracy= 0.12000
COUNT = 800
Iter 3500, Minibatch Loss= 2.521168, Training Accuracy= 0.06000
--------------------------RESHUFFLING--------------------
COUNT = 400
Iter 4000, Minibatch Loss= 2.288970, Training Accuracy= 0.12000
--------------------------RESHUFFLING--------------------
COUNT = 500
Iter 5000, Minibatch Loss= 2.384576, Training Accuracy= 0.16000
--------------------------RESHUFFLING--------------------
COUNT = 100
Iter 5500, Minibatch Loss= 2.361168, Training Accuracy= 0.10000
COUNT = 600
Iter 6000, Minibatch Loss= 2.208971, Training Accuracy= 0.22000
--------------------------RESHUFFLING--------------------
COUNT = 200
Iter 6500, Minibatch Loss= 2.608970, Training Accuracy= 0.08000
COUNT = 700
Iter 7000, Minibatch Loss= 2.470175, Training Accuracy= 0.12000
--------------------------RESHUFFLING--------------------
COUNT = 300
Iter 7500, Minibatch Loss= 2.475773, Training Accuracy= 0.10000
COUNT = 800
Iter 8000, Minibatch Loss= 2.374569, Training Accuracy= 0.18000
--------------------------RESHUFFLING--------------------
COUNT = 400
Iter 8500, Minibatch Loss= 2.384576, Training Accuracy= 0.14000
--------------------------RESHUFFLING--------------------
COUNT = 500
Iter 9500, Minibatch Loss= 2.582372, Training Accuracy= 0.10000