小编Lou*_* Ng的帖子

观察意义 - OpenAI Gym

我想知道CartPole-v0OpenAI Gym 中观察的规范(https://gym.openai.com/)。

例如,在以下代码中输出observation. 一种观察就像[-0.061586 -0.75893141 0.05793238 1.15547541]我想知道数字的含义。我想以任何方式知道其他的规范,Environments例如MountainCar-v0MsPacman-v0等等。

我试图阅读https://github.com/openai/gym,但我不知道。你能告诉我知道规格的方法吗?

import gym
env = gym.make('CartPole-v0')
for i_episode in range(20):
    observation = env.reset()
    for t in range(100):
        env.render()
        print(observation)
        action = env.action_space.sample()
        observation, reward, done, info = env.step(action)
        if done:
            print("Episode finished after {} timesteps".format(t+1))
            break
Run Code Online (Sandbox Code Playgroud)

(来自https://gym.openai.com/docs

输出如下

[-0.061586   -0.75893141  0.05793238  1.15547541]
[-0.07676463 -0.95475889  0.08104189  1.46574644]
[-0.0958598  -1.15077434  0.11035682  1.78260485]
[-0.11887529 -0.95705275  0.14600892  1.5261692 …
Run Code Online (Sandbox Code Playgroud)

python machine-learning reinforcement-learning deep-learning openai-gym

9
推荐指数
2
解决办法
6875
查看次数

如何使用 ZeroMQ PUB / SUB 设置发送字节消息?

所以我是 ZeroMQ 的新手,我正在尝试使用 ZeroMQ 发送字节消息PUB / SUB设置使用 ZeroMQ 发送字节消息。

编程语言的选择对于这个问题并不重要,因为我使用 ZeroMQ 进行多种语言之间的通信。

这是我的服务器代码:

import zmq
import time

port = "5556"
context = zmq.Context()
socket = context.socket(zmq.PUB)
socket.bind("tcp://*:%s" % port)
while True:
    socket.send(b'\x84\xa5Title\xa2hi\xa1y\xcb\x00\x00\x00\x00\x00\x00\x00\x00\xa1x\xcb@\x1c\x00\x00\x00\x00\x00\x00\xa4Data\x08')
    time.sleep(1)
Run Code Online (Sandbox Code Playgroud)

这是我的 python 客户端代码:

import zmq

context = zmq.Context()
socket = context.socket(zmq.SUB)
socket.connect("tcp://localhost:5556")

total_value = 0
for update_nbr in range (5):
    string = socket.recv()
    print (string)
Run Code Online (Sandbox Code Playgroud)

我的客户只是阻止string = socket.recv()

我已经做了一些研究,所以显然,如果我要使用PUB / SUB设置发送字符串,我需要设置一些“主题过滤器”才能使其工作。但如果我要发送一些字节消息,我不确定该怎么做。

distributed-computing zeromq low-latency pyzmq

6
推荐指数
1
解决办法
4088
查看次数

如何转储HTTP GET请求的响应并将其写入http.ResponseWriter

我正在尝试这样做以转储HTTP GET请求的响应,并将相同的响应写入http.ResponseWriter。这是我的代码:

package main

import (
    "net/http"
    "net/http/httputil"
)

func handler(w http.ResponseWriter, r *http.Request) {
    resp, _ := http.Get("http://google.com")
    dump, _ := httputil.DumpResponse(resp,true)
    w.Write(dump)
}

func main() {
    http.HandleFunc("/", handler)
    http.ListenAndServe(":8080", nil)
}
Run Code Online (Sandbox Code Playgroud)

我得到了一整页的google.com的HTML代码,而不是Google的首页。有没有办法可以达到类似代理的效果?

proxy go http-proxy

3
推荐指数
1
解决办法
1680
查看次数

Django 根据另一列将小数四舍五入到 n 位小数

所以我使用 PostgreSQL 和 Django 以及以下模型

class Example(model.Model):
    num = models.DecimalField(max_digits=20, decimal_places=10)
    round_to= models.IntegerField()
Run Code Online (Sandbox Code Playgroud)

我想要实现的是:

Example.objects.annotate(rounded = Round(F('num'),F('round_to'))
Run Code Online (Sandbox Code Playgroud)

但似乎该Round函数只允许我四舍五入为整数。根据:https://docs.djangoproject.com/en/3.0/ref/models/database-functions/#round

python django django-models

2
推荐指数
1
解决办法
2362
查看次数

在 Golang 中运行外部 python,捕获连续的 exec.Command Stdout

所以我的 go 脚本会像这样调用一个外部 python

cmd = exec.Command("python","game.py")
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
go func(){
    err := cmd.Run()
    if err != nil{
    panic(err)
    }
}()
Run Code Online (Sandbox Code Playgroud)

它同时运行我的 python 脚本,这很棒。但是现在的问题是,我的python脚本会无限运行,不时会打印出一些信息。我想“捕获”这些 Stdout 并将它们打印在我的 golang 终端上。我如何同时执行(无需等待我的 python 脚本退出)?

go

1
推荐指数
1
解决办法
7021
查看次数