前提・実現したいこと
コードを実行中に発生したエラーについて、どのようにコードを修正すればエラーが改善されるか教えて頂きたいです。
npのreshapeがうまくいっていないようでしたので、他の質問も参考に以下の通り修正したのですがうまくいきませんでした。
また、他にもおかしな点があれば併せてご指摘いただけますと幸いです。
発生している問題・エラーメッセージ
ValueError: cannot reshape array of size 451584 into shape (128,1176)
該当のソースコード
import numpy as np
import os
from PIL import Image
import glob
import re
from arrange_augmentator import Augmentation #自作モジュール
from arrange_data_resize import Data #自作モジュール
FROM_DIR = "./folder_a/train/output"
def numericalSort(value):
numbers = re.compile(r'(\d+)')
parts = numbers.split(value)
parts[1::2] = map(int, parts[1::2])
return parts
class Make_train():
def image_list(self):
test = np.empty((0, 128, 1176, 1), int)
for infile in sorted(glob.glob(os.path.join(FROM_DIR, "*.png")),key=numericalSort):
im = Image.open(infile)
gray_im = im.convert('L')
gray_array = np.array(gray_im)
im_reshape = np.reshape(gray_array, (1,128,1176,1))
test = np.concatenate([test,im_reshape])
if len(test)==2:
break
return test
if name == 'main':
_, x_test = Augmentation().run()
print("run augmentor.py")
x_train = Make_train().image_list()
np.save('./x_train_augmentor.npy',x_train)
np.save('./ae_x_test.npy',x_test)
試したこと
エラー元を見ると、上記のコード内の自作モジュールAugmentator.pyの方のreshapeがうまくいっていないようだったので、以下の通り修正しました。
(修正前はimage = np.reshape(image, (128,1176))としていました)
import numpy as np
from PIL import Image
import Augmentor
from arrange_data_resize import Tomography
class Augmentation():
def run(self): x_train, x_test = Data().make() image_size = x_train.shape[1] img_rows,img_cols = 128,1176 for i in range(len(x_train)): image = x_train[i:i+1,:,:] image = np.reshape(image, (1,128,1176,1)) pilImg = Image.fromarray(np.uint8(image)) if i==2: break pilImg.save('./folder_a/train/data_%d.png' %i) images_dir = "./folder_a" output_dir = './folder_a/train' os.makedirs(output_dir, exist_ok=True) p = Augmentor.Pipeline(images_dir) p.rotate(probability=0.7, max_left_rotation=5, max_right_rotation=5) p.sample(1400) return x_train,x_test
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/07 03:54
2019/10/07 09:37