DL中的一个常见任务是将输入样本标准化为零均值和单位方差。可以使用以下代码“手动”执行规范化:
mean = np.mean(X, axis = 0)
std = np.std(X, axis = 0)
X = [(x - mean)/std for x in X]
然而,除了训练的Keras模型之外,还必须保持平均值和标准值,以使测试数据标准化。由于mean和std是可学习的参数,也许Keras可以学习它们吗?像这样的东西:
m = Sequential()
m.add(SomeKerasLayzerForNormalizing(...))
m.add(Conv2D(20, (5, 5), input_shape = (21, 100, 3), padding = 'valid'))
... rest of network
m.add(Dense(1, activation = 'sigmoid'))
我希望你明白我的成就。
也许您可以使用sklearn.preprocessing.StandardScaler
来扩展数据,这个对象允许您将缩放参数保存在对象中,然后您可以将Mixin类型输入用于模型,让我们说:
这是一个链接https://www.pyimagesearch.com/2019/02/04/keras-multiple-inputs-and-mixed-data/