深度学习逻辑回归问题

问题遇到的现象和发生背景

loss值不变,数据训练后分类分界线和图像不符

img

img

问题相关代码,请勿粘贴截图

开始训练

for epoch in range(10000):
if torch.cuda.is_available():
x_data = Variable(x).cuda()
y_data = Variable(y).cuda()
else:
x_data = Variable(x)
y_data = Variable(y)
out = logistic_model(x_data)
loss = loss_fn(out[:,0], y_data.squeeze())

mask = out.ge(0.5).float()  # 以0.5为阈值进行分类
correct = (mask == y_data).sum()  # 计算正确预测的样本个数
acc = correct.item() / x_data.size(0)  # 计算精度
optimizer.zero_grad()
loss.backward()
optimizer.step()
# 每隔20轮打印一下当前的误差和精度
if (epoch + 1) % 200 == 0:
    print('*'*10)
    print('epoch {}'.format(epoch+1)) # 训练轮数
    print('loss is {:.4f}'.format(loss))  # 误差
    #print('acc is {:.4f}'.format(acc))  # 精度

logistic_model.eval()
w0, w1 = logistic_model.lr.weight[0]
w0 = float(w0.item())
w1 = float(w1.item())
b = float(logistic_model.lr.bias.item())
plot_x = np.arange(140,230, 10)
plot_y =(-w0 * plot_x - b) / w1
plt.scatter(x.data.numpy()[:, 0], x.data.numpy()[:, 1], c=y.data.numpy(), s=100, lw=0, cmap='RdYlGn')
plt.plot(plot_x, plot_y)
plt.show()

运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果