文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Keras怎么修改图片通道的顺序

2023-06-15 03:06

关注

这篇文章主要介绍了Keras怎么修改图片通道的顺序,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

1. Error

在使用Keras.layers.convolutional.Convolution2D的时候

Convolution2D(32, 5, 5, border_mode='valid', input_shape=(1, 28, 28), activation='relu')

报如下错误:

OverflowError: Range exceeds valid bounds

这是因为Keras配置图片通道顺序错误导致的。上面代码使用图片通道顺序是[channels][height][width]

2. 修改图片通道顺序

检查 ~/.keras/keras.json文件

if "image_dim_ordering": is "th" and "backend": "theano", your input_shape must be (channels, height, width)if "image_dim_ordering": is "tf" and "backend": "tensorflow", your input_shape must be (height, width, channels)

所以,要保证你使用的通道顺序和配置的通道顺序一致

或者通过这样修改

from keras import backendbackend.set_image_dim_ordering('th')

补充:Keras设置后端数据维度顺序

Keras是比较高级的深度学习框架,其对几个比较常见的主流深度学习框架的封装而来,也就是按照Keras的说法就是其后端是以Tensorflow、Theano和CNTK为基础封装而来。

CNTK我没做过多了解,tensorflow的tensor的维度顺序和Theano的维度顺序是不一样的,所以在使用Keras的时候要格外注意这一点,如果后端不同的话,设置的数据维度顺序也是要不一样的。

tensorflow的数据维度默认顺序是channels_last的好像,也就是说其一个tensor的数据维度是[samples,rows,cols,channels],而Theano不同,其数据顺序是channels_first,也就是[samples,rows,cols,channels],这个其实也就是这两个框架的不同而已,如果用keras来写深度学习模型的话,其实就只要设置好后端基本也没啥问题,也不必太考虑数据维度的问题。

但是Keras的数据维度是可以改变的,即使是使用tensorflow为后端,Keras的数据格式也可以是channels_first的,并且这个是可以通过配置文件来改,也可以通过代码来改的。

Keras的配置文件默认是在$HOME/.keras/keras.json,可以用txt编辑器打开直接修改后端配置的:

{    "floatx": "float32",    "epsilon": 1e-07,    "image_data_format": "channels_last",    "backend": "tensorflow"}

这是我的windows下的配置信息,默认是以tensorflow为后端,数据格式是channels_last,但是我有个小项目是一开始是以Theano为后端来写的,本来就只要稍微改一下就好,但是因为只是这个项目需要改为Theano,所以我并没有直接改配置文件,而是在代码里修改后端,这里需要用到Keras的后端backend来实现,修改的代码如下:

from keras import backend as BKBK.set_image_data_format("channels_first")BK.set_image_dim_ordering("th")

这样设置之后再这个程序跑起来的时候其后端并不会被改变,改变的只是数据的维度顺序而已,而且仅仅是针对当前的程序,对其它程序是不影响的。

感谢你能够认真阅读完这篇文章,希望小编分享的“Keras怎么修改图片通道的顺序”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网行业资讯频道,更多相关知识等着你来学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