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

南部 网站 建设wordpress制作翻译

南部 网站 建设,wordpress制作翻译,网站建设套餐报价,厦门网站建设案例概要 XOR 是一个经典的非线性可分问题#xff0c;传统的单层感知机无法解决它。因此#xff0c;可以使用具有隐藏层的多层感知机#xff08;MLP#xff09;来学习 XOR 的映射关系。通过反向传播优化参数#xff0c;使得模型能够正确预测输入数据的输出。 实现原理 输入…概要 XOR 是一个经典的非线性可分问题传统的单层感知机无法解决它。因此可以使用具有隐藏层的多层感知机MLP来学习 XOR 的映射关系。通过反向传播优化参数使得模型能够正确预测输入数据的输出。 实现原理 输入数据两个二进制位0 或 1例如 (0, 0), (0, 1) 等。目标输出异或结果0 或 1。模型结构 输入层2 个神经元隐藏层4 个神经元 ReLU 激活函数输出层1 个神经元Sigmoid 激活 损失函数使用 BCELoss二分类交叉熵优化器Adam 架构图 #mermaid-svg-47DFdYpn9lbikwJ5 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-47DFdYpn9lbikwJ5 .error-icon{fill:#552222;}#mermaid-svg-47DFdYpn9lbikwJ5 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-47DFdYpn9lbikwJ5 .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-47DFdYpn9lbikwJ5 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-47DFdYpn9lbikwJ5 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-47DFdYpn9lbikwJ5 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-47DFdYpn9lbikwJ5 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-47DFdYpn9lbikwJ5 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-47DFdYpn9lbikwJ5 .marker.cross{stroke:#333333;}#mermaid-svg-47DFdYpn9lbikwJ5 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-47DFdYpn9lbikwJ5 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-47DFdYpn9lbikwJ5 .cluster-label text{fill:#333;}#mermaid-svg-47DFdYpn9lbikwJ5 .cluster-label span{color:#333;}#mermaid-svg-47DFdYpn9lbikwJ5 .label text,#mermaid-svg-47DFdYpn9lbikwJ5 span{fill:#333;color:#333;}#mermaid-svg-47DFdYpn9lbikwJ5 .node rect,#mermaid-svg-47DFdYpn9lbikwJ5 .node circle,#mermaid-svg-47DFdYpn9lbikwJ5 .node ellipse,#mermaid-svg-47DFdYpn9lbikwJ5 .node polygon,#mermaid-svg-47DFdYpn9lbikwJ5 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-47DFdYpn9lbikwJ5 .node .label{text-align:center;}#mermaid-svg-47DFdYpn9lbikwJ5 .node.clickable{cursor:pointer;}#mermaid-svg-47DFdYpn9lbikwJ5 .arrowheadPath{fill:#333333;}#mermaid-svg-47DFdYpn9lbikwJ5 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-47DFdYpn9lbikwJ5 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-47DFdYpn9lbikwJ5 .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-47DFdYpn9lbikwJ5 .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-47DFdYpn9lbikwJ5 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-47DFdYpn9lbikwJ5 .cluster text{fill:#333;}#mermaid-svg-47DFdYpn9lbikwJ5 .cluster span{color:#333;}#mermaid-svg-47DFdYpn9lbikwJ5 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-47DFdYpn9lbikwJ5 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 输入层 (2) 隐藏层 (4) 输出层 (1) 网络结构图 #mermaid-svg-wrCS9AR92MFhp2Z9 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-wrCS9AR92MFhp2Z9 .error-icon{fill:#552222;}#mermaid-svg-wrCS9AR92MFhp2Z9 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-wrCS9AR92MFhp2Z9 .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-wrCS9AR92MFhp2Z9 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-wrCS9AR92MFhp2Z9 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-wrCS9AR92MFhp2Z9 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-wrCS9AR92MFhp2Z9 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-wrCS9AR92MFhp2Z9 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-wrCS9AR92MFhp2Z9 .marker.cross{stroke:#333333;}#mermaid-svg-wrCS9AR92MFhp2Z9 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-wrCS9AR92MFhp2Z9 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-wrCS9AR92MFhp2Z9 .cluster-label text{fill:#333;}#mermaid-svg-wrCS9AR92MFhp2Z9 .cluster-label span{color:#333;}#mermaid-svg-wrCS9AR92MFhp2Z9 .label text,#mermaid-svg-wrCS9AR92MFhp2Z9 span{fill:#333;color:#333;}#mermaid-svg-wrCS9AR92MFhp2Z9 .node rect,#mermaid-svg-wrCS9AR92MFhp2Z9 .node circle,#mermaid-svg-wrCS9AR92MFhp2Z9 .node ellipse,#mermaid-svg-wrCS9AR92MFhp2Z9 .node polygon,#mermaid-svg-wrCS9AR92MFhp2Z9 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-wrCS9AR92MFhp2Z9 .node .label{text-align:center;}#mermaid-svg-wrCS9AR92MFhp2Z9 .node.clickable{cursor:pointer;}#mermaid-svg-wrCS9AR92MFhp2Z9 .arrowheadPath{fill:#333333;}#mermaid-svg-wrCS9AR92MFhp2Z9 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-wrCS9AR92MFhp2Z9 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-wrCS9AR92MFhp2Z9 .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-wrCS9AR92MFhp2Z9 .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-wrCS9AR92MFhp2Z9 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-wrCS9AR92MFhp2Z9 .cluster text{fill:#333;}#mermaid-svg-wrCS9AR92MFhp2Z9 .cluster span{color:#333;}#mermaid-svg-wrCS9AR92MFhp2Z9 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-wrCS9AR92MFhp2Z9 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 输出层 Sigmoid 隐藏层 ReLU 输入层 输出节点 Sigmoid 隐藏节点 1 隐藏节点 2 隐藏节点 3 隐藏节点 4 ReLU 输入 1 输入 2 xor_model.py 完整代码含详细注释 import torch from torch.utils.data import Dataset, DataLoader import torch.nn as nn import torch.optim as optim# 设置随机种子 import torch # import random # import numpy as npSEED 22 # 可以选择任意整数作为种子torch.manual_seed(SEED) # 设置 PyTorch CPU 随机种子 # np.random.seed(SEED) # 设置 NumPy 随机种子如果有使用 # random.seed(SEED) # 设置 Python 内置随机种子# 如果使用 GPU可以启用以下设置来增强可复现性注意可能影响性能 torch.backends.cudnn.deterministic True torch.backends.cudnn.benchmark False # 设置结束 # Step 1: 自定义数据集类 class XORDataset(Dataset):def __init__(self):super(XORDataset, self).__init__()# 手动构建 XOR 数据集self.inputs torch.tensor([[0, 0],[0, 1],[1, 0],[1, 1]], dtypetorch.float32)self.labels torch.tensor([[0],[1],[1],[0]], dtypetorch.float32)def __len__(self):return len(self.inputs)def __getitem__(self, idx):return self.inputs[idx], self.labels[idx]# Step 2: 构建神经网络模型 class XORNet(nn.Module):def __init__(self):super(XORNet, self).__init__()# 定义三层网络结构self.model nn.Sequential(nn.Linear(2, 4), # 输入层 - 隐藏层4个神经元nn.ReLU(), # ReLU 激活函数nn.Linear(4, 1), # 隐藏层 - 输出层nn.Sigmoid() # Sigmoid 激活函数用于二分类)def forward(self, x):return self.model(x)# Step 3: 加载数据集并创建 DataLoader dataset XORDataset() dataloader DataLoader(dataset, batch_size1, shuffleTrue) # shuffleTrue 会打乱数据顺序但已通过种子控制随机性# Step 4: 初始化模型、损失函数和优化器 model XORNet() criterion nn.BCELoss() # 二分类交叉熵损失函数 optimizer optim.Adam(model.parameters(), lr0.1) # Adam 优化器# Step 5: 训练模型 print(开始训练模型...\n) epochs 1000 for epoch in range(epochs):total_loss 0for inputs, label in dataloader:optimizer.zero_grad()outputs model(inputs)loss criterion(outputs, label)loss.backward() # 反向传播计算梯度optimizer.step() # 更新参数total_loss loss.item()if (epoch 1) % 100 0:print(fEpoch {epoch1}, Loss: {total_loss:.4f})# Step 6: 保存模型 model_save_path xor_model.pth torch.save(model.state_dict(), model_save_path) print(f\n模型已保存至 {model_save_path})# Step 7: 测试模型 print(\n开始测试模型预测能力...\n) with torch.no_grad():for inputs, label in dataset:output model(inputs)predicted round(output.item())print(f输入: {inputs.tolist()} | 真实值: {label.item()} | 预测值: {predicted}) 小贴士 torch.manual_seed()确保每次运行时生成的随机数一致。torch.backends.cudnn.deterministic True在使用 GPU 时强制 cuDNN 使用确定性算法。torch.backends.cudnn.benchmark False禁用自动寻找最优卷积算法的功能避免引入不确定性。 ✅ 运行说明 安装依赖 pip install torch运行程序 将上述代码保存为 xor_model.py 并运行 python xor_model.py运行结果 模型应用1: 模型部署 import torch from torch.utils.data import Dataset import torch.nn as nn# Step 1: 自定义数据集类 class XORDataset(Dataset):def __init__(self):super(XORDataset, self).__init__()# 手动构建 XOR 数据集self.inputs torch.tensor([[0, 0],[0, 1],[1, 0],[1, 1]], dtypetorch.float32)self.labels torch.tensor([[0],[1],[1],[0]], dtypetorch.float32)def __len__(self):return len(self.inputs)def __getitem__(self, idx):return self.inputs[idx], self.labels[idx]# Step 2: 构建神经网络模型 class XORNet(nn.Module):def __init__(self):super(XORNet, self).__init__()# 定义三层网络结构self.model nn.Sequential(nn.Linear(2, 4), # 输入层 - 隐藏层4个神经元nn.ReLU(), # ReLU 激活函数nn.Linear(4, 1), # 隐藏层 - 输出层nn.Sigmoid() # Sigmoid 激活函数用于二分类)def forward(self, x):return self.model(x)# 加载模型 model_load_path xor_model.pth loaded_model XORNet() loaded_model.load_state_dict(torch.load(model_load_path)) loaded_model.eval() # 设置为评估模式# 创建数据集 dataset XORDataset()# 进行预测 print(开始使用加载的模型进行预测...\n) with torch.no_grad():for inputs, label in dataset:output loaded_model(inputs)predicted round(output.item())print(f输入: {inputs.tolist()} | 真实值: {label.item()} | 预测值: {predicted}) 运行结果 模型应用2使用模型对二进制数组进行异或计算 步骤流程图 #mermaid-svg-eONrQcQh1tnPuOTm {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-eONrQcQh1tnPuOTm .error-icon{fill:#552222;}#mermaid-svg-eONrQcQh1tnPuOTm .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-eONrQcQh1tnPuOTm .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-eONrQcQh1tnPuOTm .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-eONrQcQh1tnPuOTm .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-eONrQcQh1tnPuOTm .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-eONrQcQh1tnPuOTm .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-eONrQcQh1tnPuOTm .marker{fill:#333333;stroke:#333333;}#mermaid-svg-eONrQcQh1tnPuOTm .marker.cross{stroke:#333333;}#mermaid-svg-eONrQcQh1tnPuOTm svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-eONrQcQh1tnPuOTm .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-eONrQcQh1tnPuOTm .cluster-label text{fill:#333;}#mermaid-svg-eONrQcQh1tnPuOTm .cluster-label span{color:#333;}#mermaid-svg-eONrQcQh1tnPuOTm .label text,#mermaid-svg-eONrQcQh1tnPuOTm span{fill:#333;color:#333;}#mermaid-svg-eONrQcQh1tnPuOTm .node rect,#mermaid-svg-eONrQcQh1tnPuOTm .node circle,#mermaid-svg-eONrQcQh1tnPuOTm .node ellipse,#mermaid-svg-eONrQcQh1tnPuOTm .node polygon,#mermaid-svg-eONrQcQh1tnPuOTm .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-eONrQcQh1tnPuOTm .node .label{text-align:center;}#mermaid-svg-eONrQcQh1tnPuOTm .node.clickable{cursor:pointer;}#mermaid-svg-eONrQcQh1tnPuOTm .arrowheadPath{fill:#333333;}#mermaid-svg-eONrQcQh1tnPuOTm .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-eONrQcQh1tnPuOTm .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-eONrQcQh1tnPuOTm .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-eONrQcQh1tnPuOTm .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-eONrQcQh1tnPuOTm .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-eONrQcQh1tnPuOTm .cluster text{fill:#333;}#mermaid-svg-eONrQcQh1tnPuOTm .cluster span{color:#333;}#mermaid-svg-eONrQcQh1tnPuOTm div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-eONrQcQh1tnPuOTm :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 异或结果列表 运算组 3: (1, 1) 运算组 2: (0, 1) 运算组1: (1, 0) 输入列表 B 输入列表 A 输入 输入 输入 输入 输入 输入 1 1 0 输出: 0 输出: 1 输出: 1 0 1 1 模型预测 Input: [1, 0] 1 模型预测 Input: [0, 1] 0 模型预测 Input: [1, 1] 1 示例代码 import torch import torch.nn as nn# Step 1: 定义模型结构必须与训练时一致 class XORNet(nn.Module):def __init__(self):super(XORNet, self).__init__()self.model nn.Sequential(nn.Linear(2, 4),nn.ReLU(),nn.Linear(4, 1),nn.Sigmoid())def forward(self, x):return self.model(x)# Step 2: 加载模型 model_path xor_model.pth model XORNet() # model.load_state_dict(torch.load(model_path)) model.load_state_dict(torch.load(model_path, weights_onlyTrue)) model.eval() # 设置为评估模式# Step 3: 定义按位异或函数 def binary_list_xor(model, list_a, list_b):if len(list_a) ! len(list_b):raise ValueError(两个二进制列表长度必须相同)result []for i, (a, b) in enumerate(zip(list_a, list_b)):print(f\n--- 第 {i1} 组输入({a}, {b}) ---)input_tensor torch.tensor([[a, b]], dtypetorch.float32)with torch.no_grad():output model(input_tensor)predicted round(output.item())print(f模型预测输出: {predicted})result.append(predicted)return result# Step 4: 示例调用 if __name__ __main__:list_a [1, 0, 1]list_b [0, 1, 1]xor_result binary_list_xor(model, list_a, list_b)print(\n最终异或结果:, xor_result) 运行结果 步骤说明 编号输入 (a, b)模型输入 Tensor模型预测输出实际异或值1(1, 0)[[1.0, 0.0]]112(0, 1)[[0.0, 1.0]]113(1, 1)[[1.0, 1.0]]00 注模型是基于上方训练好的 XORNet 网络结构进行推理的每组输入都单独传入模型进行前向传播。 总结 本项目展示了如何使用 PyTorch 构建一个简单的 MLP 来解决 XOR 问题这是一种基础版的深度神经网络模型读者后续可以在此基础上扩展更多逻辑门或更复杂的任务。
http://www.w-s-a.com/news/776714/

