TensorFlow2.x 学习笔记(一)框架介绍及环境搭建

历史回顾

2015.9 tf0.1
2017.2 tf1.0
2019春 tf2.0

2015Tensorflow刚发布时 :

  • scikit-learn
    • machine learning
    • no GPU
  • caffe
    • 2013 第一个深度学习的框架
    • no auto grad, base on C++
  • keras
    • api/wrapper
  • Theano
    • 开发和调试困难
  • Torch
    • base on lua,新手不友好

Torch > PyTorch
Caffe2(+FB) > PyTorch(1.x)

Theono(停止开发)(+ Google)> Tensorflow > Tensorflow2.x

2017

  • Tensorflow1.x
  • PyTorch0.1

简单对比 a + b a+b

#tensorflow 1.x
import tensorflow as tf

a = tf.constant(1)
b = tf.constant(3)
c = tf.add(a,b)

with tf.Session() as sess:
	c_val = sess.run(c)
	print(c_val)
#PyTorch
import torch

a = torch.tensor(1.)
b = torch.tensor(3.)
c = torch.add(a, b)

print(c.item())

Tensorflow 1.x:

  • 调试难
  • api混乱
  • 难以精通

2019:

  • Tensorflow2.0
    • Tensorflow+keras
    • ez to use
#tensorflow 2.x
import tensorflow as tf

a = tf.constant(1)
b = tf.constant(3)
c = tf.add(a,b)

print(float(c))
  • tf人多,影响大
  • 学术界使用PyTorch很多

Can learning Tensorflow2.0 without Tensorflow1.x

扫描二维码关注公众号,回复: 8835868 查看本文章

Tensorflow ecosystem:

  • Tensorflow2.0
  • Tensorflowlite
  • Tensorflow.js
  • Tensorflow extend
  • Tensorflow prob
  • TPU Cloud

所以PyTorch 和 Tensorflow2.0选一个掌握就好,但是两个都建议了解

  • Tensorflow + keras > Tensorflow2.x
  • PyTorch + Caffe2 >PyTorch1.x

Why Tensorflow/PyTorch framework?

  • GPU
  • Auto Grad
  • NN API

环境配置

开发环境:

  • anaconda + pycharm pro + Python3.7 + tensorflow2.0

  • 虽然社区版是免费的,但是不能远程调试,所以pycharm还是要专业版,还好学生可以白嫖,问题不大。

软件的安装不提
由于我笔记本gpu太垃圾,tf不支持,所以只能下cpu版的

conda create -n <env_name> python=3.7 tensorflow

这样就在anaconda下新建了一个环境
但是我还有服务器啊~

conda create -n <env_name> python=3.7 tensorflow-gpu

把env_name替换成自己想要的环境名就行了

jupyter虽然很好用,但是还是需要一款IDE,接下来要完成PyCharm本地+远程的配置

本地

  • 本地配置
    创建项目
    添加解释器
    就两步:

    • 选择项目位置
    • 选择解释器

    接下来可以新建一个python文件测试一下是不是安装完成

    import tensorflow as tf
    import os
    
    #如果不喜欢大段大段的输出,可以加上这一行
    #os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
    
    print('GPU', tf.test.is_gpu_available())
    a = tf.constant(2.)
    b = tf.constant(4.)
    
    print(a*b)
    

    GPU可用性这里本地显示的是False,因为本地装的是cpu版的,如果要装GPU版的,还需要安装cudnn和cuda,网上的教程很多,注意版本号,在此不赘述。

远程同步

本地主要就是看看跑不跑的起来,实际上还是要上服务器,接下来主要是pycharm远程访问的配置:
  • 打开deployment的configuration
    config
  • 新建一个配置,选sftp,输入服务器的ip和密码,根目录就选你有权限的的那个目录,也可以autodetect,web那个默认就行。
    sftp_config
  • 设置映射
    local path 是你本地路径
    deployment path 是你相对于root path的相对路径
    mapping
    完成配置,接下来再打开deployment,选择upload to,里面就有你刚刚配置的选项了,这样你就可以将本地代码上传到远程服务器了。

远程调试

  • 接下来配置远程的解释器:
    打开file|settings,在project中找到project interpreter,然后点击下拉栏右侧的设置图标,再点击Add…添加一个新的解释器:
    可以新建,也可以选择之前创建的配置,这里我选择之前创建的
    remote interpreter
    选择远程解释器的路径,我远程用的是conda,要根据自己所使用的环境找到对应的解释器。
    同步文件夹根据自己的需要配置。完成
    remote inter2

    由于实验室有好几张卡,不能贸然测试,先用nvidia-smi看一下哪张卡空着,然后使用以下代码测试,在测试前记得把代码上传同步:

    import tensorflow as tf
    import os
    
    os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
    #将可见的设备选成能用的那张卡
    os.environ['CUDA_VISIBLE_DEVICES'] = "3"
    
    
    print('GPU', tf.test.is_gpu_available())
    a = tf.constant(2.)
    b = tf.constant(4.)
    
    print(a*b)
    print(a+b)
    

    跑通了

    GPU True
    tf.Tensor(8.0, shape=(), dtype=float32)
    tf.Tensor(6.0, shape=(), dtype=float32)
    
    Process finished with exit code 0
    

    更多tensorflow中gpu的使用方法可以简单参考官方文档

发布了73 篇原创文章 · 获赞 13 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/IDrandom/article/details/103916465
今日推荐