def test_model_set_model_method(): model = Model() model.set_model(pytorch_model) model.compile(optimizer=Adam(), loss_function=MSELoss()) with pytest.raises(ValueError): model = Model() model.set_model(None)
def test_model(): with pytest.raises(ValueError): Model(force_cpu="test") with pytest.raises(ValueError): Model(training_device="test") with pytest.raises(ValueError): Model(random_state="test") training_device = device("cpu") Model(force_cpu=False, training_device=training_device, random_state=1969) Model(force_cpu=False, training_device=None, random_state=1969) Model(force_cpu=True, training_device=None, random_state=1969)
def test_model_fit_method(): model = Model() model.set_model(pytorch_model) model.compile(optimizer=Adam(), loss_function=MSELoss()) logger = TrainLogger("ignore/") model.fit( train_data=(X_train, y_train), validation_data=(X_validation, y_validation), epochs=1, batch_size=32, ) model.fit( train_data=(X_train, y_train), validation_data=(X_validation, y_validation), epochs=1, batch_size=32, callbacks=[logger], ) train_gen = train_generator() validation_gen = train_generator() model.fit( train_data=train_gen, validation_data=validation_gen, epochs=1, batch_size=4, steps_per_epoch=5, validation_steps=5, ) model.fit( train_data=train_gen, validation_data=validation_gen, epochs=1, batch_size=4, steps_per_epoch=5, validation_steps=5, callbacks=[logger], ) with pytest.raises(ValueError): model.fit( train_data=(X_train, y_train), validation_data=(X_validation, y_validation), epochs=1, batch_size=1024, ) with pytest.raises(ValueError): model.fit( train_data=(X_train, y_train[:-1]), validation_data=(X_validation, y_validation), epochs=-20, batch_size=1024, ) with pytest.raises(ValueError): model.fit( train_data=(X_train, y_train[:-1]), validation_data=(X_validation, y_validation), epochs=1, batch_size=-10, ) with pytest.raises(ValueError): model.fit( train_data=(X_train, y_train[:-1]), validation_data=(X_validation, y_validation), epochs=1, batch_size=32, callbacks="test", ) with pytest.raises(ValueError): train_gen = train_generator() validation_gen = train_generator() model.fit( train_data=train_gen, validation_data=validation_gen, epochs=1, batch_size=32, steps_per_epoch=-123, validation_steps=5, ) with pytest.raises(ValueError): train_gen = train_generator() validation_gen = train_generator() model.fit( train_data=train_gen, validation_data=validation_gen, epochs=1, batch_size=32, steps_per_epoch="test", validation_steps=5, ) with pytest.raises(ValueError): train_gen = train_generator() validation_gen = train_generator() model.fit( train_data=train_gen, validation_data=validation_gen, epochs=1, batch_size=32, steps_per_epoch=5, validation_steps=-23, ) with pytest.raises(ValueError): train_gen = train_generator() validation_gen = train_generator() model.fit( train_data=train_gen, validation_data=validation_gen, epochs=1, batch_size=32, steps_per_epoch=5, validation_steps="asd", )
def test_models_compile_method(): model = Model() model.set_model(pytorch_model) model.compile(optimizer=Adam(), loss_function=MSELoss()) with pytest.raises(ValueError): model = Model() model.set_model(pytorch_model) model.compile(optimizer=Adam(), loss_function=MSELoss(), metrics=["test"]) with pytest.raises(ValueError): model = Model() model.set_model(pytorch_model) model.compile(optimizer=Adam(), loss_function=MSELoss(), metrics="test")
def test_model_load_for_inference_method(): model = Model() model.set_model(pytorch_model) model.compile(optimizer=Adam(), loss_function=MSELoss()) with pytest.raises(ValueError): model.load_for_inference(123) with pytest.raises(ValueError): model.load_for_inference("") model.load_for_inference("ignore/test.npy") with pytest.raises(ValueError): model = Model() model.load_for_inference("ignore/test.npy")
def test_model_summary_method(): model = Model() model.set_model(pytorch_model) model.compile(optimizer=Adam(), loss_function=MSELoss()) model.summary() with pytest.raises(Exception): model = Model() model.summary()
def test_model_evaluate_method(): model = Model() model.set_model(pytorch_model) model.compile(optimizer=Adam(), loss_function=MSELoss()) TrainLogger("ignore/") test_gen = train_generator() model.fit( train_data=(X_train, y_train), validation_data=(X_validation, y_validation), epochs=1, batch_size=32, ) model.evaluate(test_data=(X_test, y_test)) model.evaluate(test_data=(X_test, y_test), batch_size=4) model.evaluate(test_data=test_gen, batch_size=4, tests_steps=4) with pytest.raises(ValueError): model.evaluate(test_data=(X_test, y_test), batch_size=400)
X_train = X[0:int(len(X)*train_data_size)] y_train = y[0:int(len(y)*train_data_size)] X_validation = X[int(len(X)*train_data_size):] y_validation = y[int(len(y)*train_data_size):] print("Size of Train data is", len(X_train)) print("Size of Validation data is ", len(X_validation)) print("Size of Test data is ", len(X_test)) # Making the model # Initializing the PyTorch model p_model = MNISTModel() # Initializing a NeuralPy model model = Model() # Converting the PyTorch model to NeuralPy model model.set_model(p_model) # Printing the summary of the model print(model.summary()) # Compiling the model model.compile(optimizer=Adam(), loss_function=CrossEntropyLoss(), metrics=["accuracy"]) # Training the model # Using the fit method history = model.fit(train_data=(X_train, y_train), test_data=(X_validation, y_validation), epochs=10, batch_size=32) # Evaluating the model