def test_unweighted(self): mape_obj = metrics.MeanAbsolutePercentageError() y_true = K.constant(((0, 1, 0, 1, 0), (0, 0, 1, 1, 1), (1, 1, 1, 1, 0), (0, 0, 0, 0, 1))) y_pred = K.constant(((0, 0, 1, 1, 0), (1, 1, 1, 1, 1), (0, 1, 0, 1, 0), (1, 1, 1, 1, 1))) result = mape_obj(y_true, y_pred) assert np.allclose(35e7, K.eval(result), atol=1e-5)
def test_weighted(self): mape_obj = metrics.MeanAbsolutePercentageError() y_true = K.constant(((0, 1, 0, 1, 0), (0, 0, 1, 1, 1), (1, 1, 1, 1, 0), (0, 0, 0, 0, 1))) y_pred = K.constant(((0, 0, 1, 1, 0), (1, 1, 1, 1, 1), (0, 1, 0, 1, 0), (1, 1, 1, 1, 1))) sample_weight = K.constant((1., 1.5, 2., 2.5)) result = mape_obj(y_true, y_pred, sample_weight=sample_weight) assert np.allclose(40e7, K.eval(result), atol=1e-5)
def test_config(self): mape_obj = metrics.MeanAbsolutePercentageError( name='my_mape', dtype='int32') assert mape_obj.name == 'my_mape' assert mape_obj.dtype == 'int32' # Check save and restore config mape_obj2 = metrics.MeanAbsolutePercentageError.from_config( mape_obj.get_config()) assert mape_obj2.name == 'my_mape' assert mape_obj2.dtype == 'int32'
def models(labelarr, imgarr): pretrainmodel = load_model( '/home/som/lab/seed-yzj/newpaper4/laboratory/model/labotary_nose_att.hdf5', compile=False) pretrainmodel.compile(optimizer=Adam(lr=1e-4), loss=losses.mean_squared_error, metrics=[ metrics.MeanAbsoluteError(), metrics.MeanAbsolutePercentageError(), metrics.RootMeanSquaredError(), pearson_r ]) x_train, x_test, y_train, y_test = train_test_split(imgarr, labelarr, test_size=0.4, random_state=3) testlen = x_test.shape[0] x_val = x_test[:int(testlen / 2)] y_val = y_test[:int(testlen / 2)] x_test = x_test[int(testlen / 2):] y_test = y_test[int(testlen / 2):] # input input = Input(shape=(x_train.shape[1], x_train.shape[2], x_train.shape[3])) x = ZeroPadding2D((3, 3))(input) x = Conv2d_BN(x, nb_filter=64, kernel_size=(7, 7), strides=(2, 2), padding='valid') x = MaxPooling2D(pool_size=(3, 3), strides=(2, 2), padding='same')(x) # (56,56,64) x = Conv_Block(x, nb_filter=64, kernel_size=(3, 3)) x = Conv_Block(x, nb_filter=64, kernel_size=(3, 3)) x = Conv_Block(x, nb_filter=64, kernel_size=(3, 3)) # (28,28,128) x = Conv_Block(x, nb_filter=128, kernel_size=(3, 3), strides=(2, 2), with_conv_shortcut=True) x = Conv_Block(x, nb_filter=128, kernel_size=(3, 3)) x = Conv_Block(x, nb_filter=128, kernel_size=(3, 3)) x = Conv_Block(x, nb_filter=128, kernel_size=(3, 3)) # (14,14,256) x = Conv_Block(x, nb_filter=256, kernel_size=(3, 3), strides=(2, 2), with_conv_shortcut=True) x = Conv_Block(x, nb_filter=256, kernel_size=(3, 3)) x = Conv_Block(x, nb_filter=256, kernel_size=(3, 3)) x = Conv_Block(x, nb_filter=256, kernel_size=(3, 3)) x = Conv_Block(x, nb_filter=256, kernel_size=(3, 3)) x = Conv_Block(x, nb_filter=256, kernel_size=(3, 3)) # (7,7,512) x = Conv_Block(x, nb_filter=512, kernel_size=(3, 3), strides=(2, 2), with_conv_shortcut=True) x = Conv_Block(x, nb_filter=512, kernel_size=(3, 3)) x = Conv_Block(x, nb_filter=512, kernel_size=(3, 3)) x = AveragePooling2D(pool_size=(3, 3))(x) x = Flatten()(x) fc6 = Dense(units=labelarr.shape[1], weights=pretrainmodel.get_layer('dense_27').get_weights(), trainable=False)(x) model = Model(input=input, output=fc6) model.summary() # model = multi_gpu_model(model, gpus=4) model.compile(optimizer=Adam(lr=1e-4), loss=losses.mean_squared_error, metrics=[ metrics.MeanAbsoluteError(), metrics.MeanAbsolutePercentageError(), metrics.RootMeanSquaredError(), pearson_r ]) model_checkpoint = ModelCheckpoint( '/home/som/lab/seed-yzj/newpaper4/laboratory/model/labotary_left_att.hdf5', monitor='val_loss', verbose=1, save_best_only=True, save_weights_only=False) reduce_lr = ReduceLROnPlateau(monitor='val_loss', patience=15, mode='auto', factor=0.7, min_lr=1e-6) # csv_logger = CSVLogger('training.csv') model.fit(x_train, y_train, batch_size=32, epochs=200, verbose=1, callbacks=[model_checkpoint, reduce_lr], validation_data=(x_val, y_val)) return 0
def __init__(self): self.nosearr = np.load(self.nosearrpath) self.nosefrearr = np.load(self.nosefrearrpath) self.nosemodel = load_model(self.nosemodelpath, compile=False) self.nosemodel.compile(optimizer=Adam(lr=1e-4), loss=losses.mean_squared_error, metrics=[ metrics.MeanAbsoluteError(), metrics.MeanAbsolutePercentageError(), metrics.RootMeanSquaredError(), pearson_r ]) # self.nosemodel.summary() self.foreheadarr = np.load(self.foreheadarrpath) self.foreheadfrearr = np.load(self.foreheadfrearrpath) self.foreheadmodel = load_model(self.foreheadmodelpath, compile=False) self.foreheadmodel.compile(optimizer=Adam(lr=1e-4), loss=losses.mean_squared_error, metrics=[ metrics.MeanAbsoluteError(), metrics.MeanAbsolutePercentageError(), metrics.RootMeanSquaredError(), pearson_r ]) # self.foreheadmodel.summary() self.leftarr = np.load(self.leftarrpath) self.leftfrearr = np.load(self.leftfrearrpath) self.leftmodel = load_model(self.leftmodelpath, compile=False) self.leftmodel.compile(optimizer=Adam(lr=1e-4), loss=losses.mean_squared_error, metrics=[ metrics.MeanAbsoluteError(), metrics.MeanAbsolutePercentageError(), metrics.RootMeanSquaredError(), pearson_r ]) self.rightarr = np.load(self.rightarrpath) self.rightfrearr = np.load(self.rightfrearrpath) self.rightmodel = load_model(self.rightmodelpath, compile=False) self.rightmodel.compile(optimizer=Adam(lr=1e-4), loss=losses.mean_squared_error, metrics=[ metrics.MeanAbsoluteError(), metrics.MeanAbsolutePercentageError(), metrics.RootMeanSquaredError(), pearson_r ]) self.thermalnosearr = np.load(self.thermalnosearrpath) self.thermalnosefrearr = np.load(self.thermalnosefrearrpath) self.thermalnosemodel = load_model(self.thermalnosemodelpath, compile=False) self.thermalnosemodel.compile( optimizer=Adam(lr=1e-4), loss=losses.mean_squared_error, metrics=[ metrics.MeanAbsoluteError(), metrics.MeanAbsolutePercentageError(), metrics.RootMeanSquaredError(), pearson_r ]) self.thermalforeheadarr = np.load(self.thermalforeheadarrpath) self.thermalforeheadfrearr = np.load(self.thermalforeheadfrearrpath) self.thermalforeheadmodel = load_model(self.thermalforeheadmodelpath, compile=False) self.thermalforeheadmodel.compile( optimizer=Adam(lr=1e-4), loss=losses.mean_squared_error, metrics=[ metrics.MeanAbsoluteError(), metrics.MeanAbsolutePercentageError(), metrics.RootMeanSquaredError(), pearson_r ]) self.thermalleftarr = np.load(self.thermalleftarrpath) self.thermalleftfrearr = np.load(self.thermalleftfrearrpath) self.thermalleftmodel = load_model(self.thermalleftmodelpath, compile=False) self.thermalleftmodel.compile( optimizer=Adam(lr=1e-4), loss=losses.mean_squared_error, metrics=[ metrics.MeanAbsoluteError(), metrics.MeanAbsolutePercentageError(), metrics.RootMeanSquaredError(), pearson_r ]) self.thermalrightarr = np.load(self.thermalrightarrpath) self.thermalrightfrearr = np.load(self.thermalrightfrearrpath) self.thermalrightmodel = load_model(self.thermalrightmodelpath, compile=False) self.thermalrightmodel.compile( optimizer=Adam(lr=1e-4), loss=losses.mean_squared_error, metrics=[ metrics.MeanAbsoluteError(), metrics.MeanAbsolutePercentageError(), metrics.RootMeanSquaredError(), pearson_r ])