zoukankan      html  css  js  c++  java
  • 训练网络考虑内容

    样本均衡

    图像应该进行归一化

    小网络,没有resnet的要加上BN, 训练的时候均值和归一化是计算的来的,测试的时候要是根据训练集的均值和归一化来的,如果测试的时候is_training要设置为false

    CNN要加上偏置,否则,所有输出结果都是一样的,自己出现的这种现象

    网络初始化问题

    网络1层一个cnn一个pool,两层2个cnn一个pool

    分类损失用focal loss

    正则化

    学习率设置(0.003往下衰减,自己在实验中0.001开始速度变快,或者用余弦退火学习率)

    要在bn relu后加上全连接层要加上dropout, 在测试的时候要记得将其转换为1,问题:否则输入相同的图片产生的结果不一样,一个batch64张相同的图片结果也不一样

    输入图片以及每个block块都加上dropout, 这个keep rate 从0.9-0.5依次降低
    无论什么图片输入输出结果一样?

      可能一:模型最终输出都是0,梯度消失, 用HE初始化, 添加dropout,

    使用leaky-relu

    原来是最后的分类经过了softmax 激活,但是在计算损失的时候还是使用了softmax,这样就相当于经过了两次softmax,梯度消失更加明显了

    100个数据组成的训练集。训练的时候,acc是1,损失也比较小,但是继续用这100个训练集进行训练,精度和猜的一样

       数据输入的时候,(img-255)/128 这里不对,改为(img-127.5)/128

      batchsize是128,由于经过batch normalization,所以网络输入始终是一个数据集

    aimg = img[0]
    aimg = cv2.cvtColor(aimg, cv2.COLOR_BGR2RGB)
    cv2.imshow('img', aimg)
    这个图片数值范围是0-1
    imageData = tf.image.convert_image_dtype(imageData, tf.float32) 这个范围也是0-1所以不应该用-127.5/128
    最后一层是全部的进行fc,这个和人家的不一样可以改过来试一下,他用的是train和extradata,自己要用一下
    整理一下脚本文件
  • 相关阅读:
    vue:自定义指令
    vue去掉严格开发,即去掉vue-cli安装时的eslint
    vue路由6:导航钩子
    vue路由5:命名视图
    vue路由3:子路由
    vue组件通信之任意级组件之间的通信
    vue中组件通信之子父通信
    令狐冲也是个情场高手啊
    Java —— 时区(夏令时)问题
    PL/SQL 如何导出INSERT语句
  • 原文地址:https://www.cnblogs.com/yunshangyue71/p/13608822.html
Copyright © 2011-2022 走看看