栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

[RL] framework

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

[RL] framework

使用 pdb 逐步运行

python -m pdb actor.py --config examples/ppo/cartpole_actor.yaml --use_gpu

用到的库

pickle

实现了用于序列化和反序列化Python对象结构的二进制协议。可以序列化自定义对象。
pickle.dump(obj, file, [protocol]) 序列化对象
pickle.load(file) 反序列化对象

typing
  • 类型检查,防止运行时出现参数和返回值类型不符合。
  • 作为开发文档附加说明,方便使用者调用时传入和返回参数类型。
  • 该模块加入后并不会影响程序的运行,不会报正式的错误,只有提醒。

注意:typing模块只有在python3.5以上的版本中才可以使用,pycharm目前支持typing检查

from typing import List, Tuple, Dict
def add(a:int, string:str, f:float, b:bool) -> Tuple[List, Tuple, Dict, bool]:
    list1 = list(range(a))
    tup = (string, string, string)
    d = {"a":f}
    bl = b
    return list1, tup, d,bl
print(add(5,"hhhh", 2.3, False))
# 结果:([0, 1, 2, 3, 4], ('hhhh', 'hhhh', 'hhhh'), {'a': 2.3}, False)
zmq

通信架构

  • 创建和销毁套接字:zmq_socket(), zmq_close()
  • 配置和读取套接字选项:zmq_setsockopt(), zmq_getsockopt()
  • 为套接字建立连接:zmq_bind(), zmq_connect()
  • 发送和接收消息:zmq_send(), zmq_recv()

设置非阻塞 socket.recv(flags=zmq.NOBLOCK)。zmq.ZMQError 可以替换为 zmq.Again。

while True:
    try:
        msg = subscriber.recv(zmq.NOBLOCK)
    except zmq.ZMQError:
        break

PUB-SUB

  • 使用 SUB 设置一个订阅时,必须使用 zmq_setsockopt() 对消息进行过滤。setsockopt 的详细解释,可参考http://api.zeromq.org/3-2:zmq-setsockopt。
  • PUB 和 SUB 谁 bind 谁 connect 并无严格要求(虽本质并无区别),但仍建议 PUB 使用 bind,SUB 使用 connect
  • 也就是如果 push 的 send 不能 send 出去,就会出现一直阻塞的情况,而 pull 的 recv 也是会一直等待数据的到达,否则无法执行后面的函数。https://blog.csdn.net/weixin_42066185/article/details/103015332
from multiprocessing import Process, Array
  • Process:用于创建进程模块
  • Array:不同的Python进程之间创建共享的内存区域
    m = Array('i',3) 表示开辟 3 个空间,且均为整型 i,其实就是一个列表
    m = Array('i',[1,2,3,4,5]) 表示开辟 5 个空间,同时存入列表中的元素
from itertools import count

从 10 开始无限循环

for i in count(10):
// 10 11 12 13 ...
from pyarrow import serialize
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/529492.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号