m0_46508394 2023-07-26 20:38 采纳率: 0%
浏览 33
已结题

CNN回归分析做预测损失值降不下来

目标:利用一段时间的不同高度的风速预测建筑物的某个位置的位移
整体思路:将一段时间不同高度的风速转换为图像送入CNN训练
遇到的问题:调整模型的结构、增加样本,模型的损失值并没有改变多少,基本上在3.8左右

img


img


img

  • 写回答

16条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-07-26 22:29
    关注
    获得1.35元问题酬金
    不知道你这个问题是否已经解决, 如果还没有解决的话:
    • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7435590
    • 这篇博客也不错, 你可以看下深度学习实战笔记四:在自己处理的数据集上训练CNN网络并进行预测
    • 您还可以看一下 刘高联老师的亲自动手写一个深度学习框架课程中的 理论分析:CNN的反向传播小节, 巩固相关知识点
    • 除此之外, 这篇博客: 深度学习的常见模型CNN中的 猫狗大战,即一个简单的二分类问题,训练出一个自动判别猫狗的模型 部分也许能够解决你的问题。
    • 以下回答由chatgpt基于相关博客总结生成:

      首先,我建议你对CNN模型进行一些优化和调整,以降低预测损失值。下面是几个可能的解决方案:

      1. 数据清洗和预处理:确保你的风速数据是准确的,并进行必要的缺失值填充和异常值处理。此外,你还可以考虑标准化或归一化数据,以便更好地适应模型。
      # 数据清洗和预处理示例
      # 假设wind_speed_data是原始风速数据
      cleaned_data = wind_speed_data.fillna(0)  # 填充缺失值
      cleaned_data = cleaned_data.astype(float)  # 将数据类型转换为float
      normalized_data = (cleaned_data - cleaned_data.min()) / (cleaned_data.max() - cleaned_data.min())  # 归一化数据
      
      1. 增加样本量和数据增强:尝试增加你的训练数据样本量,这可以通过收集更多的不同高度的风速数据来实现。此外,你还可以使用数据增强技术来生成更多的训练样本,例如随机旋转、翻转或缩放原始风速图像。
      # 数据增强示例
      from keras.preprocessing.image import ImageDataGenerator
      
      datagen = ImageDataGenerator(rotation_range=10,  # 随机旋转角度
                                   horizontal_flip=True,  # 随机水平翻转
                                   zoom_range=0.1)  # 随机缩放
      augmented_data = datagen.flow(train_images, train_labels, batch_size=batch_size)
      
      1. 模型结构优化和调整:尝试不同的模型架构和参数设置,以进一步减少损失值。你可以尝试调整卷积层的深度和滤波器大小,增加或减少池化层的大小,添加或删除全连接层等。
      # 模型结构示例
      from keras.models import Sequential
      from keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
      
      model = Sequential()
      model.add(Conv2D(filters=32, kernel_size=(3, 3), activation='relu', input_shape=input_shape))
      model.add(MaxPooling2D(pool_size=(2, 2)))
      # 添加其他卷积层和池化层
      model.add(Flatten())
      model.add(Dense(units=128, activation='relu'))
      model.add(Dense(units=1, activation='linear'))
      
      1. 学习率调整和优化器选择:尝试调整学习率和选择合适的优化器算法。较小的学习率可能需要更多的训练迭代次数,但可能会导致更好的收敛性和损失值。
      # 优化器选择和学习率示例
      from keras.optimizers import Adam
      
      optimizer = Adam(lr=0.001)  # 设置学习率
      model.compile(loss='mean_squared_error', optimizer=optimizer)
      

      最后,使用这些优化方法后,你可以根据模型的训练和验证结果来判断损失值是否有明显改善。如果你得到了更好的结果,你可以通过调整和优化这些方法来进一步改善预测损失值。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 系统已结题 8月3日
  • 创建了问题 7月26日