$ pip install pureml
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
from pureml.decorators import dataset
@dataset("petdata:dev")
def load_data(img_folder = "PetImages"):
image_size = (180, 180)
batch_size = 16
train_ds,
val_ds = tf.keras.utils.img_dataset_from_directory(
img_folder,
validation_split=0.2,
subset="both",
seed=1337,
image_size=image_size,
batch_size=batch_size,
)
data_augmentation = keras.Sequential(
[layers.RandomFlip("horizontal"),
layers.RandomRotation(0.1),]
)
train_ds = train_ds.map(
lambda img, label: (data_augmentation(img), label),
num_parallel_calls=tf.data.AUTOTUNE,
)
train_ds = train_ds.prefetch(tf.data.AUTOTUNE)
val_ds = val_ds.prefetch(tf.data.AUTOTUNE)
return train_ds, val_ds
import pureml
pureml.dataset.validation(“petdata:dev:v1”)
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
from pureml.decorators import dataset, validation
@validation
@dataset("petdata:dev")
def load_data(img_folder = "PetImages"):
image_size = (180, 180)
batch_size = 16
train_ds,
val_ds = tf.keras.utils.img_dataset_from_directory(
img_folder,
validation_split=0.2,
subset="both",
seed=1337,
image_size=image_size,
batch_size=batch_size,
)
data_augmentation = keras.Sequential(
[
layers.RandomFlip("horizontal"),
layers.RandomRotation(0.1),
]
)
train_ds = train_ds.map(
lambda img, label: (data_augmentation(img), label),
num_parallel_calls=tf.data.AUTOTUNE,
)
train_ds = train_ds.prefetch(tf.data.AUTOTUNE)
val_ds = val_ds.prefetch(tf.data.AUTOTUNE)
return train_ds, val_ds
from pureml import BasePredictor
import pureml
import tensorflow as tf
from tensorflow import keras
class Predictor(BasePredictor):
model_details = ['pet_classifier:dev:latest']
input={'type': 'image'},
output={'type': 'numpy ndarray' }
def load_models(self):
self.model = pureml.model.fetch(self.model_details)
def predict(self, pred_img):
pred_img = keras.preprocessing.image.img_to_array(
pred_img
)
pred_img = tf.expand_dims(pred_img, 0)
predictions = self.model.predict(pred_img)
predictions = float(predictions[0])
return predictions
import pureml
pureml.model.evaluate("pet_classifier:dev:v1", "petdata:dev:v1")
pureml.docker.create(“pet_classifier:dev:v1”)
$ pureml deploy pet_classifier:dev:v1