内容引用自https://www.kaggle.com/toregil/a-lung-u-net-in-keras?select=2d_masks.zip
#引入普通包
1 import os2 import numpy asnp3 import pandas as pd 4 import cv2 #后面用于图像放缩(插值)5 import matplotlib.pyplot asplt6 %matplotlib inline7 from sklearn.model_selection import train_test_split #将总数据集分为训练集和测试集
#引入深度学习包
fromkeras.models import Model #keras模型from keras.layers import * #keras层
fromkeras.optimizers import Adam #keras优化算法fromkeras.regularizers import l2 #l2正则化fromkeras.preprocessing.image import ImageDataGenerator #图像增强生成器
import keras.backendasKfrom keras.callbacks import LearningRateScheduler, ModelCheckpoint
#导入图像文件并图像设置为指定大小
IMAGE_LIB = '../input/2d_images/'#图片路径
MASK_LIB= '../input/2d_masks/' #掩模路径IMG_HEIGHT, IMG_WIDTH= 32, 32 #输入网络的图片大小SEED=42 #随机种子
all_images = [x for x in sorted(os.listdir(IMAGE_LIB)) if x[-4:] == '.tif'] #图片名数组(格式tif)
x_data= np.empty((len(all_images), IMG_HEIGHT, IMG_WIDTH), dtype='float32') #图片数据开辟空间for i, name inenumerate(all_images): #导入图片数据
im= cv2.imread(IMAGE_LIB + name, cv2.IMREAD_UNCHANGED).astype("int16").astype('float32') #cv2.IMREAD_UNCHANGED 包括alpha通道
im= cv2.resize(im, dsize=(IMG_WIDTH, IMG_HEIGHT), interpolation=cv2.INTER_LANCZOS4) #cv2. INTER_LANCZOS4,8x8像素邻域Lanczos插值
im= (im - np.min(im)) / (np.max(im) -np.min(im)) #归一化
x_data[i]=im
y_data= np.empty((len(all_images), IMG_HEIGHT, IMG_WIDTH), dtype='float32') #掩模数据开辟空间for i, name inenumerate(all_images): #导入掩模数据
im= cv2.imread(MASK_LIB + name, cv2.IMREAD_UNCHANGED).astype('float32')/255.
im= cv2.resize(im, dsize=(IMG_WIDTH, IMG_HEIGHT), interpolation=cv2.INTER_NEAREST) #cv2.INTE