Я создал цикл для имитации обучения для нейронной сети, и мне показалось странным, что веса, которые были впервые назначены как Int, превратились в серию
Пример данных (Примечание: создано несколько выборок одного и того жестрок, чтобы сделать до 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, которое было обучено?Кроме того, если я буду использовать серии, как я могу получить доступ к последнему значению вместо этого?
Наконец, дайте мне знать, если что-то не так с циклом