数学建模社区-数学中国

标题: 2021美赛C题编程 [打印本页]

作者: 白山茶    时间: 2022-2-13 11:24
标题: 2021美赛C题编程
import osfrom PIL import Imageimport numpy as npimport matplotlib.pyplot as pltimport tensorflow as tffrom tensorflow.keras import datasets, layers, modelsdef read_image(paths):    os.listdir(paths)    filelist = []    for root, dirs, files in os.walk(paths):        for file in files:            if os.path.splitext(file)[1] == ".jpg":                filelist.append(os.path.join(root, file))    return filelistdef im_xiangsu(paths):    for filename in paths:        try:            im = Image.open(filename)            newim = im.resize((128, 128))            newim.save('F:/CNN/test/' + filename[12:-4] + '.jpg')            print('图片' + filename[12:-4] + '.jpg' + '像素转化完成')        except OSError as e:            print(e.args)def im_array(paths):    M=[]    for filename in paths:        im=Image.open(filename)        im_L=im.convert("L")                #模式L        Core=im_L.getdata()        arr1=np.array(Core,dtype='float32')/255.0        list_img=arr1.tolist()        M.extend(list_img)    return Mpath_1='引号内为训练图集所在文件路径'filelist_1=read_image(path_1)M=[]M=im_array(filelist_1)dict_label={0:'亚洲大黄蜂'}train_images=np.array(M).reshape(len(filelist_1),128,128)label=[0]*len(filelist_1)train_lables=np.array(label)        #数据标签train_images = train_images[ ..., np.newaxis ]        #数据图片print(train_images.shape)#输出验证一下(400, 128, 128, 1)model = models.Sequential()model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(128, 128, 1)))#过滤器个数,卷积核尺寸,激活函数,输入形状model.add(layers.MaxPooling2D((2, 2)))#池化层model.add(layers.Conv2D(64, (3, 3), activation='relu'))model.add(layers.MaxPooling2D((2, 2)))model.add(layers.Conv2D(64, (3, 3), activation='relu'))model.add(layers.Flatten())#降维model.add(layers.Dense(64, activation='relu'))#全连接层model.add(layers.Dense(1, activation='softmax'))model.summary()  # 显示模型的架构model.compile(optimizer='adam',              loss='sparse_categorical_crossentropy',              metrics=['accuracy'])#epochs为训练多少轮、batch_size为每次训练多少个样本model.fit(train_images, train_lables, epochs=5)model.save('my_model.h5') #保存为h5模型#tf.keras.models.save_model(model,"F:\python\moxing\model")#这样是pb模型print("模型保存成功!")





欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5