我想知道CartPole-v0OpenAI Gym 中观察的规范(https://gym.openai.com/)。
例如,在以下代码中输出observation. 一种观察就像[-0.061586 -0.75893141 0.05793238 1.15547541]我想知道数字的含义。我想以任何方式知道其他的规范,Environments例如MountainCar-v0,MsPacman-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
所以我是 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设置发送字符串,我需要设置一些“主题过滤器”才能使其工作。但如果我要发送一些字节消息,我不确定该怎么做。
我正在尝试这样做以转储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的首页。有没有办法可以达到类似代理的效果?
所以我使用 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
所以我的 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 ×2
python ×2
django ×1
http-proxy ×1
low-latency ×1
openai-gym ×1
proxy ×1
pyzmq ×1
zeromq ×1