{"cells": [{"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["\n", "from google.colab import files\n", "files.upload()\n", "\n", "import zipfile, os\n", "with zipfile.ZipFile(\"dataset.zip\", 'r') as zip_ref:\n", "    zip_ref.extractall(\"dataset\")\n", "\n", "import tensorflow as tf\n", "from tensorflow.keras.preprocessing.image import ImageDataGenerator\n", "\n", "IMG_SIZE = (224, 224)\n", "BATCH_SIZE = 32\n", "\n", "datagen = ImageDataGenerator(\n", "    rescale=1./255,\n", "    validation_split=0.2,\n", "    rotation_range=30,\n", "    zoom_range=0.2,\n", "    shear_range=0.2,\n", "    horizontal_flip=True,\n", "    fill_mode='nearest'\n", ")\n", "\n", "train_data = datagen.flow_from_directory(\n", "    \"dataset\",\n", "    target_size=IMG_SIZE,\n", "    batch_size=BATCH_SIZE,\n", "    class_mode='categorical',\n", "    subset='training'\n", ")\n", "\n", "val_data = datagen.flow_from_directory(\n", "    \"dataset\",\n", "    target_size=IMG_SIZE,\n", "    batch_size=BATCH_SIZE,\n", "    class_mode='categorical',\n", "    subset='validation'\n", ")\n", "\n", "base_model = tf.keras.applications.MobileNetV2(input_shape=(224, 224, 3),\n", "                                               include_top=False,\n", "                                               weights='imagenet')\n", "base_model.trainable = False\n", "\n", "model = tf.keras.Sequential([\n", "    base_model,\n", "    tf.keras.layers.GlobalAveragePooling2D(),\n", "    tf.keras.layers.Dense(256, activation='relu'),\n", "    tf.keras.layers.Dropout(0.3),\n", "    tf.keras.layers.Dense(train_data.num_classes, activation='softmax')\n", "])\n", "\n", "model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])\n", "\n", "model.fit(train_data, epochs=10, validation_data=val_data)\n", "\n", "model.save(\"eye_disease_model.h5\")\n", "\n", "from google.colab import files\n", "files.download(\"eye_disease_model.h5\")\n"]}], "metadata": {"kernelspec": {"display_name": "Python 3", "language": "python", "name": "python3"}, "language_info": {"name": "python", "version": "3.9"}}, "nbformat": 4, "nbformat_minor": 2}