นี่คือรหัสหลักที่ทำงานบนเครื่อง CPU โดยจะโหลดรูปภาพและมาสก์ทั้งหมดจากโฟลเดอร์ ปรับขนาด และบันทึกเป็น 2 อาร์เรย์
from skimage.transform import resize as imresize
from skimage.io import imread
def create_data(dir_input, img_size):
img_files = sorted(glob(dir_input + '/images/*.jpg'))
mask_files = sorted(glob(dir_input + '/masks/*.png'))
X = []
Y = []
for img_path, mask_path in zip(img_files, mask_files):
img = imread(img_path)
img = imresize(img, (img_size, img_size), mode='reflect', anti_aliasing=True)
mask = imread(mask_path)
mask = imresize(mask, (img_size, img_size), mode='reflect', anti_aliasing=True)
X.append(img)
Y.append(mask)
path_x = dir_input + '/images-{}.npy'.format(img_size)
path_y = dir_input + '/masks-{}.npy'.format(img_size)
np.save(path_x, np.array(X))
np.save(path_y, np.array(Y))
นี่คือลำดับชั้นพื้นที่เก็บข้อมูล gcloud
gs://my_bucket
|
|----inputs
| |----images/
| |-----masks/
|
|----outputs
|
|----trainer
dir_input
ควรเป็น gs://my_bucket/inputs
สิ่งนี้ไม่ทำงาน วิธีที่เหมาะสมในการโหลดรูปภาพจากเส้นทางนั้นบนคลาวด์และบันทึกอาร์เรย์จำนวนมากในโฟลเดอร์อินพุตคืออะไร
ควรใช้ skimage
ซึ่งโหลดอยู่ใน setup.py