#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