channel_first和channel_last的一些技巧

首先声明:我是在学习keras框架的过程有感而发!希望能够帮助你

    我们在model的搭建过程中,有很多时候因为channel_first or channel_last的问题绞尽脑汁,这里我提两点技巧。

    

First

我们要明白几点内容,当我们用theano作为backend时候,我们在进行卷积等一些操作时候,系统都会自动按照channel_first的来,比如卷积后的深度那一维放到了H,W的前面。而我们如果用tensorflow作为backend时候,系统会默认是channel_last。你可以通过修改backend来达到你想要的效果,并且通过下面这个函数测试,你目前是什么类型:

keras.backend.image_data_format() 

如果你不想修改默认的或者当前backend,还可以通过添加下面这行代码来修改当前的data_format为channel_first

from keras import backend as K
K.set_image_dim_ordering('th')

#K.set_image_dim_ordering('tf')则会修改为channel_last

Second

我们在调用一些方法的时候,如果想在方法局部来改变方法读取数据的方式是channel_first还是channel_last,我们可以通过查询方法中的参数是否包含data_format这一项,如果有的话,我们就可以通过选择是"channels_first" 还是 “channels_last”决定方法内部用什么方式执行了。

比如keras.backend.resize_images中可以选择data_format来达到按照channel_first方式读取,而K.tf.image.resize_bilinear却只能固定按照channel_last执行。(这里有介绍)

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值