tomno2 / tomno2-project-1 Public

Training settings

Please provide a valid number of training cycles (numeric only)
Please provide a valid number for the learning rate (between 0 and 1)
Please provide a valid training processor option

Augmentation settings

Advanced training settings

Neural network architecture

import tensorflow as tf from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Conv2D, DepthwiseConv2D, ReLU from tensorflow.keras.layers import GlobalAveragePooling2D, Dense, InputLayer from tensorflow.keras.optimizers import Adam # ===== HYPERPARAM ===== EPOCHS = args.epochs or 80 BATCH_SIZE = args.batch_size or 16 # ===== DATA AUGMENTATION ===== data_augmentation = tf.keras.Sequential([ tf.keras.layers.RandomRotation(0.1), tf.keras.layers.RandomZoom(0.1), ]) # ===== DATASET ===== # ⚠️ KHÔNG shuffle sau khi batch train_dataset = train_dataset.map( lambda x, y: (data_augmentation(x, training=True), y), num_parallel_calls=tf.data.AUTOTUNE ) train_dataset = train_dataset.shuffle(64).batch(BATCH_SIZE).prefetch(tf.data.AUTOTUNE) validation_dataset = validation_dataset.batch(BATCH_SIZE).prefetch(tf.data.AUTOTUNE) # ===== MODEL ===== model = Sequential() # ✅ INPUT 128x128 model.add(InputLayer(input_shape=(128, 128, 3))) # 🔥 Block 1 model.add(Conv2D(8, 3, strides=2, padding='same')) model.add(ReLU()) # 🔥 Block 2 model.add(DepthwiseConv2D(3, strides=2, padding='same')) model.add(ReLU()) model.add(Conv2D(12, 1)) model.add(ReLU()) # 🔥 Block 3 model.add(DepthwiseConv2D(3, strides=2, padding='same')) model.add(ReLU()) model.add(Conv2D(16, 1)) model.add(ReLU()) # 🔥 Block 4 model.add(DepthwiseConv2D(3, strides=2, padding='same')) model.add(ReLU()) model.add(Conv2D(20, 1)) model.add(ReLU()) # 🔥 Pooling model.add(GlobalAveragePooling2D()) # 🔥 Embedding model.add(Dense(24, activation='relu')) # Output model.add(Dense(classes, activation='softmax')) # ===== COMPILE ===== model.compile( optimizer=Adam(learning_rate=0.0007), loss=tf.keras.losses.CategoricalCrossentropy(label_smoothing=0.05), metrics=['accuracy'] ) # ===== TRAIN ===== model.fit( train_dataset, epochs=EPOCHS, validation_data=validation_dataset, callbacks=callbacks, verbose=2 ) # ===== QUANTIZATION ===== disable_per_channel_quantization = False
Input layer (49,152 features)
Select a backbone
Select a scoring function
2D conv / pool layer (8 filters, 3 kernel size, 1 layer)
2D conv / pool layer (16 filters, 3 kernel size, 1 layer)
Dropout (rate 0.2)
Flatten layer
Dense layer (16 neurons)
Dense layer (4 neurons)
Output layer (4 classes)

Model

Model version: