import tensorflow as tf
from tensorflow.keras.utils import image_dataset_from_directory
import pathlib
tf.random.set_seed(42)
train_dir = pathlib.Path("pizza_steak/train")
test_dir = pathlib.Path("pizza_steak/test")
train_data = image_dataset_from_directory(
directory=train_dir,
batch_size=32,
image_size=(224, 224),
label_mode="binary",
seed=42
)
valid_data = image_dataset_from_directory(
directory=test_dir,
batch_size=32,
image_size=(224, 224),
label_mode="binary",
seed=42
)
model = tf.keras.models.Sequential([
tf.keras.layers.Rescaling(scale=1/255)
tf.keras.layers.Conv2D(filters=10,
kernel_size=3,
activation="relu",
input_shape=(224, 224, 3)),
tf.keras.layers.Conv2D(10, 3, activation="relu"),
tf.keras.layers.MaxPool2D(pool_size=2,
padding="valid"),
tf.keras.layers.Conv2D(10, 3, activation="relu"),
tf.keras.layers.Conv2D(10, 3, activation="relu"),
tf.keras.layers.MaxPool2D(2),
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(1, activation="sigmoid"),
])
model.compile(
loss=tf.keras.losses.BinaryCrossentropy(),
optimizer=tf.keras.optimizers.Adam(),
metrics=['accuracy']
)
model.fit(train_data,
epochs=5,
steps_per_epoch=len(train_data),
validation_data=valid_data,
validation_steps=len(valid_data))