疫情期间在家连着实验室的服务器继续学习,用到关于强化学习相关的包 gym 时,在render上出现了问题。

环境:

Ubuntu18.04 服务器
python 3.7.6
gym 0.17.1
jupyter 1.0.0
ipython 7.13.0
matplotlib 3.2.1

用远程开 jupyter notebook 并在 jupyter 中运行 gym 的 env,调用 env.render() 时出现了如下报错:

NoSuchDisplayException: Cannot connect to "None"

在 StackOverflow 上找到了解决方案:

首先在服务器上安装 xvfb ,并用 xvfb 运行可显示的 jupyter notebook:

 $ sudo apt-get install xvfb
$ xvfb-run -s "-screen 0 1400x900x24" jupyter notebook

然后在 jupyter 中加入代码:

 import matplotlib.pyplot as plt
%matplotlib inline
from IPython import display

为显示加上一个函数:

 def show_state(env, step=0, info=""):
plt.figure(3)
plt.clf()
plt.imshow(env.render(mode='rgb_array'))
plt.title("Step: %d %s" % (step, info))
plt.axis('off') display.clear_output(wait=True)
display.display(plt.gcf())

然后在运行过程中将 env.render() 替换为 show_state(env, step, info) 的调用即可。

在任意env.step()函数调用、环境状态改变之后都可以调用show_state函数来展示图像

应将env传入,并可以传入步数step,以及想要显示的信息文字串info

当使用 xvfb-run 时可能遇到上一次调用没有关闭的情况,在 StackOverflow 上也找到了相关解决方法,只要在 xvfb-run 前使用指令:

 $ pkill Xvfb

关掉之前的就可以正常开始新的了。

附 StackOverflow  具体内容网址:

https://stackoverflow.com/questions/40195740/how-to-run-openai-gym-render-over-a-server

https://stackoverflow.com/questions/16726227/xvfb-failed-start-error

在服务器上使用python-gym出现的关于显示的问题的更多相关文章

  1. 远程编写+调试服务器上的Python程序

    原帖参见(需自备梯子):https://webcache.googleusercontent.com/search?q=cache:1htdR2EXj5wJ:https://www.digitaloc ...

  2. 使用Nginx+uwsgi在亚马逊云服务器上部署python+django项目完整版(二)——部署配置及相关知识

    ---恢复内容开始--- 一.前提: 1.django项目文件已放置在云服务器上,配置好运行环境,可正常运行 2.云服务器可正常连接 二.相关知识 1.python manage.py runserv ...

  3. 生产服务器上安装Python

    2018-05-17 生产环境的服务器(以下简称内网服务器)由于安全限制,可能无法连接外网.这种情况下将无法直接使用pip命令安装python的包 一.更改pip源 - 默认pip是使用Python官 ...

  4. Java web项目 上传图片保存到数据库,并且查看图片,(从eclipse上移动到tomact服务器上,之路径更改,包括显示图片和导出excel)

    //项目做完之后,在本机电脑运行完全正常,上传图片,显示图片,导出excel,读取excel等功能,没有任何问题,但是,当打成war包放到服务器上时,这些功能全部不能正常使用. 最大的原因就是,本机测 ...

  5. linux服务器上安装python 3.6.3

    一.下载源码包 地址https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tar.xz 二.解压源码包 1.下载解压工具xz #yum -y ins ...

  6. 使用Postgres,Nginx和Gunicorn将Django配置到服务器上

    先决条件 首先你得先在Digital Ocean上有一台自己的服务器,如果还没有,可参考教程如何在Digital Ocean上申请服务器. 为了方便起见,我将本教程分为两部分.第一部分(步骤1 - 6 ...

  7. 在linux服务器上配置anaconda和Tensorflow,并运行

    1. 查看服务器上的Python安装路径: whereis python 2. 查看安装的Python版本号: python 3. 安装Anaconda: 1)下载 Anaconda2-4.0.0-L ...

  8. Java如何检查文件是否在服务器上被修改了?

    在Java编程中,如何检查文件是否在服务器上被修改了? 以下示例显示如何检查文件是否在服务器上进行了修改. package com.yiibai; import java.net.URL; impor ...

  9. 本地测试html文件时CSS效果显示, 但是当django的服务器上运行时效果不显示

    本地测试时各种效果都显示, 但是当在django服务器上测试时, 效果却不显示, 原因是我将css文件放在一个static文件夹里, 没有在settings中设置static_dir选项.将stati ...

  10. 打包项目成war包并部署到服务器上,项目运行一直显示加载中

    查看服务器上的Tomcat路径下的log 显示 org.apache.catalina.LifecycleException: Failed to initialize component [Conn ...

随机推荐

  1. 大家是怎么做APP接口的版本控制的?欢迎进来看看我的方案。升级版的Versioning

    背景 APP不同于网站,网站程序一发版,所有用户看到的都是最新的页面.调用最新的接口,没有新老版本一说.APP一旦下载到用户手机上,用户不更新你拿他一点办法都没有,但是随着业务的调整,同一个接口的请求 ...

  2. PHP preg_replace_callback() 函数

    preg_replace_callback 函数执行一个正则表达式搜索并且使用一个回调进行替换.高佣联盟 www.cgewang.com 语法 mixed preg_replace_callback ...

  3. luogu P4948 数列求和 推式子 简单数学推导 二项式 拉格朗日插值

    LINK:数列求和 每次遇到这种题目都不太会写.但是做法很简单. 终有一天我会成功的. 考虑类似等比数列求和的东西 帽子戏法一下. 设\(f(k)=\sum_{i=1}^ni^ka^i\) 考虑\(a ...

  4. luogu P2462 [SDOI2007]游戏

    LINK:SDOI2007游戏 题意:接龙前一个要比后面大1 且后一个单词出现的各自字母的次数>=前一个单词各自的字母的次数 考虑暴力dp sort之后dpY 显然会T. 考虑我们没必要枚举j ...

  5. 三类安装VMTools失败的解决方法(Windows、Linux、MacOs)

    前言 写这篇笔记的原因,是前几天在虚拟机 Vmware 中重新安装了几个操作系统,突然发现 VMTools 这个工具成了一个特殊的问题,以前还没有发现,因为通常它就给你自动安装了.但是大多数时候也是需 ...

  6. 关于c/c++指针,指针的指针

    伪军迷祝:建军节快乐! 当调用一个函数时,实际上入参使用的都是副本(除非是引用),指针也不例外.举个例子如: void func(int a, int * p); 当调用func时无论是a还是p其实传 ...

  7. 开源后端数据校验插件Validate.Net,类似Validate.js

    介绍 Validate.Net将Validate.js移植到.Net平台,可以更方便.更快捷的校验实体内属性值是否合法.内置多种常规数据校验规则(校验必填.校验字符串长度区间.校验最大最小值.校验值区 ...

  8. VS c# 操作 Microsoft Project mpp 文件 并遍历边关系

    网上找到资料提供了遍历.mpp文件中任务的功能: http://blog.csdn.net/gxf36/article/details/5253792 ======================== ...

  9. 【NOI2018】归程 题解(kruskal重构树+最短路)

    题目链接 题目大意:给定一张$n$个点$m$条边的无向图.每条边有长度和海拔.有$Q$次询问,每次给定起点$v$和当天水位线$p$,每次终点都是$1$.人可以选择坐车或走路,车只能在海拔大于水位线的路 ...

  10. Linux下关闭防火墙

    1:查看防火状态 **systemctl status firewalld** **service iptables status** 2:暂时关闭防火墙 systemctl stop firewal ...