訓練画像と教師画像をdeep-learningさせるプログラムを作ろうと考えています。
損失が減らず困っています。
modelは一旦既存の成功しているmodelを使っているので、合っていると思います。
なので、訓練画像と教師画像の処理で間違っているのではないかと思います。
どこが間違っているのかがわかりません。
modelに入力する画像は(1,256,256,1)という形で入力するようにしています。
わかる方ございましたら回答よろしくお願いいたします。
import numpy as np import matplotlib.pyplot as plt import glob,os import cv2 x=[] y=[] #画像フォルダのパスを指定 path=os.path.dirname(os.path.abspath('__file__')) in_size=(256,256) path_all_speckle=path + '/訓練画像のパス' path_all_teacher=path +'/教師画像のパス' file_訓練画像=glob.glob(訓練画像のパス +'/*.jpg') file_教師画像=glob.glob(教師画像のパス +'/*.jpg') def load_dir_訓練画像(path): for i in file_訓練画像: img=cv2.imread(i) img=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) img=cv2.resize(img,in_size) img=img/255.0 x.append(img) return x def load_dir_教師画像(path): for i in file_教師画像: pic=cv2.imread(i) pic=cv2.cvtColor(pic,cv2.COLOR_BGR2GRAY) pic=cv2.resize(pic,in_size) pic=pic/255.0 y.append(pic) return y load_dir_訓練画像(path_訓練画像のパス) load_dir_教師画像(path_教師画像のパス) x=np.array(x) print(x.shape) y=np.array(y) print(y.shape) from sklearn.model_selection import train_test_split import keras import matplotlib.pyplot as plt x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.2) x_train=x_train.reshape(len(x_train),256,256,1) x_test=x_test.reshape(len(x_test),256,256,1) y_train=y_train.reshape(len(y_train),256,256,1) y_test=y_test.reshape(len(y_test),256,256,1) #出力(訓練データの形状、教師データデータの形状) (800, 256, 256, 1) (800, 256, 256, 1)
回答1件
あなたの回答
tips
プレビュー