千家信息网

Keras如何改变图片通道的顺序

发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,本篇内容介绍了"Keras如何改变图片通道的顺序"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.
千家信息网最后更新 2025年01月16日Keras如何改变图片通道的顺序

本篇内容介绍了"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如何改变图片通道的顺序"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

顺序 数据 维度 通道 配置 图片 也就是 代码 文件 学习 不同 时候 框架 深度 程序 内容 只是 可以通过 是在 更多 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 高级软件开发师证考试多少分 铁岭市公安局网络安全四进活动 代理服务器uplay 软件开发模型的理解 江苏省考公安专技网络安全 服务器端口防护工具 服务器中怎么制造抽奖机器 个人软件开发发展愿景 春雨网络技术 日志 数据库表 计算机网络技术可以直招士官 信息技术服务费和网络技术服务费 泰州云网络技术服务费 临沂商客网络技术有限公司 蚂蚁服务器登录不了 手机怎么连香港的服务器 嵌入式和网络技术哪个好考 运维多个服务器管理 数据库访问层固定封装方式有哪些 梭罗日记软件开发 湖北联想服务器虚拟化费用 静安区电子软件开发售后保障 黑暗之魂3 登录服务器 数据库应用技术教程微课版答案 漳州拓星互联网科技有限公司 app公司需要多少服务器 冬季奥运会网络安全保障总结 怎么没看到软件开发招工 机房网络安全注意事项 go数据库kegg
0