SageMaker强化学习部署

news2024/11/25 11:49:30

强化训练

强化学习的训练与一般的深度学习不太一样。需要有一个环境,对智能体的动作,给予一个奖励并进行状态转移。用于训练的数据,是在训练的过程中产生的。

这里以一个小车上坡的强化学习作为例子,相关文档在下方

https://sagemaker-examples.readthedocs.io/en/latest/reinforcement_learning/rl_mountain_car_coach_gymEnv/rl_mountain_car_coach_gymEnv.html

在对应文件在reinforcement_learning\rl_mountain_car_coach_gymEnv 目录下。这里实际运行时的时候。需要将reinforcement_learning\common目录也移动到rl_mountain_car_coach_gymEnv目录下

训练介绍

该训练模拟了一辆动力不足的汽车的任务是攀登陡峭的山峰,只有到达右侧山顶才能成功。小车无法一脚油门直接开到山顶,但是左侧还有另一座山,可以利用它获得动力,将汽车开到山顶。

例子中几个关键的概念如下

环境(Env):Open AI Gym里的MountainCarContinuous-v0

动作(Action):让小车向左/向右移动和什么都不做

状态(State):小车在水平位置的坐标,以及当前的速度

奖励(Reward):当到达右侧山顶时获得100分,每执行一步扣1分

下图演示了小车到达山顶的过程

Tips:

这里需要注意一点,git上的这个例子,需要先将rl_mountain_car_coach_gymEnv目录下的commom文件删除,然后将该目录同级的common库复制到rl_mountain_car_coach_gymEnv目录下。

复制完后的rl_mountain_car_coach_gymEnv 如下

使用Sagemaker进行强化学习的时候,可以使用Docker在JupyterNotebook的实例上进行本地的训练。等到调试完成后可以再改到SageMaker上进行训练。

一些关键的概念

Coach(教练)

项目中的Coach是一个高级框架或工具包,旨在简化强化学习任务的开发和实验过程。它提供了许多预定义的算法、环境接口以及用于训练和评估智能体的组件。Coach具有灵活性,可以适应不同类型的任务和算法。它负责整个强化学习训练流程的管理和协调。

Agent(智能体)

Agent是指在强化学习任务中执行动作的实体。智能体在一个环境中观察状态,并基于其策略选择动作来与环境进行交互。Agent的目标是通过与环境的交互,学习如何最大化累积奖励或达到特定的目标。Agent的行为通常由一个或多个学习算法来控制,例如Q-learning、Policy Gradient等。

rl_coach库

这个例子中使用了gym.openai的库,可以用来提供这个小车例子的环境。同时还使用了rl_coach库,提供了一个模块化的框架,其中包含了一系列预定义的强化学习组件和算法,如深度 Q 网络(DQN)、策略梯度、行动者-评论家(Actor-Critic)等.

CheckPoint(检查点)

例子还使用了CheckPoint(检查点)用来进行预测。检查点的作用是当训练特别大的时候,可以用来保留部分训练的结果。以便下一次训练的时候,可以直接从检查点继续,避免重新开始训练。可以简单的理解为训练过程的存档。

例子解析

由于这个例子使用的环境是gym.openai例子的环境,所以并不需要自己去编写关于环境的逻辑。

并且训练的过程也是透明的,不需要自己去迭代参数以及指定参数的输入输出类型

Sagemaker的强化学习主要是通过RLEstimator进行的,相关文档可以查看 https://sagemaker.readthedocs.io/en/stable/frameworks/rl/sagemaker.rl.html

特别需要注意的是,这个Estimator支持的强化学习框架只有mxnet和tensorflow

classsagemaker.rl.estimator.RLEstimator(entry_point, toolkit=None, toolkit_version=None, framework=None, source_dir=None, hyperparameters=None, image_uri=None, metric_definitions=None, **kwargs)

