我构建了一个深度学习模型,与VGG网略有相似。我正在使用带有Tensorflow后端的Keras。模型摘要如下:
model = Sequential()
model.add(Conv2D(64, 3, border_mode='same', activation='relu', input_shape=(180,320,3)))
model.add(Conv2D(64, 3, border_mode='same', activation='relu'))
model.add(MaxPooling2D(pool_size=(2,2), strides=2))
model.add(Conv2D(64, 3, border_mode='same', activation='relu'))
model.add(Conv2D(64, 3, border_mode='same', activation='relu'))
model.add(MaxPooling2D(pool_size=(2,2), strides=2))
model.add(Conv2D(128, 3, border_mode='same', activation='relu'))
model.add(Conv2D(128, 3, border_mode='same', activation='relu'))
model.add(MaxPooling2D(pool_size=(2,2), strides=2))
model.add(Conv2D(128, 3, border_mode='same', activation='relu'))
model.add(Conv2D(128, 3, border_mode='same', activation='relu'))
model.add(Flatten())
model.add(Dropout(0.5))
model.add(Dense(1024, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(9, activation='relu'))
我尝试了优化器(SGD,Adam等),损失(MSE,MAE等),批大小(32和64)的不同组合。我甚至尝试过从0.001到10000的学习率。但是,即使在 20 个 epoch 之后,无论我使用哪种损失函数,验证损失仍然完全相同。训练损失变化不大。我做错了什么?
我的网络应该训练做什么:给定一个输入图像,网络需要预测一组9个真实值,可以从这个图像中导出。
训练期间的终端输出:
Epoch 1/100
4800/4800 [==============================] - 96s 20ms/step - loss: 133.6534 - mean_absolute_error: 133.6534 - val_loss: 132.3744 - val_mean_absolute_error: 132.3744
Epoch 2/100
4800/4800 [==============================] - 49s 10ms/step - loss: 132.8033 - mean_absolute_error: 132.8033 - val_loss: 132.3744 - val_mean_absolute_error: 132.3744
Epoch 3/100
4800/4800 [==============================] - 51s 11ms/step - loss: 132.8033 - mean_absolute_error: 132.8033 - val_loss: 132.3744 - val_mean_absolute_error: 132.3744
Epoch 4/100
4800/4800 [==============================] - 51s 11ms/step - loss: 132.8033 - mean_absolute_error: 132.8033 - val_loss: 132.3744 - val_mean_absolute_error: 132.3744
Epoch 5/100
4800/4800 [==============================] - 51s 11ms/step - loss: 132.8033 - mean_absolute_error: 132.8033 - val_loss: 132.3744 - val_mean_absolute_error: 132.3744
Epoch 6/100
4800/4800 [==============================] - 51s 11ms/step - loss: 132.8033 - mean_absolute_error: 132.8033 - val_loss: 132.3744 - val_mean_absolute_error: 132.3744
Epoch 7/100
4800/4800 [==============================] - 51s 11ms/step - loss: 132.8033 - mean_absolute_error: 132.8033 - val_loss: 132.3744 - val_mean_absolute_error: 132.3744
Epoch 8/100
4800/4800 [==============================] - 51s 11ms/step - loss: 132.8033 - mean_absolute_error: 132.8033 - val_loss: 132.3744 - val_mean_absolute_error: 132.3744
Epoch 9/100
4800/4800 [==============================] - 51s 11ms/step - loss: 132.8033 - mean_absolute_error: 132.8033 - val_loss: 132.3744 - val_mean_absolute_error: 132.3744
Epoch 10/100
4800/4800 [==============================] - 51s 11ms/step - loss: 132.8033 - mean_absolute_error: 132.8033 - val_loss: 132.3744 - val_mean_absolute_error: 132.3744
Epoch 11/100
4800/4800 [==============================] - 51s 11ms/step - loss: 132.8033 - mean_absolute_error: 132.8033 - val_loss: 132.3744 - val_mean_absolute_error: 132.3744
Epoch 12/100
4800/4800 [==============================] - 51s 11ms/step - loss: 132.8033 - mean_absolute_error: 132.8033 - val_loss: 132.3744 - val_mean_absolute_error: 132.3744
Epoch 13/100
4800/4800 [==============================] - 50s 10ms/step - loss: 132.8033 - mean_absolute_error: 132.8033 - val_loss: 132.3744 - val_mean_absolute_error: 132.3744
Epoch 14/100
4800/4800 [==============================] - 51s 11ms/step - loss: 132.8033 - mean_absolute_error: 132.8033 - val_loss: 132.3744 - val_mean_absolute_error: 132.3744
Epoch 15/100
4800/4800 [==============================] - 51s 11ms/step - loss: 132.8033 - mean_absolute_error: 132.8033 - val_loss: 132.3744 - val_mean_absolute_error: 132.3744
Epoch 16/100
4800/4800 [==============================] - 51s 11ms/step - loss: 132.8033 - mean_absolute_error: 132.8033 - val_loss: 132.3744 - val_mean_absolute_error: 132.3744
Epoch 17/100
4800/4800 [==============================] - 51s 11ms/step - loss: 132.8033 - mean_absolute_error: 132.8033 - val_loss: 132.3744 - val_mean_absolute_error: 132.3744
Epoch 18/100
4800/4800 [==============================] - 51s 11ms/step - loss: 132.8033 - mean_absolute_error: 132.8033 - val_loss: 132.3744 - val_mean_absolute_error: 132.3744
Epoch 19/100
4800/4800 [==============================] - 51s 11ms/step - loss: 132.8033 - mean_absolute_error: 132.8033 - val_loss: 132.3744 - val_mean_absolute_error: 132.3744
Epoch 20/100
4800/4800 [==============================] - 51s 11ms/step - loss: 132.8033 - mean_absolute_error: 132.8033 - val_loss: 132.3744 - val_mean_absolute_error: 132.3744
Epoch 21/100
4800/4800 [==============================] - 50s 10ms/step - loss: 132.8033 - mean_absolute_error: 132.8033 - val_loss: 132.3744 - val_mean_absolute_error: 132.3744
relu
不要粗心大意地使用!它有一个没有梯度的恒定零区域。它被卡住是完全正常的。
.
model.add(Conv2D(..... , activation='linear'))
model.add(BatchNormalization())
model.add(Activation('relu'))
也许这是一个过于笼统的问题,但谁能解释什么会导致卷积神经网络发散? 规格: 我正在使用Tensorflow的iris_training模型和我自己的一些数据,并不断获得 错误:张量流:模型因损失=NaN而发散。 追踪。。。 tensor flow . contrib . learn . python . learn . monitors . nanlosduring training error:
这句话,对吗? 不同分辨率下,无论是px还是pt,都会改变大小 请看原文:https://www.jianshu.com/p/d9a0dae1f0bd 有一点我理解了,不同分辨率下,相同的px,显示效果是不一样的。 但是,这句话,我就不理解:不同分辨率下,相同的pt,显示想过是一样的。 pt是一个绝对单位,它的大小就是 1/72 ,我绝对这句话是错误的?! 不同分辨率下,无论是px还是pt,都会改
问题陈述: 编写一个方法whatTime,它采用int,seconds,表示从某一天午夜开始的秒数,并返回一个格式为“:”的字符串。此处,表示自午夜以来的完整小时数,表示自上一完整小时结束以来的完整分钟数,以及自上一完整分钟结束以来的秒数。和中的每一个都应该是整数,没有额外的前导0。因此,如果秒为0,则应返回“0:0:0”,而如果秒为3661,则应返回“1:1:1” 我的算法: 以下是我的算法对输
问题内容: 我有一个关于精度损失的问题 我的任务是将数字打印为字符串 例如0.2 * 7 = 1.4000000000000001; 0.0000014 / 10 = 1.3999999999999998E-7 如何解决这个问题? UPD :主要问题是 字符串 输出格式。我不担心丢失约0.00000001的值。现在,我将其解析为String.format(“%f”,value),但我认为这不是一个
问题内容: 我刚遇到一个很奇怪的东西。 为什么它会抬高而又改变内部? 问题答案: 正如我在评论中开始提到的那样,实际上是 在原地 修改列表,然后尝试将结果分配给元组中的第一个位置。从数据模型文档中: 调用这些方法以实现增强的算术分配(+ =,-=, =,/ =,// =,%=,* =,<< =,>> =,&=,^ =,| =)。这些方法应尝试就地进行操作(修改self)并返回结果(可以是,但不一定
问题内容: 我正在尝试配置Ehcache(2.5版),使其永远不会忘记项目。我正在以编程方式进行配置,但没有涉及任何配置XML文件。通过设置,我的理解是,只有在我磁盘空间不足或超过(或应用程序终止)的情况下,才可以从缓存中删除项目。但是,此测试程序未显示该行为: 因此,在将100万个元素添加到缓存后(我告诉它会溢出到足够大的数量级的磁盘上)之后,最后我只剩下3276个项目。这是怎么回事 问题答案: