from bottleneck_residual import bottleneck_residual_block from itertools import filterfalse import sys import os #from keras.layers.pooling import AveragePooling2D, MaxPool2D from keras.layers import AveragePooling2D, MaxPooling2D #sys.path.append('c:/git/keras') #sys.path.append('c:/git/absl') # installed # py -mpip install numpy # py -mpip show numpy # py -mpip install tensorflow # py -mpip show tensorflow # py -mpip install matplotlib # c:\users\skess\appdata\local\programs\python\python39\lib\site-packages import keras #from keras.optimizers import adam_v2 #from tensorflow.keras.optimizers import Adam #from keras.datasets import cifar10 #from keras.preprocessing.image import ImageDataGenerator from keras.models import Sequential #from keras.utils import np_utils from keras.layers import Dense from keras.layers import Activation from keras.layers import Flatten #from keras.layers import Dropout from keras.layers import BatchNormalization from keras.layers import Conv2D from keras.layers import MaxPooling2D #from keras.callbacks import ModelCheckpoint #from tensorflow.keras.callbacks import EarlyStopping from keras import regularizers from keras import optimizers from matplotlib import pyplot import numpy as np import tensorflow def resnet50(input_shape,classes,model_name='resnet50'): x_input=keras.Input(input_shape) x=Conv2D(64,(7,7),strides=(2,2),name='conv1')(x_input) x=BatchNormalization(axis=3,name='bn_conv1')(x) x=Activation('relu')(x) x=MaxPooling2D((3,3),strides=(2,2))(x) x=bottleneck_residual_block(x,3,[64,64,256],reduce=True,s=1) x=bottleneck_residual_block(x,3,[64,64,256]) x=bottleneck_residual_block(x,3,[64,64,256]) x=bottleneck_residual_block(x,3,[128,128,512],reduce=True,s=2) x=bottleneck_residual_block(x,3,[128,128,512]) x=bottleneck_residual_block(x,3,[128,128,512]) x=bottleneck_residual_block(x,3,[128,128,512]) x=bottleneck_residual_block(x,3,[256,256,1024],reduce=True,s=2) x=bottleneck_residual_block(x,3,[256,256,1024]) x=bottleneck_residual_block(x,3,[256,256,1024]) x=bottleneck_residual_block(x,3,[256,256,1024]) x=bottleneck_residual_block(x,3,[256,256,1024]) x=bottleneck_residual_block(x,3,[256,256,1024]) x=bottleneck_residual_block(x,3,[512,512,2048],reduce=True,s=2) x=bottleneck_residual_block(x,3,[512,512,2048]) x=bottleneck_residual_block(x,3,[512,512,2048]) x=AveragePooling2D((1,1))(x) x=Flatten()(x) if classes==1: x=Dense(classes,activation='sigmoid',name='fc'+str(classes))(x) else: x=Dense(classes,activation='softmax',name='fc'+str(classes))(x) model=keras.Model(inputs=x_input,outputs=x,name=model_name) return model