创作不易,如果觉得这篇文章对你有所帮助,可以动动小手,点个赞哈,ღ( ´・ᴗ・` )比心

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2247266.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL面试-1

InnoDB中ACID的实现 先说一下原子性是怎么实现的。 事务要么失败,要么成功,不能做一半。聪明的InnoDB,在干活儿之前,先将要做的事情记录到一个叫undo log的日志文件中,如果失败了或者主动rollback,就可以通…

使用树莓派安装shairport-sync使老音响变身AirPlay音响

借助shairport-sync,可以让普通音响变成AirPlay无线音响,由于树莓派天生的低功耗,做这种事情最适合。所以架构就是树莓派安装Ubuntu24.04,在树莓派上安装shairport-sync,树莓派再通过3.5mm线连接音响。 安装Ubuntu24.…

Linux---ps命令

​​​​​​Linux ps 命令 | 菜鸟教程 (runoob.com) process status 用于显示进程的状态 USER: 用户名,运行此进程的用户名。PID: 进程ID(Process ID),每个进程的唯一标识号%CPU: 进程当前使用的CPU百分比%MEM: 进程当前使用的…

VLAN是什么,一个好的网络为什么要划分VLAN呢?

前言 在上一篇中讲解了交换机的工作原理,知道了交换机处理数据的转发方式,其中有两种情况会以广播方式进行发送数据,第一种是目的MAC是全F的,以及组播MAC,第二种是未知单播帧,那这个会带来什么样的问题呢&…

衡山派D133EBS 开发环境安装及SDK编译烧写镜像烧录

1.创建新文件夹,用来存放SDK包(其实本质就是路径要对就ok了),右键鼠标通过Open Git Bash here来打开git 输入命令 git clone --depth1 https://gitee.com/lcsc/luban-lite.git 来拉取,如下所示:&#xff0…

基于Gradle搭建Spring6.2.x版本源码阅读环境

前言 阅读源码是程序猿成长的必经一环,正所谓知其然知其所以然。我们在开发成长道路上不仅需要知道如何使用,更要懂得其背后的原理,如此方可得心应手。本篇文章旨在指导大家搭建Spring6.0以上版本的源码阅读环境,方便大家在学习源…

C++自动化测试:GTest 与 GitLab CI/CD 的完美融合

在现代软件开发中,自动化测试是保证代码质量和稳定性的关键手段。对于C项目而言,自动化测试尤为重要,它能有效捕捉代码中的潜在缺陷,提高代码的可维护性和可靠性。本文将重点介绍如何在C项目中结合使用Google Test(GTe…

ubuntu16.04在ros使用USB摄像头-解决could not open /dev/video0问题

首先检查摄像头 lsusb 安装 uvc camera 功能包 sudo apt-get install ros-indigo-uvc-camera 安装 image 相关功能包 sudo apt-get install ros-kinetic-image-* sudo apt-get install ros-kinetic-rqt-image-view运行 uvc_camera 节点 首先输入roscore 然后另外开一个终端输入…

Linux:文件管理(二)——文件缓冲区

目录 一、缓冲区概念 二、缓冲区刷新机制 三、用缓冲区刷新解释下面现象。 一、缓冲区概念 缓冲区,本质就是一块内存区域。 设计缓冲区就是为了让本来要一次一次传的数据,都暂时传到缓冲区,让缓冲区刷新一次,这样只发生了一次传…

PH热榜 | 2024-11-24

DevNow 是一个精简的开源技术博客项目模版,支持 Vercel 一键部署,支持评论、搜索等功能,欢迎大家体验。 在线预览 1. AutoFlow Studio 标语:借助简化的AI质检,更快发布产品,更聪明地进行测试。 介绍&…

hubuctf-2024校赛-复现wp

web easyweb1 <?php error_reporting(0); highlight_file(__FILE__);$flag getenv("GZCTF_FLAG");if(isset($_GET[num])){$num $_GET[num];if(preg_match("/[0-9]/", $num)){die("You are failed.");}if(intval($num)){echo $flag;} } 利…

飞书会话消息左右排列

飞书会话消息左右排列 1. 飞书登录后&#xff0c;点击头像&#xff0c;弹出菜单有个按钮设置 2. 3.

《图像形态学运算全解析:原理、语法及示例展示》

简介&#xff1a; 本文详细介绍了图像形态学中的多种运算&#xff0c;包括腐蚀、膨胀、开运算、闭运算、形态学梯度运算、礼帽运算以及黑帽运算。分别阐述了各运算的原理、语法格式&#xff0c;并通过 Python 代码结合具体示例图片&#xff08;如erode.JPG、dilate.JPG、close.…

链路聚合实验

1、聚合方式 &#xff08;1&#xff09;、lacp 静态链路聚合、 动态链路聚合&#xff08;开启lacp模式&#xff0c;常用&#xff09; &#xff08;2&#xff09;、手工负载分担 静态端口聚合&#xff08;两台交换机都按照下面的命令配置&#xff09; <H3C>sys System Vi…

电子电气架构 -- ASIL D安全实现策略

我是穿拖鞋的汉子&#xff0c;魔都中坚持长期主义的汽车电子工程师。 老规矩&#xff0c;分享一段喜欢的文字&#xff0c;避免自己成为高知识低文化的工程师&#xff1a; 所有人的看法和评价都是暂时的&#xff0c;只有自己的经历是伴随一生的&#xff0c;几乎所有的担忧和畏惧…

禁止Chrome的自动升级

一、需求分析 因为用Chromeselenium做了网页自动化填写任务&#xff0c;如果Google Chrome浏览器自动升级&#xff0c;就会导致chromedriver加载失败&#xff0c;自动化任务失效&#xff0c;因此需要禁止Chrome浏览器的自动升级。 二、当前环境 三、实际配置 运行注册表编辑…

C0034.在Ubuntu中安装的Qt路径

Qt安装路径查询 在终端输入qmake -v如上中/usr/lib/x86_64-linux-gnu就是Qt的安装目录&#xff1b;

C++从零到满绩——类和对象(中)

目录 1>>前言 2>>构造函数&#xff08;我称之为初始化函数&#xff09; 3>>析构函数&#xff08;我称之为销毁函数&#xff09; 4>>拷贝构造函数&#xff08;我称之为复制函数&#xff09; 5>>运算符重载 5.2>>赋值运算符重载 ​编辑…

oracle 12c查看执行过的sql及当前正在执行的sql

V$SQL 提供了已经执行过及正在执行的SQL语句的信息。 一 查看共享池中所有sql的统计信息 #统计共享池中某类sql执行次数&#xff0c;总体执行时长&#xff0c;平均执行时长等信息&#xff0c;并按总体执行时长降序排序 SELECT INST_ID,SQL_ID,SQL_TEXT,SQL_FULLTEXT,EXECUTI…

解锁PPTist的全新体验:Windows系统环境下本地部署与远程访问

文章目录 前言1. 本地安装PPTist2. PPTist 使用介绍3. 安装Cpolar内网穿透4. 配置公网地址5. 配置固定公网地址 前言 在Windows系统环境中&#xff0c;如何本地部署开源在线演示文稿应用PPTist&#xff0c;并实现远程访问&#xff1f;本文将为您提供详细的部署和配置指南。 P…