【发布时间】:2018-03-15 12:10:47
【问题描述】:
我的 CNN 出现问题。
输入:700 张道路图片(每张尺寸为 200x66 和 3 个通道)。
输出:汽车在该路段的转向角(值在 -1.5 和 1.5 之间)。
有些人可能知道 Nvidia 的类似设置。我正在尝试重现这一点。 每次我试图预测时,我的数据集的所有图片都会得到相同的值。当只学习一个时期时,小数点后最后几个位置的值似乎略有不同。
我将数据分成 600 张用于训练的图片和 100 张用于评估的图片,并使用了这个网络:
network = input_data(shape=[None, 66, 200, 3], name='input')
network = local_response_normalization(network)
network = conv_2d(network, 24, 5, 2, activation='elu') # 5x5 mit 2x2 stride
network = conv_2d(network, 36, 5, 2, activation='elu') # 5x5 mit 2x2 stride
network = conv_2d(network, 48, 5, 2, activation='elu') # 5x5 mit 2x2 stride
network = conv_2d(network, 64, 3, 1, activation='elu') # 3x3 mit 1x1 stride
network = conv_2d(network, 64, 3, 1, activation='elu') # 3x3 mit 1x1 stride
network = flatten(network)
network = dropout(network, 0.5)
network = fully_connected(network, 1164, activation='elu')
network = fully_connected(network, 100, activation='elu')
network = fully_connected(network, 50, activation='elu')
network = fully_connected(network, 10, activation='elu')
network = fully_connected(network, 1, activation='elu')
network = regression(network, optimizer='adam', learning_rate=0.01, loss='mean_square', name='target')
我尝试了不同的批量大小 (1-100)、不同的 epoch 数 (1-50) 并更改了学习率 (0.001-0.02)。
只是我的数据集对于这个网络来说太小了吗?
希望你能帮助我。
谢谢。
【问题讨论】:
-
你的训练集的分布是什么(标签)?
-
现在标准化的转向角。没有改变任何东西。还改变了激活函数,现在在每个 epoch 之后洗牌数据......不幸的是,这一切都没有区别。 CNN 的预测总是相同的(并且该值甚至不接近均值)
-
我不确定原因,但我遇到了完全相同的问题,并发现切换到随机梯度下降作为优化器解决了问题。
-
我认为我的激活功能对于这项任务来说是错误的。但是使用其他 + SGD 作为优化器,问题仍然存在。
标签: tensorflow tflearn