当前位置: 首页 > news >正文

网站副标题wordpresswordpress做个米表

网站副标题wordpress,wordpress做个米表,运营推广策略有哪些,wordpress p3上一次中使用pytorch来进行了线性预测,线性预测输出的都是连续值,有时候我们并不需要使用输出具体的数值,我们只需要使用概率来判断一个时间是否发生,这时候我们就需要使用pytorch来进行概率预测,通过概率来实现对结果…

上一次中使用pytorch来进行了线性预测,线性预测输出的都是连续值,有时候我们并不需要使用输出具体的数值,我们只需要使用概率来判断一个时间是否发生,这时候我们就需要使用pytorch来进行概率预测,通过概率来实现对结果的判断;

(1)产生数据

假设这里有一些数据表明的是一个学生的平均每天的学习时间和最后期末考试是否通过的数据,我们可以使用这样的生成数据代码模拟这些数据

def creat_data(seed = 42, sample = 100):np.random.seed(seed)study_hour = 20 * np.random.random(sample).reshape(-1, 1)passed_hour = 6logits = (study_hour - passed_hour) * 0.5pro_pass = 1 / (1 + np.exp(-logits))     # 计算概率,其中以passed_hour为界作为50%的阈值passed = np.random.binomial(1, pro_pass)    # 将概率作伯努利实验,模拟是否通过return study_hour, passed

这段代码首先使用np.random.random生成100个0-1的数据,乘以20表示平均一天的学习时间,使用reshape为了后面便于转换为tensor,这里使用了一个函数将学习时间映射到0-1区间内,可以粗略地将这个当成是否通过考试的概率,随后使用np.random.binomial来将是否通过考试概率进行伯努利实验,最后返回学习时间和是否通过考试,通过为1,不通过为0;

(2)数据处理

将生成的数据转为pytorch运算数据tensor

study_hours_data, passed_data = creat_data()
study_hours = torch.tensor(study_hours_data, dtype=torch.float32)
passed = torch.tensor(passed_data, dtype=torch.float32)

(3)构建模型

相对于线性模型,概率模型只有一点不同,那就是使用sigmoid将一个线性变换后的数据通过非线性变换映射到0-1之间,这个映射和构建数据时使用的函数一样

class sigmoid_model(nn.Module):def __init__(self):super(sigmoid_model, self).__init__()self.linear1 = nn.Linear(1, 1)self.sigmoid = nn.Sigmoid()def forward(self, x):x = self.sigmoid(self.linear1(x))return x

(4)进行训练

训练也和之前的线性模型基本一样,无非就是前馈,反馈和更新

update_times = 1000
total_loss = [0.0 for i in range(update_times)]
model = sigmoid_model()
criterion = nn.BCELoss()
optimizer = optim.SGD(model.parameters(), lr=0.1)
for i in range(update_times):sigle_loss = 0.0passed_pre = model(study_hours)loss = criterion(passed_pre, passed)total_loss[i] = loss.item()if (i % 10 == 0):print(f"{i}: {loss.item()}")optimizer.zero_grad()loss.backward()optimizer.step()

这里和线性模型唯一的不同就是损失函数的选择不同,通过前面的思维导图也可以看到,这里的损失函数选择的时二元交叉熵BCELoss

(5)模型预测

可以将训练好的模型进行预测,随便生成0-20的整数进行预测

model.eval()
with torch.no_grad():test_hour = torch.tensor([[i] for i in range(0, 20)], dtype=torch.float32)test_pre = model(test_hour)print(test_pre)fig, axs = plt.subplots(1, 2)
axs[0].plot(total_loss)
axs[1].plot(test_hour, test_pre)
axs[1].axvline(x=6, c='r', linestyle='--')
axs[1].axhline(y=0.5, c='r', linestyle='--')
axs[1].scatter(study_hours_data, passed_data)plt.show()

最终损失函数和预测结果如下

从最终结果中可以看出,模型预测的50%概率值在6附近,表示这个训练还是成功的,通过损失值也可以看出,最后损失值稳定;

如果我们减小一下优化器的学习率为0.01,输出如下:

可以看到损失函数在最后并没有收敛,而且最后预测的结果和理想结果也有一些差异,这时候我们可以调高一下学习率或者增加学习次数以让训练收敛

http://www.dtcms.com/a/574410.html

相关文章:

  • 开淘宝店怎么做充值网站杭州巴顿品牌设计
  • 北京市城乡建设协会官方网站开发网站如何选需要
  • VASP 教程:使用 VASP 进行机器学习力场训练
  • 受限长度路径搜索算法
  • H265 vs AV1 vs H266 rdoq对比
  • 在Linux服务器上安装CVAT (Docker 28.5.1)
  • 四川学校网站建设农业公司网站建设
  • 网站建设报价购物凡科建站提示网站建设中
  • 基于STM32的多模态智能门锁系统设计与实现
  • 淮北网站建设如何提高 网站的点击量
  • OpenAI Agent 工具全面开发者指南——从 RAG 到 Computer Use —— 深入解析全新 Responses API
  • 国外文件传输网站新浪企业邮箱
  • 强制将析构函数放到类外定义
  • 虚幻引擎5 GAS开发俯视角RPG游戏 P07-06 能力输入的回调
  • 中企动力做网站贵吗wordpress wp-cumulus
  • 网站没有备案信息该怎么做气象网站建设
  • 6 AutoGen 多 Agent 协作框架:构建智能团队协作系统
  • 昆明做商城网站多少钱网站统计功能设计
  • 优秀个人网站图片如何建立一个小程序的网站
  • 对比28种时间序列预测算法在某个数据集上的表现-全套源码
  • LibreTorrent 4.0.1 | 一款开源磁力软件,不限速,支持RSS
  • 电子商务网站建设与管理的总结做网站用哪种语言好
  • 阿里巴巴网站策划书全球速卖通网址
  • 电子商务网站建设风格seo优化公司
  • 营销网站建设资料扫码支付做进商城网站
  • 10.进程间通信(四)
  • STM32项目分享:智能书桌
  • 做网站怎样做做标书的网站
  • 计算机视觉·LDVC
  • 如何用抽象语法树工具ast解析str格式的文本数据