Question: INPUT _ SHAPE = ( 2 5 6 , 2 5 6 , 3 ) inputs = keras.layers.Input ( shape = INPUT _ SHAPE )

INPUT_SHAPE =(256,256,3)
inputs = keras.layers.Input(shape=INPUT_SHAPE)
conv1= SeparableConv2D(64,3, activation='relu', padding='same')(inputs)
conv1= BatchNormalization()(conv1)
pool1= MaxPooling2D(pool_size=(2,2))(conv1)
apool1= AveragePooling2D(pool_size=(2,2))(conv1)
am1= keras.layers.Add()([apool1, pool1])
out1= am1
conv2= SeparableConv2D(128,3, activation='relu', padding='same')(out1)
conv2= BatchNormalization()(conv2)
pool2= MaxPooling2D(pool_size=(2,2))(conv2)
apool2= AveragePooling2D(pool_size=(2,2))(conv2)
am2= keras.layers.Add()([apool2, pool2])
out2= am2
conv3= SeparableConv2D(256,3, activation='relu', padding='same')(out2)
conv3= BatchNormalization()(conv3)
conv4= SeparableConv2D(256,3, activation='relu', padding='same')(conv3)
conv4= BatchNormalization()(conv4)
drop3= Dropout(0.3)(conv4)
pool3= MaxPooling2D(pool_size=(2,2))(drop3)
gpool3= AveragePooling2D(pool_size=(2,2))(drop3)
kernel_initializer='he_uniform')(pconv5)
n1= keras.layers.Add()([gpool3, pool3])
n2= keras.activations.sigmoid(n1)
n2p = Multiply()([n2, pool3])
n2gp = Multiply()([n2, gpool3])
out = Add()([n2p, n2gp])
def squeeze_excite_block(tensor, ratio=1):
init = tensor
channel_axis =1 if K.image_data_format()== "channels_first" else -1
filters = init.shape[channel_axis]
se_shape =(1,1, filters)
se = GlobalAveragePooling2D()(init)
se = Reshape(se_shape)(se)
se = Dense(filters // ratio, activation='relu', kernel_initializer='he_uniform', use_bias=False)(se)
se = Dense(filters, activation='sigmoid', kernel_initializer='he_uniform', use_bias=False)(se)
if K.image_data_format()== 'channels_first':
se = Permute((3,1,2))(se)
x = multiply([init, se])
return x
se = squeeze_excite_block(out, ratio=1)
kernel_initializer='he_uniform')(conv4)
kernel_initializer='he_normal')(conv4)
flat = Flatten()(se)
dropout1= Dropout(0.3)(flat)
output = Dense(1, activation='sigmoid')(dropout1)
loss = keras.losses.BinaryFocalCrossentropy(apply_class_balancing=True, gamma=2, from_logits=True)
model = Model(inputs=inputs, outputs=output)
optimizer = Adam(learning_rate=0.00003)
model.compile(optimizer=optimizer,
loss=loss,
metrics=['accuracy'])
print(model.summary())
callback = tf.keras.callbacks.EarlyStopping(monitor='val_loss', mode='auto', verbose=1, patience=250)
result = model.fit(X_train,
y_train,
batch_size=16,
verbose=2,
epochs=300,
validation_split=0.3, callbacks=[callback]) # 10 percent of data for validation
acc = result.history['accuracy']
val_acc = result.history['val_accuracy']
loss = result.history['loss']
val_loss = result.history['val_loss']
epochs = range(1, len(loss)+1)
y_pred = model.predict(X_test)
# Save the plots
save_dir ='C://MASIEL//RESULTS' # Set your save directory here
# Data to save
# Data to save
plot_data ={
'history': {
'epochs': list(range(1, len(acc)+1)),
'accuracy': acc,
'val_accuracy': val_acc,
'loss': loss,
'val_loss': val_loss,
},
'accuracy': accuracy_score(y_test, y_pred.round()),
'confusion_matrix': confusion_matrix(y_test, y_pred.round()),
'f1_score': f1_score(y_test, y_pred.round()),
'y_test': y_test.tolist(), # Convert numpy array to list for pickling
'y_pred': y_pred.tolist() # Convert numpy array to list for pickling
}
# Save directory
save_dir ='C://MASIEL//RESULTS'
data_path = os.path.join(save_dir, 'model_results.pkl')
# Save the data
with open(data_path, 'wb') as file:
pickle.dump(plot_data, file)
# Save Test Accuracy and F1 Score to a text file
test_accuracy = accuracy_score(y_test, y_pred.round())
f1= f1_score(y_test, y_pred.round())
with open(os.path.join(save_dir, 'test_metrics.txt'),'w') as file:
file.write(f'Test Accuracy: {test_accuracy}
')
file.write(f'F1 Score: {f1}
')
 INPUT_SHAPE =(256,256,3) inputs = keras.layers.Input(shape=INPUT_SHAPE) conv1= SeparableConv2D(64,3, activation='relu', padding='same')(inputs) conv1= BatchNormalization()(conv1)

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!