Package: modelai
ModelZooA Scaffold to help you build Deep-learning Model much more easily, implemented with TensorFlow 2.0.InstallationYou can install this package easily with pip:pip3 install model-zooUsageLet's implement a linear-regression model quickly.Here we use boston_housing dataset as example.Define a linear model in models folder, namedmodel.pyand import its Class from__init__.py:frommodel_zooimportModelimporttensorflowastfclassHousePricePredictionModel(Model):definputs(self):returntf.keras.Input(shape=(13))defoutputs(self,inputs):returntf.keras.layers.Dense(1)(inputs)Then define a trainer like this, namedtrain.py:frommodel_zooimportflags,datasets,preprocessfrommodel_zoo.trainerimportBaseTrainerflags.define('epochs',100)flags.define('model_class_name','HousePricePredictionModel')flags.define('checkpoint_name','model.ckpt')classTrainer(BaseTrainer):defdata(self):(x_train,y_train),(x_eval,y_eval)=datasets.boston_housing.load_data()x_train,x_eval=preprocess.standardize(x_train,x_eval)train_data,eval_data=(x_train,y_train),(x_eval,y_eval)returntrain_data,eval_dataif__name__=='__main__':Trainer().run()Now, we've finished this model!Next we can run this model using this cmd:python3 train.pyOutputs like this:Epoch 1/100
 1/13 [=>............................] - ETA: 0s - loss: 816.1798
13/13 [==============================] - 0s 4ms/step - loss: 457.9925 - val_loss: 343.2489

Epoch 2/100
 1/13 [=>............................] - ETA: 0s - loss: 361.5632
13/13 [==============================] - 0s 3ms/step - loss: 274.7090 - val_loss: 206.7015
Epoch 00002: saving model to checkpoints/model-2.ckpt

Epoch 3/100
 1/13 [=>............................] - ETA: 0s - loss: 163.5308
13/13 [==============================] - 0s 3ms/step - loss: 172.4033 - val_loss: 128.0830

Epoch 4/100
 1/13 [=>............................] - ETA: 0s - loss: 115.4743
13/13 [==============================] - 0s 3ms/step - loss: 112.6434 - val_loss: 85.0848
Epoch 00004: saving model to checkpoints/model-4.ckpt

Epoch 5/100
 1/13 [=>............................] - ETA: 0s - loss: 149.8252
13/13 [==============================] - 0s 3ms/step - loss: 77.0281 - val_loss: 57.9716
....

Epoch 42/100
 7/13 [===============>..............] - ETA: 0s - loss: 20.5911
13/13 [==============================] - 0s 8ms/step - loss: 22.4666 - val_loss: 23.7161
Epoch 00042: saving model to checkpoints/model-42.ckptIt runs only 42 epochs and stopped early, because the framework auto enabled early stop mechanism and there are no more good evaluation results for 20 epochs.When finished, we can find two folders generated namedcheckpointsandevents.Go toeventsand run TensorBoard:cd events
tensorboard --logdir=.TensorBoard like this:There are training and validation loss in the graph.And also we can find checkpoints incheckpointsdir.It saved the best model namedmodel.ckptaccording to eval score, and it also saved checkpoints every 2 epochs.Next we can predict using existing checkpoints, defineinfer.pylike this:frommodel_zooimportflags,datasets,preprocessfrommodel_zoo.infererimportBaseInfererflags.define('checkpoint_name','model-best.ckpt')classInferer(BaseInferer):defdata(self):(x_train,y_train),(x_test,y_test)=datasets.boston_housing.load_data()_,x_test=preprocess.standardize(x_train,x_test)returnx_testif__name__=='__main__':result=Inferer().run()print(result)Now we've restored the specified modelmodel-best.ckptand prepared test data, outputs like this:[[9.637125][21.368305][20.898445][33.832504][25.756516][21.264557][29.069794][24.968184]...[36.027283][39.06852][25.728745][41.62165][34.340042][24.821484]]OK, we've finished restoring and predicting. Just so convenient.Hereis the code.MoreIf you want to find more models, just seeModelZoo.