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 backend
backend.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의 데이터 차원은 바뀔 수 있다. 텐서플로우를 백엔드로 사용하더라도 Keras의 데이터 형식은 channels_first의, 그리고 이것은 프로필을 통해 고칠 수도 있고, 코드를 통해 고칠 수도 있습니다.
Keras의 프로필은 기본적으로 $HOME/입니다.keras/keras.json, 백엔드 구성을 직접 수정하는 txt 편집기를 열 수 있습니다.
{
"floatx": "float32",
"epsilon": 1e-07,
"image_data_format": "channels_last",
"backend": "tensorflow"
}
이것은 내 윈도우즈의 설정 정보입니다. 기본적으로tensorflow를 백엔드로 하고 데이터 형식은channels_last, 그런데 저는 작은 프로젝트가 있는데 처음에 Theano를 백엔드로 썼어요. 원래는 조금만 고치면 돼요. 그런데 이 프로젝트만 Theano로 바꿔야 하기 때문에 저는 프로필을 직접 고치지 않고 코드에서 백엔드를 수정했습니다. 여기는 Keras의 백엔드 백엔드로 해야 합니다. 수정된 코드는 다음과 같습니다.
from keras import backend as BK
BK.set_image_data_format("channels_first")
BK.set_image_dim_ordering("th")
이렇게 설정한 후에 이 프로그램이 달릴 때 백엔드는 바뀌지 않는다. 바뀐 것은 데이터의 차원 순서일 뿐이고 현재의 프로그램만 대상으로 하기 때문에 다른 프로그램에는 영향을 주지 않는다.이상의 개인적인 경험으로 여러분께 참고가 되었으면 좋겠습니다. 또한 많은 응원 부탁드립니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
TensorFlow+Keras로 Cutout 구현/평가에서 각종 Data Augmentation을 구현했을 때, TensorFlow Addons를 사용하면 간단하게 Cutout을 구현할 수 있는 것을 깨달았다. 여기에서는 Dataset에 대해서 map 적용하는 구현과 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.