-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtrain.py
More file actions
67 lines (55 loc) · 1.71 KB
/
Copy pathtrain.py
File metadata and controls
67 lines (55 loc) · 1.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
from tensorflow.keras.applications import MobileNetV2
import pathlib, os
# Dataset yolu - ZIP'i çıkarttığın klasörü buraya yaz
DATA_DIR = pathlib.Path(os.path.expanduser("~/Downloads/archive/Garbage classification/Garbage classification"))
IMG_SIZE = (224, 224)
BATCH_SIZE = 32
EPOCHS = 10
# Veriyi yükle
train_ds = keras.utils.image_dataset_from_directory(
DATA_DIR,
validation_split=0.2,
subset="training",
seed=123,
image_size=IMG_SIZE,
batch_size=BATCH_SIZE
)
val_ds = keras.utils.image_dataset_from_directory(
DATA_DIR,
validation_split=0.2,
subset="validation",
seed=123,
image_size=IMG_SIZE,
batch_size=BATCH_SIZE
)
class_names = train_ds.class_names
print("Kategoriler:", class_names)
# Performans için cache
AUTOTUNE = tf.data.AUTOTUNE
train_ds = train_ds.cache().shuffle(1000).prefetch(buffer_size=AUTOTUNE)
val_ds = val_ds.cache().prefetch(buffer_size=AUTOTUNE)
# MobileNetV2 - Transfer Learning
base_model = MobileNetV2(input_shape=(224, 224, 3), include_top=False, weights='imagenet')
base_model.trainable = False
model = keras.Sequential([
layers.Rescaling(1./127.5, offset=-1),
base_model,
layers.GlobalAveragePooling2D(),
layers.Dropout(0.3),
layers.Dense(6, activation='softmax')
])
model.compile(
optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy']
)
model.summary()
# Eğitim
history = model.fit(train_ds, validation_data=val_ds, epochs=EPOCHS)
# Kaydet
model.save("garbage_model.h5")
print("\nModel kaydedildi: garbage_model.h5")
print("Son doğruluk:", round(history.history['val_accuracy'][-1]*100, 2), "%")