data_dir = "../data" batch_size = 32 image_size = (512, 1024, 3) phase = "test" image_URL = "../data/valid/handwritten/00002.png" class_dict = {0: "handwritten", 1: "printed"} model = Classifier() if phase == "train": model.compile( loss="binary_crossentropy", optimizer="adam", metrics=["accuracy"] ) model.build((None,) + image_size) model.summary() train_loader, val_loader = get_loaders(data_dir, "train", image_size[:2], batch_size) model.fit( train_loader, steps_per_epoch=train_loader.samples // batch_size, epochs=5, validation_data=val_loader, validation_steps=val_loader.samples // batch_size
from model import Classifier from dataset import preprocess_images from tensorflow_addons.image import rotate import numpy as np import tensorflow as tf (train_set, train_labels), (test_dataset, test_labels) = tf.keras.datasets.mnist.load_data() train_images = preprocess_images(train_set) test_images = preprocess_images(test_dataset) classifier = Classifier(shape=(28, 28, 1)) classifier_path = checkpoint_path = "./checkpoints/cls_nor" cls = tf.train.Checkpoint(classifier=classifier) cls_manager = tf.train.CheckpointManager(cls, classifier_path, max_to_keep=5) if cls_manager.latest_checkpoint: cls.restore(cls_manager.latest_checkpoint) print('classifier checkpoint restored!!') c_t = train_images c_l = train_labels classifier.compile( optimizer='adam', loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True), metrics=['accuracy']) classifier.fit(c_t, c_l, epochs=30, verbose=2) test_loss, test_acc = classifier.evaluate(test_images, test_labels, verbose=2) print('\nTest accuracy:', test_acc) filePath = "./cls_nor" checkpoint_path = "./checkpoints/" + filePath ckpt_save_path = cls_manager.save() print('Saving checkpoint for epoch {} at {}'.format(1, ckpt_save_path))