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

网站开发 技术投标网站中图片加水印

网站开发 技术投标,网站中图片加水印,漂亮的wordpress主题,网站备案进度一、定义 定义PPO 自定义模型参数解释训练时数据采集与训练 二、实现强化学习示意图定义 PPO 的模型 一个深度神经网络,既当“Actor”(输出动作分布),又当“Critic”(输出状态价值),通过策略梯…

一、定义

  1. 定义
  2. PPO 自定义模型
  3. 参数解释
  4. 训练时数据采集与训练

二、实现

在这里插入图片描述

                                     强化学习示意图
  1. 定义
    PPO 的模型 = 一个深度神经网络,既当“Actor”(输出动作分布),又当“Critic”(输出状态价值),通过策略梯度 + 剪切更新(Clipped Update)来学习最优策略。
    在这里插入图片描述
  2. PPO 自定义模型
import torch as th
import torch.nn as nn
import gym
import numpy as np
from stable_baselines3 import PPO
from stable_baselines3.common.torch_layers import BaseFeaturesExtractor# ===============================
# 自定义特征提取器: CNN + MLP 融合
# ===============================
class CNN_MLP_Extractor(BaseFeaturesExtractor):def __init__(self, observation_space: gym.spaces.Dict, features_dim: int = 256):# observation_space 是字典,包括:#   "image": Box(...)#   "params": Box(...)super(CNN_MLP_Extractor, self).__init__(observation_space, features_dim)# ---- CNN 分支 (处理图像输入) ----n_input_channels = observation_space["image"].shape[0]  # e.g. 1 或 3self.cnn = nn.Sequential(nn.Conv2d(n_input_channels, 32, kernel_size=3, stride=2, padding=1),nn.ReLU(),nn.Conv2d(32, 64, kernel_size=3, stride=2, padding=1),nn.ReLU(),nn.Conv2d(64, 128, kernel_size=3, stride=2, padding=1),nn.ReLU(),nn.Flatten(),)# 计算 CNN 输出维度with th.no_grad():sample_img = th.as_tensor(observation_space["image"].sample()[None]).float()cnn_out_dim = self.cnn(sample_img).shape[1]# ---- MLP 分支 (处理工艺参数输入) ----params_dim = observation_space["params"].shape[0]self.mlp = nn.Sequential(nn.Linear(params_dim, 64),nn.ReLU(),nn.Linear(64, 64),nn.ReLU(),)# ---- 融合层 ----self.linear = nn.Sequential(nn.Linear(cnn_out_dim + 64, features_dim),nn.ReLU(),)def forward(self, observations) -> th.Tensor:img = observations["image"]params = observations["params"]# CNN + MLPcnn_out = self.cnn(img)mlp_out = self.mlp(params)# 融合concat = th.cat([cnn_out, mlp_out], dim=1)return self.linear(concat)# ===============================
# 自定义环境 (字典输入示例)
# ===============================
class InjectionMoldingEnv(gym.Env):def __init__(self):super(InjectionMoldingEnv, self).__init__()self.observation_space = gym.spaces.Dict({"image": gym.spaces.Box(low=0, high=255, shape=(1, 64, 64), dtype=np.uint8),  # 温度/压力分布图"params": gym.spaces.Box(low=-1, high=1, shape=(10,), dtype=np.float32),      # 静态工艺参数})self.action_space = gym.spaces.Box(low=-1, high=1, shape=(3,), dtype=np.float32)   # 调参动作def reset(self):obs = {"image": np.random.randint(0, 255, (1, 64, 64), dtype=np.uint8),"params": np.random.uniform(-1, 1, (10,)).astype(np.float32)}return obsdef step(self, action):reward = -np.sum(np.square(action))  # 示例:动作越小越好obs = {"image": np.random.randint(0, 255, (1, 64, 64), dtype=np.uint8),"params": np.random.uniform(-1, 1, (10,)).astype(np.float32)}done = np.random.rand() < 0.05return obs, reward, done, {}# ===============================
# 使用 PPO 训练
# ===============================
env = InjectionMoldingEnv()policy_kwargs = dict(features_extractor_class=CNN_MLP_Extractor,features_extractor_kwargs=dict(features_dim=256),
)model = PPO("MultiInputPolicy", env, policy_kwargs=policy_kwargs, verbose=1)
model.learn(total_timesteps=10000)# 保存模型
model.save("ppo_injection_cnn_mlp")
  1. 参数解释
    在这里插入图片描述
    在这里插入图片描述
|fps | 54 | Frames Per Second(每秒处理的帧数)。这是衡量训练速度的一个关键指标。这里的 54 表示你的训练程序每秒能够处理 54个环境帧(或称为步骤、样本)。这个值越高,代表训练速度越快。 |
| iterations | 1 | 迭代次数。在强化学习中,一次“迭代”通常包含收集一批数据、并用这批数据更新模型参数的过程。这里的 1 表示当前报表统计的是第1次迭代期间的数据。 |
| time_elapsed | 187 | 已用时间。单位通常是秒(s)。这里的 187 表示从训练开始到当前这个时刻,总共已经过去了 187秒(约3分钟7秒)。 |
| total_timesteps | 10240 | 总时间步数。这是整个训练过程中,环境与智能体交互的总次数。
  1. 训练时数据采集与训练
    model.learn() 模型开始训练—>collect_rollouts(通过交互回合,进行数据采集)–>每次采集(n_step)条后,进行训练self.train()。
    其中collect_rollouts 数据采集为:self.policy(obs_tensor)—>env.step(clipped_actions), 通过环境的step 进行采集。

    terminated 训练时,不计算损失。

在这里插入图片描述

训练数据变化:
cycles—>采集数据量: self.n_epoch —>self.batch_size
1个cycles 训练数据量为: self.n_epoch * 采集数据量

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

相关文章:

  • 株洲市哪里有做公司官方网站wordpress主题显示不完整
  • 免费注册自己的网站网页制作课程
  • 湖南网站建设服务洛阳做网站公司
  • 小型的游戏网站怎么做网站全站模板
  • 免费网站推广在线观看网站那个做的比较好
  • 网站制作有哪些创新家校互动平台
  • 做 在线观看免费网站有哪些网页开发流程图
  • 公司网站英文学网站开发学费多少
  • 陕西电商网站建设旅游网站开发与建设论文
  • 嘉兴免费自助建站模板网站怎样做关键词优化
  • 免费的网站推广软件营销型网站建设宣传语
  • 做食品生产的网站佛山网站建站
  • 淄博比较好的网站建设公司做网站 什么语言好
  • 深圳高端做网站公司句容住房和城乡建设局网站
  • 哈尔滨做网站哈尔滨学院装修公司加盟品牌
  • 渭南建设工程招标投标网站定制网络营销计划
  • 想搞网站建设南阳网站营销外包公司
  • pc网站如何做seo杭州网络有限公司
  • 重庆网站推广外包企业临夏市做网站电话
  • 网站建设工具公司电脑怎么建网站
  • 嘉定网站设计网站建设依循的原则
  • 经验丰富的网站制作公司申请网站的域名
  • 英文站 wordpress seo优化做企业平台的网站
  • 服装设计参考网站建站宝盒里的手机网站
  • 网站建设的关键词电子商务网站建设产品
  • 不关网站备案潍坊mip网站建设
  • seo怎么做自己的网站wordpress 主题 zuopin
  • 中卫市建设局网站买什么样的主机(用来建网站的)支持下载
  • 做企业网站建设公司哪家好网站怎么绑定织梦
  • 宠物医疗设计素材网站网站开发实训报告模板