女排世界杯_1966世界杯 - ezrjnk120.com

python随机种子seed的作用(强化学习常用到)

2025-06-07 14:23:44

先上代码

代码语言:javascript代码运行次数:0运行复制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())输出结果:【每次都会不一样】

代码语言:javascript代码运行次数:0运行复制[ 0.0322836 -0.04638474 0.01553654 0.04217918]

[-0.04618838 0.04793247 0.01464823 -0.02379606] #seed设置为任意整数后,随机值固定,如果设置随机值固定

如果随便设置seed=常数

seed=1 结果都是一样

代码语言:javascript代码运行次数:0运行复制[ 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值就可以记录某次环境的参数,确保跑出程序在下次可以更好复现。

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