zoukankan      html  css  js  c++  java
  • 关于使用实验室服务器的GPU以及跑上TensorFlow代码

    连接服务器

    Windows - XShell XFtp SSH

    1. 通过SSH来连接实验室的服务器
    • 使用SSH连接已经不陌生了 github和OS课设都经常使用
    • 目前使用 192.168.7.169
    1. 使用工具 XShell 和 XFtp
    • 使用XShell连接服务器以及操作,服务器每个节点上都安装了Ubuntu 16.04 LTS操作系统
    • 使用XFtp管理文件
    1. 参考资料:
      Xshell+Xftp SSH隧道代理
      Xshell通过SSH密钥、SSH代理连接Linux服务器详解

    Mac OS - Terminal Cyberduck

    因为实验室工位上的电脑是Mac 只能重新熟悉一波了

    1. 使用Terminal来建立SSH远程连接
    2. 使用Cyberduck来建立SFtp连接管理文件(考虑filezilla中)
    3. 参考资料:
      Mac下如何用SSH连接远程Linux服务器(包括Cyberduck下载)
      Mac下使用自带终端SSH功能

    建立环境 - virtualenv

    1. 建立虚拟环境并安装包(也可以考虑anaconda)
      建立环境:virtualenv xxx_py virtualenv -p python3 xxx_py
      进入环境:source xxx_py/bin/activate
      退出:deactivate
    2. 使用清华镜像
    • 临时使用
      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
    1. 参考资料:
      清华pypi 镜像使用帮助
      virtualenv介绍及基本使用
      Python开发必备神器之一:virtualenv
      virtualenv-廖雪峰的官方网站

    让TensorFlow代码跑在GPU上

    1. 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)  
      
    1. TensorFlow代码
      目前没有考虑在代码各个部分手动分配时GPU还是CPU
      所以用 with tf.device(self.device): 把所有网络结构包了起来
      然后用 config = tf.ConfigProto(gpu_options=gpu_options,allow_soft_placement=True) 让TensorFlow自己去分配了

    2. 参考资料:
      tensorflow设置gpu及gpu显存使用
      TensorFlow 使用 GPU
      tensorflow GPU小测试

  • 相关阅读:
    HDU 5247
    HDU 4965
    CodeForces 445B
    HDU 5835
    CodeForces 731C
    HDU 5783
    CodeForces 660D
    POJ 1631
    HDU 6112
    HDU 5860
  • 原文地址:https://www.cnblogs.com/cookielbsc/p/9780682.html
Copyright © 2011-2022 走看看