import datetimefrom kerasutils import to_categoricalfrom kerasdatasets import fashion_mnistimport numpy as npfrom keraslayers import Input Conv2D AveragePooling2D BatchNormalization Activation Add Fla
import datetime from keras.utils import to_categorical from keras.datasets import fashion_mnist import numpy as np from keras.layers import Input, Conv2D, AveragePooling2D, BatchNormalization, Activation, Add, Flatten, Dense, Dropout from keras.models import Model
def conv(channels, strides=1, kernel_size=(3, 3), padding='same'): return Conv2D(filters=channels, kernel_size=kernel_size, strides=strides, padding=padding,use_bias=False)
def res_block(inputs, base_channels):
residual = inputs
residual = BatchNormalization()(residual)
residual = Activation('relu')(residual)
residual = conv(channels=base_channels, kernel_size=(1, 1))(residual)
#直连部分
x = conv(channels=base_channels, kernel_size=(1, 1))(inputs)
x= BatchNormalization()(x)
x = Activation('relu')(x)
x= conv(channels=base_channels2, strides=1, kernel_size=(3,3))(x)
x= BatchNormalization()(x)
x = Activation('relu')(x)
x=conv(channels=base_channels4, kernel_size=(1,1))(x)
outputs = Add()([x, residual])
return Activation('relu')(outputs)
def ResNet(input_shape, base_channels, classes): inputs = Input(shape=input_shape) x= conv(channels=base_channels,strides=2,kernel_size=(3,3))(inputs) x = res_block(x, base_channels=base_channels) x= res_block(x, base_channels=base_channels2) x= res_block(x, base_channels=base_channels4) x= AveragePooling2D(pool_size=(4,4))(x) x= Flatten()(x) x= Dense(units=classes, activation='softmax')(x) model= Model(inputs=inputs, outputs=x) return model
Example usage:
model = ResNet(input_shape=(28,28,1), base_channels=64, classes=10) model.summary(
原文地址: https://www.cveoy.top/t/topic/fsgm 著作权归作者所有。请勿转载和采集!