Auro Tripathy
Apr 11, 2021

--

My solution for 93.75 val accuracy on the medical dataset.

"""

download dataset from

https://www.kaggle.com/paultimothymooney/kermany2018

"""

import os

from tensorflow.keras.applications import ResNet50

from tensorflow.keras.models import Sequential

from tensorflow.keras.preprocessing.image import ImageDataGenerator

from tensorflow.keras.layers import Flatten, Dense

from tensorflow.keras.optimizers import Adam

# use train and val out of these

root_dir = '/media/auro/RAID 5/medical/OCT2017 '

train_dir = os.path.join(root_dir, 'train')

val_dir = os.path.join(root_dir, 'val')

nb_classes = 4

train_gen = ImageDataGenerator(rescale=1. / 255)

train_generator = train_gen.flow_from_directory(train_dir,

target_size=(256, 256),

batch_size=64,

class_mode='categorical',

shuffle=True)

val_gen = ImageDataGenerator(rescale=1. / 255)

val_generator = val_gen.flow_from_directory(val_dir,

target_size=(256, 256),

batch_size=64,

class_mode='categorical')

rn50_model = ResNet50(include_top=False,

weights='imagenet',

input_shape=(256, 256, 3))

for layer in rn50_model.layers[:143]:

layer.trainable = False

for i, layer in enumerate(rn50_model.layers):

print(i, layer.name, layer.trainable)

model = Sequential()

model.add(rn50_model)

model.add(Flatten())

model.add(Dense(nb_classes, activation='softmax'))

optimizer = Adam(0.0001)

model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])

history = model.fit_generator(train_generator, epochs=10, validation_data=val_generator, verbose=1)

--

--

Responses (1)