Question: INPUT _ SHAPE = ( 2 5 6 , 2 5 6 , 3 ) inputs = keras.layers.Input ( shape = INPUT _ SHAPE )
INPUTSHAPE
inputs keras.layers.InputshapeINPUTSHAPE
conv SeparableConvD activation'relu', padding'same'inputs
conv BatchNormalizationconv
pool MaxPoolingDpoolsizeconv
apool AveragePoolingDpoolsizeconv
am keras.layers.Addapool pool
out am
conv SeparableConvD activation'relu', padding'same'out
conv BatchNormalizationconv
pool MaxPoolingDpoolsizeconv
apool AveragePoolingDpoolsizeconv
am keras.layers.Addapool pool
out am
conv SeparableConvD activation'relu', padding'same'out
conv BatchNormalizationconv
conv SeparableConvD activation'relu', padding'same'conv
conv BatchNormalizationconv
drop Dropoutconv
pool MaxPoolingDpoolsizedrop
gpool AveragePoolingDpoolsizedrop
kernelinitializerheuniform'pconv
n keras.layers.Addgpool pool
n keras.activations.sigmoidn
np Multiplyn pool
ngp Multiplyn gpool
out Addnp ngp
def squeezeexciteblocktensor ratio:
init tensor
channelaxis if Kimagedataformat "channelsfirst" else
filters init.shapechannelaxis
seshape filters
se GlobalAveragePoolingDinit
se Reshapeseshapese
se Densefilters ratio, activation'relu', kernelinitializerheuniform', usebiasFalsese
se Densefilters activation'sigmoid', kernelinitializerheuniform', usebiasFalsese
if Kimagedataformat 'channelsfirst':
se Permutese
x multiplyinit se
return x
se squeezeexciteblockout ratio
kernelinitializerheuniform'conv
kernelinitializerhenormal'conv
flat Flattense
dropout Dropoutflat
output Dense activation'sigmoid'dropout
loss keras.losses.BinaryFocalCrossentropyapplyclassbalancingTrue, gamma fromlogitsTrue
model Modelinputsinputs, outputsoutput
optimizer Adamlearningrate
model.compileoptimizeroptimizer,
lossloss,
metricsaccuracy
printmodelsummary
callback tfkeras.callbacks.EarlyStoppingmonitor'valloss', mode'auto', verbose patience
result model.fitXtrain,
ytrain,
batchsize
verbose
epochs
validationsplit callbackscallback # percent of data for validation
acc result.historyaccuracy
valacc result.historyvalaccuracy'
loss result.historyloss
valloss result.historyvalloss'
epochs range lenloss
ypred model.predictXtest
# Save the plots
savedir C:MASIELRESULTS # Set your save directory here
# Data to save
# Data to save
plotdata
'history':
'epochs': listrange lenacc
'accuracy': acc,
'valaccuracy': valacc,
'loss': loss,
'valloss': valloss,
'accuracy': accuracyscoreytest, ypred.round
'confusionmatrix': confusionmatrixytest, ypred.round
fscore': fscoreytest, ypred.round
ytest': ytest.tolist # Convert numpy array to list for pickling
ypred': ypred.tolist # Convert numpy array to list for pickling
# Save directory
savedir C:MASIELRESULTS
datapath ospath.joinsavedir, 'modelresults.pkl
# Save the data
with opendatapath, wb as file:
pickle.dumpplotdata, file
# Save Test Accuracy and F Score to a text file
testaccuracy accuracyscoreytest, ypred.round
f fscoreytest, ypred.round
with openospath.joinsavedir, 'testmetrics.txtw as file:
file.writefTest Accuracy: testaccuracy
file.writefF Score: f
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
