• 大小: 1.27MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-08-12
  • 语言: 其他
  • 标签:

资源简介

提取图片纹理特征,再用分类器分类,提取图片纹理特征的方法是卷积神经网络,分类器是soft max分类器

资源截图

代码片段和文件信息

from __future__ import print_function
import keras
from keras.datasets import mnist
from keras.models import Sequential
from keras.layers import Dense Dropout FlattenLeakyReLU
from keras.layers import Conv2DAveragePooling2D MaxPooling2D ZeroPadding2D

from keras.preprocessing.image import ImageDataGenerator
from keras.callbacks import ModelCheckpoint
import numpy


def create_model():
    model = Sequential()
    #model.add(ZeroPadding2D((11)input_shape=input_shape))
    model.add(Conv2D(16 kernel_size=(2 2) activation=‘relu‘ input_shape=input_shape))
    model.add(AveragePooling2D(pool_size=(2 2)))

    model.add(Dropout(0.5))
    model.add(Conv2D(36 (2 2) activation=‘relu‘))
    model.add(AveragePooling2D(pool_size=(22)))

    model.add(Dropout(0.5))
    model.add(Conv2D(64 (22) activation=‘relu‘))
    model.add(AveragePooling2D(pool_size=(2 2)))
    #
    model.add(Dropout(0.5))
    model.add(Conv2D(100 (22) activation=‘relu‘))
    model.add(AveragePooling2D(pool_size=(2 2)))

    # model.add(Dropout(0.5))
    # model.add(Conv2D(144 (22) activation=‘relu‘))
    # model.add(AveragePooling2D(pool_size=(2 2)))




    model.add(Flatten())# 对数组进行降维,返回折叠后的一位数组
    model.add(Dense(864 activation=‘relu‘))#一个全连接层(稠密层,dense layer)
    model.add(Dropout(0.2))#dropout层是一个正则化矩阵,随机的设置输入值为零来避免过拟合
    model.add(Dense(288 activation=‘relu‘))
    model.add(Dropout(0.2))
    model.add(Dense(num_classes activation=‘softmax‘))
    model.compile(loss=keras.losses.categorical_crossentropy optimizer=keras.optimizers.Adam()
                  metrics=[‘accuracy‘])
    return model


def train_and_evaluate_model(model):
    filepath = “weights.best.hdf5“
    checkpoint = ModelCheckpoint(filepath monitor=‘val_acc‘ verbose=1 save_best_only=True mode=max)
    callbacks_list = [checkpoint]

    #-------------------------------------------------
    train_datagen = ImageDataGenerator(
        rotation_range=90
        rescale=1. / 255
        #shuffle=True
        #width_shift_range=0.2
        #height_shift_range=0.2
        #shear_range=0.2
        #zoom_range=0.2
        horizontal_flip=True
    )

    test_datagen = ImageDataGenerator(rescale=1./255)

    train_generator = train_datagen.flow_from_directory(
        ‘F:/data/train‘
        target_size=(32 32)
        batch_size=16
        shuffle=True
        class_mode=‘categorical‘)

    validation_generator = test_datagen.flow_from_directory(
        ‘F:/data/invalidation‘
        target_size=(32 32)
        batch_size=16
        class_mode=‘categorical‘)

    model.fit_generator(
        train_generator
        steps_per_epoch=12000
        epochs=30
        validation_data=validation_generator
        validation_steps=2000verbose=1callbacks=callbacks_list)
    class_dictionary = validation_generator.class_indices


    target_names = [‘class 0‘ ‘class 1‘ ‘class 2‘]

    return model.model.history.history[‘val_acc‘]


def model_test():
    global batch_si

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        3565  2018-01-05 19:06  卷积神经网络\texture_Lung_cnn.py
     文件     1138176  2017-12-24 22:21  卷积神经网络\纹理分类.ppt
     文件      450069  2017-12-24 20:02  卷积神经网络\马天琪_23020171153046_纹理识别报告.docx
     目录           0  2018-01-07 11:21  卷积神经网络\

评论

共有 条评论