作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
a
和 b
a
和b
的乘积X_train
示例: array([[ 6220, 15403],
[ 3197, 8054],
[ 1723, 3711],
...,
[ 9500, 14979],
[ 2642, 16547],
[15169, 19332]], dtype=int64)
Y_train
示例: array([ 95806660, 25748638, 6394053, ..., 142300500, 43717174,
293247108], dtype=int64)
def get_model():
model = Sequential()
model.add(Dense(20, input_shape=(2,), kernel_initializer='normal', activation='linear'))
model.add(LeakyReLU(alpha=.001))
model.add(Dense(20, kernel_initializer='normal', activation='linear'))
model.add(LeakyReLU(alpha=.001))
model.add(Dense(20, kernel_initializer='normal', activation='linear'))
model.add(LeakyReLU(alpha=.001))
model.add(Dense(20, kernel_initializer='normal', activation='linear'))
model.add(LeakyReLU(alpha=.001))
model.add(Dense(1, activation=None))
model.compile(loss='mean_squared_error', optimizer='adam')
return model
estimator = KerasRegressor(build_fn=get_model, epochs=20, batch_size=20, verbose=1)
estimator.fit(np.array(X_train), np.array(Y_train))
它似乎在几个时期后就收敛了,伴随着巨大的训练损失:
Epoch 1/20
8000/8000 [==============================] - 3s 378us/step - loss: 8970757661335224.0000
Epoch 2/20
8000/8000 [==============================] - 1s 187us/step - loss: 1368236980395048.7500
Epoch 3/20
8000/8000 [==============================] - 2s 189us/step - loss: 731455474934743.0000
Epoch 4/20
8000/8000 [==============================] - 2s 200us/step - loss: 731256021644738.6250
Epoch 5/20
8000/8000 [==============================] - 2s 209us/step - loss: 729734634673274.8750
Epoch 6/20
8000/8000 [==============================] - 2s 215us/step - loss: 730761901553746.0000
Epoch 7/20
8000/8000 [==============================] - 2s 224us/step - loss: 729841294691532.7500
Epoch 8/20
8000/8000 [==============================] - 2s 235us/step - loss: 728911536487137.2500
Epoch 9/20
8000/8000 [==============================] - 2s 229us/step - loss: 731467433524592.6250
Epoch 10/20
所有这些行动都不会改善损失。使用较少的层会使结果变得更糟。
如果有人想尝试一下 – 我创建了一个(IPython/Google Colab)笔记本 here .
我现在也尝试过:
glorot_normal
初始化 → 无显着变化sc.fit_transform(dataset)
使用 sklearn.preprocessing.StandardScaler
进行归一化,并使用 sc.inverse_transform(result)
进行推理 → 改进自~ 7.3e14 至 ~ 2.0e11math.log
进行标准化(这使得 c = a * b
为 log(c) = log(a) + log(b)
code>,使用 exp(predicted)
进行推理 → 看起来更好 → 1.02e9
,但在乘法这样的简单任务上仍然远非准确最佳答案
对数据(输入和输出)进行标准化,使其均值和单位方差为零。
第二步,将初始化程序更改为 glorot_normal
之类的内容。
关于python - 神经网络不学习乘法(玩具示例),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50260459/
我是一名优秀的程序员,十分优秀!