Example #1
0
## считывание значений для валидации (тратит много времени, потому используется редко)
# sheet = wb['obs_valid']
# for i in range(size):
#     for j in range(size):  # число вложенных циклов долно быть равно dim !!
#         input_true[i * size + j][0] = \
#             int(sheet.cell(column=1, row=1 + i * size + j).value)
#         input_true[i * size + j][1] = \
#             int(sheet.cell(column=2, row=1 + i * size + j).value)
#         output_true[i * size + j][0] = \
#             int(sheet.cell(column=3, row=1 + i * size + j).value)

wb.close()

#
#
net1 = NNet.Net(dim, device, 3, 15, "sigm")
net2 = NNet.copy_net(net1)
epoch_amount = 10000
optimizer1 = t.optim.SGD(net1.parameters(), lr=0.05)
optimizer2 = t.optim.SGD(net2.parameters(), lr=0.05)
loss = t.nn.MSELoss()


def learning(net, optimizer):
    for epoch_number in range(epoch_amount):
        optimizer.zero_grad()
        #
        prediction = net.forward(input_data)
        loss_val = loss(prediction, output_data)
        loss_val.backward()
        optimizer.step()