上海专业制作电子商务网站,wordpress获得当前分类所有子分类,邯郸今天最新通告,有什么字体设计网站好*分类是离散的#xff0c;回归是连续的
下载数据集
trainTrue#xff1a;下载训练集 逻辑斯蒂函数保证输出值在0-1之间
能够把实数值映射到0-1之间 导函数类似正态分布 其他饱和函数sigmoid functions
循环神经网络经常使用tanh函数 与线性回归区别
塞戈马无参数#x…*分类是离散的回归是连续的
下载数据集
trainTrue下载训练集 逻辑斯蒂函数保证输出值在0-1之间
能够把实数值映射到0-1之间 导函数类似正态分布 其他饱和函数sigmoid functions
循环神经网络经常使用tanh函数 与线性回归区别
塞戈马无参数构造函数无区别 更改损失函数MSE-BCE损失越小越好
分布的差异KL散度cross-entropy交叉熵
二分类的交叉熵 # -*- coding: utf-8 -*-
# Time : 2023-07-18 20:26
# Author : yuer
# FileName: exercise06.py
# Software: PyCharm
import matplotlib.pyplot as plt
import numpy as np
import torch# 数据集
x_data torch.Tensor([[1.0], [2.0], [3.0]])
y_data torch.Tensor([[0], [0], [1]])# 先根据x算出y值再根据y的范围找到分类class logisticRegressionModel(torch.nn.Module):def __init__(self):super(logisticRegressionModel, self).__init__()self.linear torch.nn.Linear(1, 1)# x_data,y_data都是一维与线性回归相比构造没有函数区别def forward(self, x):y_pred torch.sigmoid(self.linear(x))return y_predmodel logisticRegressionModel()# 默认情况size_averageTrue 即loss是1/n倍的False设置loss不除n
criterion torch.nn.BCELoss(size_averageFalse)
optimizer torch.optim.SGD(model.parameters(), lr0.01)
# SGD梯度下降优化方法 初始化wb都为0for epoch in range(1000):y_pred model(x_data)loss criterion(y_pred, y_data)print(epoch, loss.item())optimizer.zero_grad() # 清空梯度loss.backward() # 反馈算梯度并更新optimizer.step() # 更新w,b的值print(w, model.linear.weight.item())
print(b, model.linear.bias.item())x_test torch.Tensor([[4.0]])
y_test model(x_test)
print(y_pred, y_test.data)x np.linspace(0, 10, 200) # 在线性空间中以均匀步长生成数字序列;在0-10之间的200个点
x_t torch.Tensor(x).view((200, 1)) # 转换为200*1的矩阵
y_t model(x_t) # 利用模型训练
y y_t.data.numpy()
plt.plot(x, y)
plt.plot([0, 10], [0.5, 0.5], cr)
plt.xlabel(Hours)
plt.ylabel(Probability of Pass)
plt.grid()
plt.show()