diff --git a/README.md b/README.md index d22ee02..3f9b017 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ # Example: Versioning -Datasets and ML model versioning example -[for Get Started](https://dvc.org/doc/get-started/example-versioning). +Datasets and ML model getting started +[versioning tutorial](https://dvc.org/doc/tutorials/versioning). diff --git a/requirements.txt b/requirements.txt index fc8ee8e..d501bff 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -tensorflow==1.13.1 -keras==2.2.4 -pillow==5.3.0 - +pillow>=5.3,<6 +scipy>=1.3,<2 +tensorflow>=2,<3 +tqdm>=4,<5 diff --git a/train.py b/train.py index d84b2af..397ce53 100644 --- a/train.py +++ b/train.py @@ -42,11 +42,13 @@ import json import sys import os +from tqdm import tqdm from tensorflow.keras.preprocessing.image import ImageDataGenerator from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dropout, Flatten, Dense from tensorflow.keras import applications +from tensorflow.keras.callbacks import LambdaCallback, CSVLogger pathname = os.path.dirname(sys.argv[0]) path = os.path.abspath(pathname) @@ -111,11 +113,18 @@ def train_top_model(): model.compile(optimizer='rmsprop', loss='binary_crossentropy', metrics=['accuracy']) - history = model.fit(train_data, train_labels, - epochs=epochs, - batch_size=batch_size, - validation_data=(validation_data, validation_labels)) - json.dump(history.history, open("metrics.json", 'w')) + with tqdm(total=epochs, unit='epoch') as t: + def progress_epoch(_, logs=None): + if logs: + t.set_postfix(logs, refresh=False) + t.update() + model.fit(train_data, train_labels, + epochs=epochs, + batch_size=batch_size, + validation_data=(validation_data, validation_labels), + verbose=0, + callbacks=[LambdaCallback(on_epoch_end=progress_epoch), + CSVLogger("metrics.csv")]) model.save_weights(top_model_weights_path)