相关文章:

  • 中国铁路建设监理协会官方网站深圳福田区怎么样
  • 互联网网站开发发展wordpress文章自定义栏目
  • 众筹网站平台建设工信部网站备案系统
  • 网站301重定向代码wordpress 加子目录
  • 淄博网站制作优化推广asp做学生信息网站
  • 海口招商建设有限公司网站淮安哪有专业做网站的公司
  • 喀什哪有做网站的国内正规seo网络推广
  • 网站设计初步规划公司网页打不开是什么原因
  • 深圳企业网站建设推广服务php做的商城网站设计论文
  • 韩雪冬网站手机网站开发 宽度
  • 奉贤专业做网站新手怎么做企业网站
  • 做网站用哪几个端口 比较好手机号网站源码
  • 手机免费代理ip网站那个旅游网站做攻略最好
  • 西安做网站找哪家公司好苏州专业网站建设开发
  • dedecms如何做网站网站设计实施方案
  • 网站建设合约品牌设计有哪些
  • 织梦企业门户网站宝塔搭建wordpress网站
  • 网站为什么没有排名了11月将现新冠感染高峰
  • 网站开发维护专员岗位职责辽阳企业网站建设
  • 做外国订单有什么网站网站设计论文提纲
  • 商城网站建设报价方案导师让做网站
  • 清远市企业网站seo联系方式动易官方网站
  • 手机上怎么做能打开的网站一级域名和二级域名跨域
  • 网站首页效果图wordpress 在线教育
  • 电商网站开发团队广西桂林商贸旅游技工学校
  • 网站模板文件怎么下载东莞常平镇邮政编码
  • 建网站需要什么wordpress误删的后果
  • wordpress无插件实现网站地图做阿里巴巴网站店铺装修费用
  • 英文互动网站建设南宁住房和城乡建设局网站
  • 威海微网站建设乐清建网站哪家强