【发布时间】:2018-07-28 06:31:25
【问题描述】:
我是 keras 的新手,并且一直在尝试各种东西,例如 BatchNormalization,但它根本不起作用。当 BatchNormalization 行被注释掉时,它会收敛到大约 0.04 损失或更好,但它会收敛到 0.71 并卡在那里,我不确定出了什么问题。
from sklearn import preprocessing
from sklearn.datasets import load_boston
from keras.models import Model
from keras.layers import Input, Dense
from keras.layers.normalization import BatchNormalization
import keras.optimizers
boston = load_boston()
x = boston.data
y = boston.target
normx = preprocessing.scale(x)
normy = preprocessing.scale(y)
# doesnt construct output layer
def layer_looper(inputs, number_of_loops, neurons):
inputs_copy = inputs
for i in range(number_of_loops):
inputs_copy = Dense(neurons, activation='relu')(inputs_copy)
inputs_copy = BatchNormalization()(inputs_copy)
return inputs_copy
inputs = Input(shape = (13,))
x = layer_looper(inputs, 40, 20)
predictions = Dense(1, activation='linear')(x)
model = Model(inputs=inputs, outputs=predictions)
opti = keras.optimizers.Adam(lr=0.0001)
model.compile(loss='mean_absolute_error', optimizer=opti, metrics=['acc'])
print(model.summary())
model.fit(normx, normy, epochs=5000, verbose=2, batch_size=128)
我尝试过尝试使用批量大小和优化器,但它似乎不是很有效。我是不是做错了什么?
【问题讨论】: