关于使用实验室服务器的GPU以及跑上TensorFlow代码
连接服务器
Windows - XShell XFtp SSH
- 通过SSH来连接实验室的服务器
- 使用SSH连接已经不陌生了 github和OS课设都经常使用
- 目前使用 192.168.7.169
- 使用工具 XShell 和 XFtp
- 使用XShell连接服务器以及操作,服务器每个节点上都安装了Ubuntu 16.04 LTS操作系统
- 使用XFtp管理文件
Mac OS - Terminal Cyberduck
因为实验室工位上的电脑是Mac 只能重新熟悉一波了
- 使用Terminal来建立SSH远程连接
- 使用Cyberduck来建立SFtp连接管理文件(考虑filezilla中)
- 参考资料:
Mac下如何用SSH连接远程Linux服务器(包括Cyberduck下载)
Mac下使用自带终端SSH功能
建立环境 - virtualenv
- 建立虚拟环境并安装包(也可以考虑anaconda)
建立环境:virtualenv xxx_pyvirtualenv -p python3 xxx_py
进入环境:source xxx_py/bin/activate
退出:deactivate - 使用清华镜像
- 临时使用
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package - 设为默认
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
让TensorFlow代码跑在GPU上
- GPU占用问题
TensorFlow可能会占用视线可见的所有GPU资源
- 查看gpu占用情况:
gpustat - 在python代码中加入:
os.environ['CUDA_VISIBLE_DEVICES'] = '0'
os.environ['CUDA_VISIBLE_DEVICES'] = '0,1'
- 设置使用固定的gpu:
CUDA_VISIBLE_DEVICES=1 Only device 1 will be seen
CUDA_VISIBLE_DEVICES=0,1 Devices 0 and 1 will be visible
CUDA_VISIBLE_DEVICES=”0,1” Same as above, quotation marks are optional
CUDA_VISIBLE_DEVICES=0,2,3 Devices 0, 2, 3 will be visible; device 1 is masked
运行代码时
CUDA_VISIBLE_DEVICES=0 python3 main.py
- TensorFlow自己提供的两种控制GPU资源的方法:
- 在运行过程中动态申请显存,需要多少就申请多少
config = tf.ConfigProto()
config.gpu_options.allow_growth = True
session = tf.Session(config=config)
- 限制GPU的使用率
gpu_options=tf.GPUOptions(per_process_gpu_memory_fraction=0.4)
config=tf.ConfigProto(gpu_options=gpu_options)
session = tf.Session(config=config)
TensorFlow代码
目前没有考虑在代码各个部分手动分配时GPU还是CPU
所以用with tf.device(self.device):把所有网络结构包了起来
然后用config = tf.ConfigProto(gpu_options=gpu_options,allow_soft_placement=True)让TensorFlow自己去分配了参考资料:
tensorflow设置gpu及gpu显存使用
TensorFlow 使用 GPU
tensorflow GPU小测试
关于使用实验室服务器的GPU以及跑上TensorFlow代码的更多相关文章
- 查看是否用GPU跑的TensorFlow程序
查看是否用GPU跑的TensorFlow程序 第一种方法,直接输出日志法(推荐) import tensorflow as tf sess = tf.Session(config=tf.ConfigP ...
- hadoop进阶----hadoop经验(一)-----生产环境hadoop部署在超大内存服务器的虚拟机集群上vs几个内存较小的物理机
生产环境 hadoop部署在超大内存服务器的虚拟机集群上 好 还是 几个内存较小的物理机上好? 虚拟机集群优点 虚拟化会带来一些其他方面的功能. 资源隔离.有些集群是专用的,比如给你三台设备只跑一个 ...
- git将本地代码 和服务器git@osc 上的代码 关联
将本地代码 和服务器git@osc 上的代码 关联 要使用git 首先,你得安装一个git 下载 http://git-scm.com/downloads 安装完成后,需要简单的配置一下,打开 Git ...
- 在linux服务器上装svn版本管理,自动部署代码到项目
在linux服务器上装svn版本管理,自动部署代码到项目 http://bbs.aliyun.com/read/9715.html?spm=5176.7114037.1996646101.1.W3zw ...
- 关于同步VSS服务器上的代码发生Eclipse里面的项目全部不见了
有次在同步VSS服务器上的代码的时候突然发生了错误(同步的代码的项目竟然消失了)....如下图 Could not open the editor: The file does not exist. ...
- SVN将一台服务器上的代码迁移到另一台服务器上
由于我们出差,需要把svn服务器上的代码同步到我电脑上,自己各种百度折腾了快一天才弄好,下面来分享下我的具体思路和操作步骤.有2种方式:第一种方式:直接将本地自己dowm下来的代码导入到本地svn服务 ...
- JavaScript “跑马灯”抽奖活动代码解析与优化(二)
既然是要编写插件.那么叫做"插件"的东西肯定是具有的某些特征能够满足我们平时开发的需求或者是提高我们的开发效率.那么叫做插件的东西应该具有哪些基本特征呢?让我们来总结一下: 1.J ...
- JavaScript “跑马灯”抽奖活动代码解析与优化(一)
最近的项目中做了一个"跑马灯"的抽奖特效插件.上篇文章已经分享过html和css 的相关知识.这篇文章主要分享一些 JavaScript 相关的知识.这几天在写这篇文章的时候,也顺 ...
- git 从远程git服务上拉代码 git服务器非默认端口
从服务器上拉代码有如下报错: fatal: Not a git repository (or any of the parent directories): .git 初始代本地版本库: [root@ ...
随机推荐
- BZOJ3155:Preprefix sum(线段树)
Description Input 第一行给出两个整数N,M.分别表示序列长度和操作个数 接下来一行有N个数,即给定的序列a1,a2,....an 接下来M行,每行对应一个操作,格式见题目描述 Out ...
- [SQL123] Oracle SQL 统计一定时间间隔内的数据
--Group by State_ts "per X minutes"select to_char(state_ts, 'hh24')||':'||floor(to_char(st ...
- OpenCV——ROI截取、线性混合、通道分离、合并、亮度对比度调整
#include <opencv2/opencv.hpp> #include <iostream> using namespace cv; using namespace st ...
- OpenCV——基本图形绘制(椭圆、圆、多边形、直线、矩形)
//绘制椭圆 void DrawEllipse(Mat img, double angle) { ; ; ellipse(img, Point(WINDOW_WIDTH / , WINDOW_WIDT ...
- Kafka设计解析(二十一)Kafka水位(high watermark)与leader epoch的讨论
转载自 huxihx,原文链接 Kafka水位(high watermark)与leader epoch的讨论 本文主要讨论0.11版本之前Kafka的副本备份机制的设计问题以及0.11是如何解决的. ...
- Python3与Python2的差异
基于python3浅谈python3与python2的差异.由于现今主流Python3,但是之前用Python2做的项目,还得维护,所以作为python工作者,不免要了解其中差异,其中,Python2 ...
- 从CMDB动态获取服务器列表,按照Ansible的约定
目标效果: [root@ansible ~]# python query.py --list{ "test": [ "10.1.2.1", "10.1 ...
- ceph 部署步骤和原理理解
1.ceph的官方源在国外,网速比较慢,此处添加ceph源为阿里源(每个节点上均执行) vim /etc/yum.repos.d/ceph.repo [Ceph] name=Ceph packages ...
- C#抽象类与抽象方法--就是类里面定义了函数而函数里面什么都没有做的类
看一下代码应该就可以了 using System; using System.Collections.Generic; using System.Linq; using System.Text; na ...
- 代码段:js表单提交检测
市面上当然有很多成型的框架,比如jquery的validation插件各种吧.现在工作地,由于前端童鞋也没用这些个插件.根据业务的要求,自己就在代码里写了个简单的表单提交的检测代码(php的也写了一个 ...