【发布时间】:2019-08-20 23:26:06
【问题描述】:
我创建了一个循环来模拟神经网络的训练,我发现最初分配为 Int 的权重变成了 Series 很奇怪
样本数据(注意:创建相同行的多个样本以使其最多 100 个观察值):
# x1 x2 y
data = [ [3.5, 1.5, 1],
[2.0, 1.0, 0],
[4.0, 1.5, 1],
[3.0, 1.0, 0],
[3.5, 0.5, 1],
[2.0, 0.5, 0],
[5.5, 1.0, 1],
[1.0, 1.0, 0] ]
#[4.5, 1.0, 1]
data = pd.DataFrame(data, columns = ["Length", "Width", "Class"])
data
分配变量:
w1 = np.random.randn()
w2 = np.random.randn()
b = np.random.randn()
print(w1)
print(w2)
print(b)
训练循环:
learning_rate = 0.2
#costs = []
for x in range(50000):
z = train_data["Length"] * w1 + train_data["Width"] + b
preds = sigmoid(z)
target = train_data["Class"]
cost = np.square(preds - target)
derivcost_pred = 2 * (preds - target)
derivpred_sigp = sigmoid_p(z)
dcost_dz = derivcost_pred * derivpred_sigp
dz_dw1 = train_data["Length"]
dz_dw2 = train_data["Width"]
dz_db = 1
dcost_dw1 = dcost_dz * dz_dw1
dcost_dw2 = dcost_dz * dz_dw2
dcost_db = dcost_dz * dz_db
w1 = w1 - learning_rate * dcost_dw1
w2 = w2 - learning_rate * dcost_dw2
b = b - learning_rate * dcost_db
我的问题是如何获得最后训练的 w1、w2、b 值? 另外,如果我要使用系列,我怎样才能访问最后一个值?
最后,让我知道如果循环有问题
【问题讨论】:
-
您好,请为 .如果您在问题中包含一些示例数据,则更有可能得到答复。谢谢。
-
还可以更详细地解释第二个问题:另外,如果我要使用系列,我怎样才能访问最后一个值??例如。
series你在这里指的是什么? -
@edesz - 感谢您的反馈,我现在更新了帖子以提供示例数据
-
我现在有点明白了,它有点输出每行使用的权重……因为我提到我创建了 100 个克隆……看来每一行都有自己的权重……这不是我所期望的,因为我想让 w1,w2,b 值用作单个感知器的参数
-
好的,我回答了您的第一个问题(假设您要检索与最高
x值(x=5000-1))对应的w1、w2、b值。
标签: python python-3.x pandas neural-network jupyter-notebook