#I just added a function for custom data preprocessing, you can use it as: minmax_scaler = sklearn.preprocessing.MinMaxScaler(....) def my_func(X): X = minmax_scaler.inverse_transform(X) return X dprep = tflearn.DataPreprocessing() dprep.add_custom_preprocessing(my_func) input_layer = tflearn.input_data(shape=[...], data_preprocessing=dprep)
我自己的应用:
def my_func(X): X = X/255. return X def get_model(width, height, classes=40): # TODO, modify model # Real-time data preprocessing img_prep = tflearn.ImagePreprocessing() #img_prep.add_featurewise_zero_center(per_channel=True) #img_prep.add_featurewise_stdnorm() img_prep.add_custom_preprocessing(my_func) network = input_data(shape=[None, width, height, 1], data_preprocessing=img_prep) # if RGB, 224,224,3 #network = input_data(shape=[None, width, height, 1]) network = conv_2d(network, 32, 3, activation='relu') network = max_pool_2d(network, 2) network = conv_2d(network, 64, 3, activation='relu') network = conv_2d(network, 64, 3, activation='relu') network = max_pool_2d(network, 2) network = fully_connected(network, 512, activation='relu') network = dropout(network, 0.5) network = fully_connected(network, classes, activation='softmax') network = regression(network, optimizer='adam', loss='categorical_crossentropy', learning_rate=0.001) model = tflearn.DNN(network, tensorboard_verbose=0) return model