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

游戏类企业网站模板室内设计和平面设计哪个比较吃香

游戏类企业网站模板,室内设计和平面设计哪个比较吃香,网站制作2007,大学生对校园网站建设的需求是什么半监督学习#xff08;Semi-Supervised Learning#xff0c;SSL#xff09;结合了有监督学习和无监督学习的特点#xff0c;通常用于部分数据有标签、部分数据无标签的场景。其主要步骤如下#xff1a; 1. 数据准备 有标签数据#xff08;Labeled Data#xff09;Semi-Supervised LearningSSL结合了有监督学习和无监督学习的特点通常用于部分数据有标签、部分数据无标签的场景。其主要步骤如下 1. 数据准备 有标签数据Labeled Data数据集的一部分带有真实的类别标签。无标签数据Unlabeled Data数据集的另一部分没有标签仅有特征信息。数据预处理对数据进行清理、标准化、特征工程等处理以保证数据质量。 2. 选择半监督学习方法 常见的半监督学习方法包括 基于生成模型Generative Models如高斯混合模型GMM、变分自编码器VAE。基于一致性正则化Consistency Regularization如 MixMatch、FixMatch利用数据增强来约束模型预测一致性。基于伪标签Pseudo-Labeling先用模型预测无标签数据的类别然后将高置信度的预测作为新标签加入训练。图神经网络Graph-Based Methods如 Label Propagation通过构造数据之间的图结构传播标签信息。 3. 训练初始模型 仅使用有标签数据训练一个初始模型。选择合适的损失函数如交叉熵损失Cross-Entropy Loss或均方误差MSE Loss。训练过程中可以使用数据增强、正则化等优化策略。 4. 利用无标签数据增强训练 伪标签方法用初始模型对无标签数据进行预测筛选高置信度样本加入有标签数据训练。一致性正则化对无标签数据进行不同变换要求模型的预测结果一致。联合训练构造有监督损失Supervised Loss和无监督损失Unsupervised Loss综合优化。 5. 模型迭代更新 重新利用训练后的模型预测无标签数据产生新的伪标签或调整模型参数。通过半监督策略不断优化模型使其对无标签数据的预测更加稳定。 6. 评估和测试 使用测试集通常是有标签的数据评估模型性能。选择合适的评估指标如准确率Accuracy、F1-score、AUC-ROC 等。 7. 调优和部署 根据实验结果调整超参数如伪标签置信度阈值、学习率等。结合业务需求将最终模型部署到实际应用中。 关键步骤 初始化模型首先使用有标签数据训练模型。生成伪标签用训练好的模型对无标签数据进行预测生成伪标签。结合有标签和伪标签数据进行训练用带有标签和无标签伪标签数据一起训练模型。迭代训练不断迭代使用更新的模型生成新的伪标签进一步优化模型。 import torch import torch.nn as nn import torch.optim as optim import torch.nn.functional as F from torch.utils.data import DataLoader, Dataset import matplotlib.pyplot as plt# 简化的神经网络模型 class SimpleCNN(nn.Module):def __init__(self):super(SimpleCNN, self).__init__()self.conv1 nn.Conv2d(1, 8, kernel_size3) # 缩小卷积层的输出通道self.fc1 nn.Linear(8 * 26 * 26, 10) # 调整全连接层的输入和输出尺寸def forward(self, x):x F.relu(self.conv1(x))x x.view(x.size(0), -1) # 展平x self.fc1(x)return x# 自定义数据集 class CustomDataset(Dataset):def __init__(self, data, labelsNone):self.data dataself.labels labelsdef __len__(self):return len(self.data)def __getitem__(self, idx):if self.labels is not None:return self.data[idx], self.labels[idx]else:return self.data[idx], -1 # 无标签数据# 半监督训练函数 def pseudo_labeling_training(model, labeled_loader, unlabeled_loader, optimizer, device, threshold0.95):model.train()labeled_loss_value 0pseudo_loss_value 0for (labeled_data, labeled_labels), (unlabeled_data, _) in zip(labeled_loader, unlabeled_loader):labeled_data, labeled_labels labeled_data.to(device), labeled_labels.to(device)unlabeled_data unlabeled_data.to(device)# 1. 有标签数据训练optimizer.zero_grad()labeled_output model(labeled_data)labeled_loss F.cross_entropy(labeled_output, labeled_labels)labeled_loss.backward()# 2. 无标签数据伪标签生成unlabeled_output model(unlabeled_data)probs F.softmax(unlabeled_output, dim1)max_probs, pseudo_labels torch.max(probs, dim1)# 伪标签置信度筛选pseudo_mask max_probs threshold # 置信度大于阈值的数据作为伪标签if pseudo_mask.sum() 0:pseudo_labels pseudo_labels[pseudo_mask]unlabeled_data_pseudo unlabeled_data[pseudo_mask]# 3. 使用伪标签数据进行训练确保无标签数据参与反向传播optimizer.zero_grad() # 清除之前的梯度pseudo_output model(unlabeled_data_pseudo)pseudo_loss F.cross_entropy(pseudo_output, pseudo_labels)pseudo_loss.backward() # 计算反向梯度optimizer.step() # 更新模型参数# 累加损失用于展示labeled_loss_value labeled_loss.item()if pseudo_mask.sum() 0:pseudo_loss_value pseudo_loss.item()return labeled_loss_value / len(labeled_loader), pseudo_loss_value / len(unlabeled_loader)# 模拟数据 num_labeled 1000 num_unlabeled 5000 data_dim (1, 28, 28) # 28x28 灰度图像 num_classes 10labeled_data torch.randn(num_labeled, *data_dim) labeled_labels torch.randint(0, num_classes, (num_labeled,)) unlabeled_data torch.randn(num_unlabeled, *data_dim)labeled_dataset CustomDataset(labeled_data, labeled_labels) unlabeled_dataset CustomDataset(unlabeled_data)labeled_loader DataLoader(labeled_dataset, batch_size32, shuffleTrue) # 缩小批量大小 unlabeled_loader DataLoader(unlabeled_dataset, batch_size32, shuffleTrue) # 缩小批量大小# 模型、优化器和设备设置 device torch.device(cpu) # 临时使用 CPU model SimpleCNN().to(device) optimizer optim.Adam(model.parameters(), lr0.001)# 训练过程并记录损失 num_epochs 10 labeled_losses [] pseudo_losses []for epoch in range(num_epochs):labeled_loss, pseudo_loss pseudo_labeling_training(model, labeled_loader, unlabeled_loader, optimizer, device)labeled_losses.append(labeled_loss)pseudo_losses.append(pseudo_loss)print(fEpoch [{epoch 1}/{num_epochs}] | Labeled Loss: {labeled_loss:.4f} | Pseudo Loss: {pseudo_loss:.4f})# 绘制损失曲线 plt.plot(range(num_epochs), labeled_losses, labelLabeled Loss) plt.plot(range(num_epochs), pseudo_losses, labelPseudo Label Loss) plt.xlabel(Epochs) plt.ylabel(Loss) plt.legend() plt.title(Training Losses Over Epochs) plt.show()# 展示伪标签生成效果可视化一些样本的伪标签预测结果 model.eval() with torch.no_grad():sample_unlabeled_data unlabeled_data[:10].to(device)output model(sample_unlabeled_data)probs F.softmax(output, dim1)_, predicted_labels torch.max(probs, dim1)# 展示预测的标签print(Generated Pseudo Labels for Samples:)print(predicted_labels)# 假设这些是伪标签预测的图片fig, axes plt.subplots(2, 5, figsize(12, 5))for i, ax in enumerate(axes.flat):# 将tensor转换为NumPy数组img sample_unlabeled_data[i].cpu().numpy().squeeze() # 转为NumPy数组ax.imshow(img, cmapgray) # 使用灰度显示图像ax.set_title(fPred: {predicted_labels[i].item()})ax.axis(off)plt.show()
http://www.dnsts.com.cn/news/77165.html

