qq_41988937 2022-01-27 21:28 采纳率: 50%
浏览 533

深度学习中val_loss突然变得很大,在后续的epoch中又恢复正常,请问这是哪里出了问题,跟我的显卡有关吗?

深度学习,做语义分割segnet网络时,val_loss有时候突然变得很大,acc和val_acc倒是很正常,请问这是怎么一回事呢?keras,RTX3060,跟我的显卡有关吗?

img

img

问题相关代码,

```python
#encoder****************************************************************************************************************
#第1块
img_input = tf.keras.Input(shape=(input_height, input_width, 3))#input_1 (InputLayer) [(None, 256, 256, 3)]
x=tf.keras.layers.Conv2D(64,(3,3),strides=(1,1),padding='same',activation='relu')(img_input)
x=tf.keras.layers.BatchNormalization()(x)
x=tf.keras.layers.Conv2D(64,(3,3),strides=(1,1),padding='same',activation='relu')(x)
x=tf.keras.layers.BatchNormalization()(x)
x=tf.keras.layers.MaxPooling2D(pool_size=(2,2))(x)

#第2块
x=tf.keras.layers.Conv2D(128,(3,3),strides=(1,1),padding='same',activation='relu')(x)
x=tf.keras.layers.BatchNormalization()(x)
x=tf.keras.layers.Conv2D(128,(3,3),strides=(1,1),padding='same',activation='relu')(x)
x=tf.keras.layers.BatchNormalization()(x)
x=tf.keras.layers.MaxPooling2D(pool_size=(2,2))(x)

#第3块
x=tf.keras.layers.Conv2D(256,(3,3),strides=(1,1),padding='same',activation='relu')(x)
x=tf.keras.layers.BatchNormalization()(x)
x=tf.keras.layers.Conv2D(256,(3,3),strides=(1,1),padding='same',activation='relu')(x)
x=tf.keras.layers.BatchNormalization()(x)
x=tf.keras.layers.Conv2D(256,(3,3),strides=(1,1),padding='same',activation='relu')(x)
x=tf.keras.layers.BatchNormalization()(x)
x=tf.keras.layers.MaxPooling2D(pool_size=(2,2))(x)

#第4块
x=tf.keras.layers.Conv2D(512,(3,3),strides=(1,1),padding='same',activation='relu')(x)
x=tf.keras.layers.BatchNormalization()(x)
x=tf.keras.layers.Conv2D(512,(3,3),strides=(1,1),padding='same',activation='relu')(x)
x=tf.keras.layers.BatchNormalization()(x)
x=tf.keras.layers.Conv2D(512,(3,3),strides=(1,1),padding='same',activation='relu')(x)
x=tf.keras.layers.BatchNormalization()(x)
x=tf.keras.layers.MaxPooling2D(pool_size=(2,2))(x)

#第5块
x=tf.keras.layers.Conv2D(1024,(3,3),strides=(1,1),padding='same',activation='relu')(x)
x=tf.keras.layers.BatchNormalization()(x)
x=tf.keras.layers.Conv2D(1024,(3,3),strides=(1,1),padding='same',activation='relu')(x)
x=tf.keras.layers.BatchNormalization()(x)
x=tf.keras.layers.Conv2D(1024,(3,3),strides=(1,1),padding='same',activation='relu')(x)
x=tf.keras.layers.BatchNormalization()(x)
x=tf.keras.layers.MaxPooling2D(pool_size=(2,2))(x)

#开始decoder************************************************************************************************************
#第6块
x=tf.keras.layers.UpSampling2D(size=(2,2))(x)
x=tf.keras.layers.Conv2D(1024,(3,3),strides=(1,1),padding='same',activation='relu')(x)
x=tf.keras.layers.BatchNormalization()(x)
x=tf.keras.layers.Conv2D(1024,(3,3),strides=(1,1),padding='same',activation='relu')(x)
x=tf.keras.layers.BatchNormalization()(x)
x=tf.keras.layers.Conv2D(1024,(3,3),strides=(1,1),padding='same',activation='relu')(x)
x=tf.keras.layers.BatchNormalization()(x)

#第7块
x=tf.keras.layers.UpSampling2D(size=(2,2))(x)
x=tf.keras.layers.Conv2D(512,(3,3),strides=(1,1),padding='same',activation='relu')(x)
x=tf.keras.layers.BatchNormalization()(x)
x=tf.keras.layers.Conv2D(512,(3,3),strides=(1,1),padding='same',activation='relu')(x)
x=tf.keras.layers.BatchNormalization()(x)
x=tf.keras.layers.Conv2D(512,(3,3),strides=(1,1),padding='same',activation='relu')(x)
x=tf.keras.layers.BatchNormalization()(x)

#第8块
x=tf.keras.layers.UpSampling2D(size=(2,2))(x)
x=tf.keras.layers.Conv2D(256,(3,3),strides=(1,1),padding='same',activation='relu')(x)
x=tf.keras.layers.BatchNormalization()(x)
x=tf.keras.layers.Conv2D(256,(3,3),strides=(1,1),padding='same',activation='relu')(x)
x=tf.keras.layers.BatchNormalization()(x)
x=tf.keras.layers.Conv2D(256,(3,3),strides=(1,1),padding='same',activation='relu')(x)
x=tf.keras.layers.BatchNormalization()(x)

#第9块
x=tf.keras.layers.UpSampling2D(size=(2,2))(x)
x=tf.keras.layers.Conv2D(128,(3,3),strides=(1,1),padding='same',activation='relu')(x)
x=tf.keras.layers.BatchNormalization()(x)
x=tf.keras.layers.Conv2D(128,(3,3),strides=(1,1),padding='same',activation='relu')(x)
x=tf.keras.layers.BatchNormalization()(x)

#第10块
x=tf.keras.layers.UpSampling2D(size=(2,2))(x)
x=tf.keras.layers.Conv2D(64,(3,3),strides=(1,1),padding='same',activation='relu')(x)
x=tf.keras.layers.BatchNormalization()(x)
x=tf.keras.layers.Conv2D(64,(3,3),strides=(1,1),padding='same',activation='relu')(x)
x=tf.keras.layers.BatchNormalization()(x)
img_output= tf.keras.layers.Conv2D(5, (3, 3), padding='same',activation='softmax')(x) #分为5类
model=tf.keras.models.Model(inputs=img_input,outputs=img_output)

```请勿粘贴截图

运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

1条回答 默认 最新

  • 我是周大欣 2022-01-28 11:08
    关注

    这和硬件有啥关系,训练的时候没有问题,验证的时候有问题也正常,毕竟你的数据分布又不是完全均衡的,出现一些模拟的不好的图片造成loss增高,但是数据大体上是有一个偏向的,所以慢慢还是会平稳

    评论

报告相同问题?

问题事件

  • 创建了问题 1月27日

悬赏问题

  • ¥15 mmo能不能做客户端怪物
  • ¥15 osm下载到arcgis出错
  • ¥15 Dell g15 每次打开eiq portal后3分钟内自动退出
  • ¥200 使用python编写程序,采用socket方式获取网页实时刷新的数据,能定时print()出来就行。
  • ¥15 matlab如何根据图片中的公式绘制e和v的曲线图
  • ¥15 我想用Python(Django)+Vue搭建一个用户登录界面,但是在运行npm run serve时报错了如何解决?
  • ¥15 QQ邮箱过期怎么恢复?
  • ¥15 登录他人的vue项目显示服务器错误
  • ¥15 (标签-android|关键词-app)
  • ¥15 comsol仿真压阻传感器