Caffe 问题记录

本文记录了在使用 Caffe 过程中遇到的问题,包括训练模式下 dropout 的处理以及 Transformer 类的详细应用,如设置 transpose 和 channel swap。这些问题对于理解 Caffe 中的图像预处理至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文地址:lefenger.com

Caffe使用所遇到的问题。

当 caffe为训练模式时,dropout不执行。

layer
{    
    bottom: "a"
    bottom: "b"
    name: "conv1_1"
    param
    {
     propagate_down : 0  //a不会得到梯度传播
     propagate_down : 0  //b不会得到梯度传播
     lr_mult: 0 # 学习率为0   //此层参数不会改变,可用于finetune
    }
    # set loss weight so Caffe knows this is a loss layer  
    loss_weight: 1  //告诉caffe这是一个loss层
}

transformer=caffe.io.Transformer({‘data’:[1,3,256,256]})
Transformer是一个图像预处理类,在io.py中可看到具体实现,这个类用于图像数据的预处理,最多只能为三维,这个类本身不存储数据,它存储的是预处理的方式,即处理的过程,它以键值对的形式存储预处理模板,一般先将所需要的预处理过程写好,再使用此类对数据进行预处理。这里需要注意的是[1,3,256,256]并不是处理之前的维度,而是处理之后的维度,即你想要得到的维度。

transformer.set_transpose(“data”,(2,0,1))
对维度进行变换 ,例如输入的维度为[422,412,3],则得出的结果为[3,256,256],其中操作分为两步,一是[422,412,3]->[3,422,412],二是根据[1,3,256,256]对维度进行缩放。

tranformer.set_channel_swap(‘data’,(2,1,0))
这个函数很容易与上个函数混淆,他们的区别在于,上个函数是对维度进行变换,而这个函数是对维度内部的行的顺序进行变换,比如在第某个维度的数据为[[1,2],[3,4]],那么在经过[1,0]的变换之后便变换为了[[3,4],[1,2]]。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值