相关文章:

  • 网站建设捌金手指下拉六ftp更换网站
  • 我有服务器怎么做网站html简单的个人主页
  • 颇有名气的网站建设专家lol解说网站源码
  • 手机移动端网站案例怎么做打赏看视频的网站
  • 长春网站制作软件17网站一起做网店怎么拿货
  • win8风格网站开发实例如何开展网络推广
  • 网站建设网站制作公司专业苏州房产网站建设
  • 临西网站建设费用龙岩兼职
  • 领动做的企业网站怎么样域名注册好了
  • 网站怎么做值班表罗定网站优化
  • 海口网站建设哪家最好wordpress关注公众号登录
  • 网站后台管理入口短视频素材下载网站
  • cms怎么搭建网站wordpress快速网店主题
  • 域名解析 网站建设网站模块设计怎么做
  • 彩票网站定制公司介绍网站平台搭建设计论文
  • 校园网站制作方法anker 网站谁做的
  • 莆田中建建设发展有限公司网站西安的互联网公司有哪些
  • 网站一直不被收录客户网站建设完成后需要什么
  • 怎么做微信点击网站打赏看片查找网站
  • 贵州做网站的西安网页开发
  • 公司网站后台登陆wordpress无域名
  • 四平网站建设联系方式在线旅游网站
  • 做羞羞的事的视频网站潍坊专业网站建设哪家好
  • 章丘网站建设哪家好软件开发班
  • 自己做的网站什么时候可以赚钱建站平台在线提交表格功能
  • 网站网页设计公司有哪些网页小游戏单机
  • 网站建设需求调研方法南宫企业做网站
  • 临沂怎么做网站菜谱网站手机源码
  • 网站空间怎么备份WordPress出现503报错
  • 高要区公路建设规划局网站广东海外建设监理有限公司网站