先上代码

import math
import gym
from gym import spaces, logger
from gym.utils import seeding
import numpy as np class CartPoleEnv(gym.Env):
def __init__(self):
super().__init__() self.seed() def seed(self, seed=None): #seed设置为任意整数后,随机值固定,如果设置随机值固定
self.np_random, seed = seeding.np_random(seed)
return [seed] def reset(self):
self.state = self.np_random.uniform(low=-0.05, high=0.05, size=(4,))
self.steps_beyond_done = None
return np.array(self.state) env=CartPoleEnv()
print(env.reset())

输出结果:【每次都会不一样】

[ 0.0322836  -0.04638474  0.01553654  0.04217918]

[-0.04618838  0.04793247  0.01464823 -0.02379606]

#seed设置为任意整数后,随机值固定,如果设置随机值固定

如果随便设置seed=常数

seed=1 结果都是一样

[ 0.03073904  0.00145001 -0.03088818 -0.03131252]

[ 0.03073904  0.00145001 -0.03088818 -0.03131252]

[ 0.03073904  0.00145001 -0.03088818 -0.03131252]

作用也就显而易见了:

使每次初始化结果一致,比如有些时候环境是随机的,强化学习得到的每次仿真都会有差异,设置了seed值就可以记录某次环境的参数,确保跑出程序在下次可以更好复现。

当然深度强化学习里面随机变量随机因素太多不一定能完美一致复现,不过结果也能差强人意的。

python随机种子seed的作用(强化学习常用到)的更多相关文章

  1. 【强化学习】python 实现 q-learning 例一

    本文作者:hhh5460 本文地址:https://www.cnblogs.com/hhh5460/p/10134018.html 问题情境 -o---T# T 就是宝藏的位置, o 是探索者的位置 ...

  2. Python中random模块在主函数中设置随机种子是否对于调用的函数中的随机值产生影响?

    一个问题,加入我有一个工程文件,在main函数里面调用random模块,设置随机种子,主函数中的随机种子的设置是否会影响主函数所调用的函数中的随机值? 实际上这个问题非常重要,比如你在跑网络的时候,初 ...

  3. 强化学习 平台 openAI 的 gym 安装 (Ubuntu环境下如何安装Python的gym模块)

    openAI 公司给出了一个集成较多环境的强化学习平台  gym , 本篇博客主要是讲它怎么安装. openAI公司的主页: https://www.openai.com/systems/ 从主页上我 ...

  4. 关于python中的随机种子——random_state

    random_state是一个随机种子,是在任意带有随机性的类或函数里作为参数来控制随机模式.当random_state取某一个值时,也就确定了一种规则. random_state可以用于很多函数,我 ...

  5. 强化学习之MountainCarContinuous(注册自己的gym环境)

    目录 1. 问题概述 2. 环境 2.1 Observation & state 2.2 Actions 2.3 Reward 2.4 初始状态 2.5 终止状态- Episode Termi ...

  6. Python机器学习笔记:sklearn库的学习

    网上有很多关于sklearn的学习教程,大部分都是简单的讲清楚某一方面,其实最好的教程就是官方文档. 官方文档地址:https://scikit-learn.org/stable/ (可是官方文档非常 ...

  7. 强化学习之二:Q-Learning原理及表与神经网络的实现(Q-Learning with Tables and Neural Networks)

    本文是对Arthur Juliani在Medium平台发布的强化学习系列教程的个人中文翻译.(This article is my personal translation for the tutor ...

  8. Python 随机(random)模块的不可预测之美

    1 . 概念 1.1 真.伪随机数 大部分的计算机语言都会提供 API 生成随机数,此类 API 称为随机数生成器. 计算机可以用随机数模拟现实世界中的各种随机概率问题,没有随机生成器的编程语言不是& ...

  9. 【算法总结】强化学习部分基础算法总结(Q-learning DQN PG AC DDPG TD3)

    总结回顾一下近期学习的RL算法,并给部分实现算法整理了流程图.贴了代码. 1. value-based 基于价值的算法 基于价值算法是通过对agent所属的environment的状态或者状态动作对进 ...

  10. 【整理】强化学习与MDP

    [入门,来自wiki] 强化学习是机器学习中的一个领域,强调如何基于环境而行动,以取得最大化的预期利益.其灵感来源于心理学中的行为主义理论,即有机体如何在环境给予的奖励或惩罚的刺激下,逐步形成对刺激的 ...

随机推荐

  1. mac下python3.7安装mysqlclient出错解决

    错误信息 Building wheel for mysqlclient (setup.py) ... error ERROR: Command errored out with exit status ...

  2. Netty 框架学习 —— 初识 Netty

    Netty 是一款异步的事件驱动的网络应用程序框架,支持快速地开发可维护的高性能的面向协议的服务器和客户端 Java 网络编程 早期的 Java API 只支持由本地系统套接字库提供的所谓的阻塞函数, ...

  3. 创建DOM节点时出现错误信息:box.appendChild is not a function

    1.代码正常书写如下 <div class="box"></div> <!-- JavaScript代码 --> <script> ...

  4. 2018年第九届 蓝桥杯C组 C/C++决赛题解

    蓝桥杯历年国赛真题汇总:Here 1.年龄问题 s夫人一向很神秘.这会儿有人问起她的年龄,她想了想说: "20年前,我丈夫的年龄刚好是我的2倍,而现在他的年龄刚好是我的1.5倍". ...

  5. 活动回顾|阿里云 Serverless 技术实战与创新广州站回放&PPT下载

    7月8日"阿里云 Serverless 技术实战与创新"广州站圆满落幕.活动受众以关注Serverless 技术的开发者.企业决策人.云原生领域创业者为主,活动形式为演讲.动手实操 ...

  6. S3C2440移植uboot之启动过程概述

      上节烧写了uboot到开发板,不能运行.这节我们分析uboot重新编译uboot,由最后一条链接命令开始分析uboot 目录 1.分析start.S 2._start会跳转到start_code处 ...

  7. freeswitch的gateway实现出中继的主备方案

    概述 freeswitch是一款简单好用的VOIP开源软交换平台. 某些呼叫场景中,我们有2条出中继线路可选,2条出中继需要按照主备模式来配置,优先使用主中继呼叫,当主中继出现问题时,呼叫自动转移到备 ...

  8. 开源项目《Elight.MVC-ASP.NET》的研究学习

    一   观看效果 将源码下载来后,发现不能直接运行,读了一下md文件,发现还要做自己一些改动. 由于我本机是sqlserver,  所以我改了下 appsetting.json 里要使用的数据库,然后 ...

  9. docker 镜像管理之 overlay2 最佳实践

    1. Docker 镜像 Docker 镜像是个只读的容器模板,它组成了 Docker 容器的静态文件系统运行环境 rootfs,是启动 Docker 容器的基础. Docker 镜像是容器的静态视角 ...

  10. Nacos源码 (4) 配置中心

    本文阅读nacos-2.0.2的config源码,编写示例,分析推送配置.监听配置的原理. 客户端 创建NacosConfigService对象 Properties properties = new ...