精华内容
下载资源
问答
  • Pytorch Tensorflow 区别

    千次阅读 2019-07-26 15:50:43
    图创建调试 赢家:PyTorch 创建运行计算图可能...而在TensorFlow中,图结构是静态的,这意味着图先被“编译”然后再运行。 举一个简单的例子,在PyTorch中你可以用标准的Python语法编写一个for循环结构 f...

    https://zhuanlan.zhihu.com/p/28636490


    图创建和调试

    赢家:PyTorch

    创建和运行计算图可能是两个框架最不同的地方。在PyTorch中,图结构是动态的,这意味着图在运行时构建。而在TensorFlow中,图结构是静态的,这意味着图先被“编译”然后再运行。

    举一个简单的例子,在PyTorch中你可以用标准的Python语法编写一个for循环结构

    for _ in range(T):
        h = torch.matmul(W, h) + b

    此处T可以在每次执行代码时改变。而TensorFlow中,这需要使用“控制流操作”来构建图,例如tf.while_loop。TensorFlow确实提供了dynamic_rnn用于常见结构,但是创建自定义动态计算真的更加困难。

    PyTorch中简单的图结构更容易理解,更重要的是,还更容易调试。调试PyTorch代码就像调试Python代码一样。你可以使用pdb并在任何地方设置断点。调试TensorFlow代码可不容易。要么得从会话请求要检查的变量,要么学会使用TensorFlow的调试器(tfdbg)。

     

     

    灵活性

    tensorflow:静态计算图,数据参数在CPU与GPU之间迁移麻烦,调试麻烦
    pytorch:动态计算图,数据参数在CPU与GPU之间迁移十分灵活,调试简便

    计算速度
    同等条件下:
    tensorflow 在CPU上运行速度比 pytorch 快
    tensorflow 在GPU上运行速度和 pytorch 差不多

    依赖库
    tensorflow:支持更多库函数,比如图像数据预处理方式会更多
    pytorch:正在扩充,未来和tensorflow应该差别不大

    数据加载
    tensorflow:API设计庞大,使用有技巧,但有时候不能直接把数据加载进TensorFlow
    pytorch:API整体设计粗糙,但加载数据的API设计很友好。加载数据的接口由一个数据集、一个取样器和一个数据加载器构成。
     

    设备管理

    tensorflow:不需要手动调整,简单
    pytorch:需要明确启用的设备
    关于这点,凭个人喜好,我比较喜欢手动启用CUDA_VISIBLE_DEVICES,我个人对内存、显存的管理较严

    Pytorch:

    os.environ["CUDA_VISIBLE_DEVICES"] = "2"

    model = nn.DataParallel(model, device_ids=self.config.device_ids).cuda()

     

    设备管理 2 

    赢家:TensorFlow

    TensorFlow的设备管理非常好用。通常你不需要进行调整,因为默认的设置就很好。例如,TensorFlow会假设你想运行在GPU上(如果有的话)。而在PyTorch中,即使启用了CUDA,你也需要明确把一切移入设备。

    TensorFlow设备管理唯一的缺点是,默认情况下,它会占用所有的GPU显存。简单的解决办法是指定CUDA_VISIBLE_DEVICES。有时候大家会忘了这一点,所以GPU在空闲的时候,也会显得很忙。

    在PyTorch中,我发现代码需要更频繁的检查CUDA是否可用,以及更明确的设备管理。在编写能够同时在CPU和GPU上运行的代码时尤其如此。以及得把GPU上的PyTorch变量转换为Numpy数组,这就显得有点冗长。

    numpy_var = variable.cpu().data.numpy()

     

     

    展开全文
  • 一文说清楚pytorch和tensorFlow区别究竟在哪里

    万次阅读 多人点赞 2018-11-19 23:05:52
    首先我们要搞清楚pytorch和TensorFlow的一点区别,那就是pytorch是一个动态的框架,而TensorFlow是一个静态的框架。何为静态的框架呢?我们知道,TensorFlow的尿性是,我们需要先构建一个TensorFlow的计算图,构建好...

    最近用了一点pytorch,想着稍稍理一下,这样一个和TensorFlow抗衡的一个框架,究竟是何方神圣?

    首先我们要搞清楚pytorch和TensorFlow的一点区别,那就是pytorch是一个动态的框架,而TensorFlow是一个静态的框架。何为静态的框架呢?我们知道,TensorFlow的尿性是,我们需要先构建一个TensorFlow的计算图,构建好了之后,这样一个计算图是不能够变的了,然后我们再传入不同的数据进去,进行计算。这就带来一个问题,就是固定了计算的流程,势必带来了不灵活性,如果我们要改变计算的逻辑,或者随着时间变化的计算逻辑,这样的动态计算TensorFlow是实现不了的,或者是很麻烦。

    但是pytorch就是一个动态的框架,这就和python的逻辑是一样的,要对变量做任何操作都是灵活的。

    举个简单的例子,当我们要实现一个这样的计算图时:

    用TensorFlow是这样的:

    而用pytorch是这样的:

    当然,里面都包含了建立前向计算图,传入变量数据,求梯度等操作,但是显而易见,pytorch的代码更为凝练。TensorFlow我也用得比较少,我本文重点说说pytorch的一些学习心得,一是总结,而是若有缘人能看见此文,也能当个参考。

    其实一个好的框架应该要具备三点:对大的计算图能方便的实现;能自动求变量的导数;能简单的运行在GPU上;pytorch都做到了,但是现在很多公司用的都是TensorFlow,而pytorch由于比较灵活,在学术科研上用得比较多一点。鄙人认为可能,Google可能下手早一些,而Facebook作后来者,虽然灵活,但是很多公司已经入了TensorFlow的坑了,要全部迁移出来还是很费功夫;而且,TensorFlow在GPU的分布式计算上更为出色,在数据量巨大时效率比pytorch要高一些,我觉得这个也是一个重要的原因吧。

    好的,不闲扯了。pytorch的一些心得,我总结一下:

    首先,pytorch包括了三个层次:tensor,variable,Module。tensor,即张量的意思,由于是矩阵的运算,十分适合在GPU上跑。但是这样一个tensor为什么还不够呢?要搞出来一个variable,其实variable只是tensor的一个封装,这样一个封装,最重要的目的,就是能够保存住该variable在整个计算图中的位置,详细的说:能够知道计算图中各个变量之间的相互依赖关系。什么,你问这有什么用?当然是为了反向求梯度了;而Module,是一个更高的层次,如果使用这个Module,那可厉害了,这是一个神经网络的层次,可以直接调用全连接层,卷积层,等等神经网络。

    感觉写不完了,有人看再更吧,如果又兴趣的话,可以去看我的这一课https://blog.csdn.net/ibelieve8013/article/details/84206410的导图,只要你认真看,真的很清晰的。

    展开全文
  • PyTorch和TensorFlow渴望模式下的MNIST交互式示例 修改自PyTorch MNIST官方示例。 在急切的执行模式下使用TensorFlow重新创建。 具有详细的评论交互式界面。 结构 pytorch/ train.py # Train the model model.py...
  • pytorch tensorflow区别和选择

    千次阅读 2019-10-24 23:32:15
    pytorch tensorflow区别 1图的创建及调试 pytorch 图结构的创建是动态的,即图是运行时创建;更易调试pytorch代码,调试pytorch代码就像调试python代码一样,可以利用pdp在任何地方设置断点; tensorflow ...

    pytorch 和 tensorflow的区别

    1 图的创建及调试

           pytorch 图结构的创建是动态的,即图是运行时创建;更易调试pytorch代码,调试pytorch代码就像调试python代码一样,可以利用pdp在任何地方设置断点;

           tensorflow 图结构的创建是静态的,即图首先被"编译",然后在运行;不易调试要么从会话请求检查变量,要么学习使用tfdbg调试器;

    2  灵活性

            tensorflow:静态计算图,数据参数在CPU与GPU之间迁移麻烦,调试麻烦
                 pytorch:动态计算图,数据参数在CPU与GPU之间迁移十分灵活,调试简便

    3 设备管理---------------内存 显存

            tensorflow:不需要手动调整,简单

    TensorFlow的设备管理非常好用。通常你不需要进行调整,因为默认的设置就很好。例如,TensorFlow会假设你想运行在GPU上(如果有的话);

    TensorFlow设备管理唯一的缺点是,默认情况下,它会占用所有的GPU显存。简单的解决办法是指定CUDA_VISIBLE_DEVICES。有时候大家会忘了这一点,所以GPU在空闲的时候,也会显得很忙。
           pytorch:需要明确启用的设备,启用CUDA时,需要明确把一切移入设备;

                缺点:代码需要频繁的检查CUDA是否可用,及明确的设备管理,在编写能同时在CPU和GPU上运行的代码时尤其如此

    关于这点,凭个人喜好,我比较喜欢手动启用CUDA_VISIBLE_DEVICES,我个人对内存、显存的管理较严;

    reference: https://blog.csdn.net/bl128ve900/article/details/97392868

     

    区别详解

    tensorflow是谷歌开源的深度学习框架,有全面且详细的文档

    pytorch是facebook开源的深度学习框架,

    区别1 动态图及静态图的定义及调试方面

    tensorflow是静态图,我们需要先构建一个tensorflow的计算图,构建好以后,这样一个计算图是不能变的,然后我们在传入不同的数据进行计算;这样带来一个问题:固定了计算流程(计算图),势必带来不灵活,如果我们想改变计算逻辑,将变得很麻烦!

    具体来说:在tensorflow中,首先构架张量的计算图维度及给变量分配占位符,接着必须运行会话才能计算所有计算结果,并且不容易调试

    pytorch是动态图,可以和python的逻辑是一样的,要对变量做任何操作都是灵活的。

    一个好的框架应该要具备三点:方便实现大计算图;可自动求变量的导数;可简单的运行在GPU上;pytorch都做到了,但是现在很多公司用的都是TensorFlow,而pytorch由于比较灵活,在学术科研上用得比较多一点。鄙人认为可能,Google可能下手早一些,而Facebook作后来者,虽然灵活,但是很多公司已经入了TensorFlow的坑了,要全部迁移出来还是很费功夫;而且,TensorFlow在GPU的分布式计算上更为出色,在数据量巨大时效率比pytorch要高一些,我觉得这个也是一个重要的原因吧。

    pytorch胜过TensorFlow

    区别2:可视化方面

    可视化是理解模型性能和工作的关键。 tensorboard具有图形和模型的实时表示功能,非常方便;不仅可以获得神经网络的图形表示,还能够获得实时的损失和准确度图,用以描绘模型在特定迭代中的精确度。

    pytorch和tensorflow起鼓相当

    区别3 部署

    tensorflow强于pytorch

    具体表现:内置框架 TensorFlow Serving 帮助我们在特制的 gPRC 服务器上部署需要的模型,同时支持移动端部署模型;

                        同样支持分布式训练;

    pytorch: 在部署时需要Flask或其他工具在模型上编写一个REST API

                        pytorch的分布式训练支持性能不理想

    区别4 数据并行-----------很重要的区别之一

    PyTorch 是声明式数据并行:用 torch.nn.DataParellel 封装任何模型,模型能在批处理维度上实现并行,这样你就可以毫不费力的使用多个 GPU;

    tensorflow需要手动调整数据并行

    note: 两个框架都支持分布式执行,提供用于定义集群的高水平界面

    区别5 pytorch更像一个框架,tensorflow更像一个库

    pytorch搭建模型时,编写框架会在特定区域为我们提供有用的抽象,用以解决具体问题;如引入datasets模块,它包含的封装器适用于DL架构的常见数据集;nn.Module用于搭建自定义模型;torch.nn包包含很多可用模块,作为构架模型的基础;pytorch用面向对象的方式定义基本程序块,通过扩展子类来构建DL框架

    tensorflow给人的感觉更像一个库,所有操作都是低阶操作,需要些很多样本代码;由此,渐渐出现了一批围绕 TensorFlow 的高级封装器,如slim tflearn keras estimator等等;你在如何使用 TensorFlow 上有很大的自由度,同样也能自由选择使用最匹配任务的框架;

    小结: TensorFlow 和 PyTorch 都能提供有用的抽象,减少样板代码的数量,加快模型的部署速度;二者的不同之处在于pytorch采用面向对象的方式;tensorflow有多种选择方式。

    总结: tensorflow是谷歌开源的一款成熟强大的DL框架,有强大的可视化功能,高水平模型开发,强大的部署选项,支持移动平台,适用于以下情况:

    (1)开发用于生产的模型; (2)开发需要在移动平台上部署的模型;(3)想要非常好的社区支持和较为全面的帮助文档;

    (4) 想要丰富的多种形式的学习资源  (5) 想要或需要使用 Tensorboard  (6) 需要用到大规模的分布式模型训练

    pytorch是facebook开源的一款强大的DL框架,适用于以下情况:

    (1)正在做机器学习研究,或开发的产品在非功能性需求方面要求不高;(2) 想要获得更好的开发和调试经验;

    (3)喜欢很有“Python 味”的东西

    建议: 

            PyTorch因其动态的计算方法和简单性而越来越受欢迎。 建议初学者在继续使用TensorFlow之前在PyTorch上工作,这有助于他们专注于模型而不是花时间构建图形。

    reference: 

                     https://zhuanlan.zhihu.com/p/37102973

                     https://www.jianshu.com/p/6e42dae05d3b

     

     

     

     

     

     

     

     

     

     

     

     

     

    展开全文
  • Conda下安装pytorch和tensorflow首先安装Anaconda进入Anaconda Prompt创建两个虚拟环境pytorch和tensorflow1:分别在两个虚拟环境下安装pytorch和tensorflow2:在虚拟环境中配置jupyter notebook的kernel,这样才能...

    首先安装Anaconda

    进入Anaconda Prompt创建两个虚拟环境pytorch和tensorflow

    分别在两个虚拟环境下安装pytorch和tensorflow

    在这里插入图片描述

    在虚拟环境中配置jupyter notebook的kernel,这样才能使得在jupyter中使用pytorch和tensorflow.

    Conda创建虚拟环境:
    • 创建环境

    conda create -n 环境名 python=3.7 
    

    • 激活环境

    source activate 环境名 
    

    • 安装依赖

    pip install -r requirements.txt 
    

    • 退出环境

    source deactivate 
    

    • 删除环境

    conda remove -n 环境名 --all 
    

    • 删除环境内某个包

    conda remove --name 环境名 包名
    

    利用虚拟环境安装pytorch的后续需要配置的一些文件:

    conda install matplotlib
    conda install scipy
    conda  install scikit-image
    conda install tqdm
    conda install h5py
    
    展开全文
  • 1.安装Anaconda 安装包:Anaconda3-5.3.1-Linux-x86_64 链接:https://pan.baidu.com/s/16JzJ6qJF9HYze-akD5s_GQ 提取码...安装pytorch 因为国外网站下载pytorch包太慢,所以添加以下镜像 conda config --add channels ...
  • 从早期的学术成果 Caffe Theano ,到背靠庞大工业支持的 PyTorch TensorFlow,大量的选择让我们很难跟踪最流行的框架到底是哪个。 如果你平常只看 Reddit,可能会认为每个人都在切换到 PyTorch。如果...
  • 访问管理PyTorch和TensorFlow数据集的最快方法。 轻松构建可伸缩的数据管道。 Hacktoberfest在这里。 查看我们的Hacktoberfest项目仪表板以做出贡献! 访问管理PyTorch和TensorFlow Hub数据集的最快方法是最快地...
  • functional-zoo, PyTorch和Tensorflow功能模型定义 功能动物园PyTorch和Tensorflow的模型定义pretrained权重PyTorch,与 lua Torch 不同,具有 autograd,所以使用 torch.nn 模块的模块结构不是必要的,可以轻松...
  • TorchAndTensorflow 实现与pytorch和tensorflow相同的主题
  • CubbyNLP PyTorch和TensorFlow的自然语言处理实现列表
  • 顶使用 PyTorchTensorflow/PyTorch 的论文比率——2019 年PyTorch 中实现了大多数研究 简单。它与 numpy 类似,非常具有 python 风格,并且可以轻松地与其他 Python 生态系统集成。 很棒的 API。与 ...
  • 1.输入变量x pytorch (数据量,通道数,长,宽) tensorflow(数据量,长,宽,通道数)
  • VaporBoxCheck Pytorch和Tensorflow对象检测应用程序 在不同系统上运行后获得的VaporBoxCheck结果: Windows结果: Ubuntu结果: MacOS结果:
  • 阅读笔记系列:《深度学习入门基于pytorch和tensorflow的理论与实现》
  • 本资源包含了基本深度学习的入门资源和pytorch 以及tensorflow框架相关的代码材料,都是非常适合新手入门深度学习的
  • 原标题:PyTorch和TensorFlow哪家强:九项对比读懂各自长项短板文章来源:斯坦福大学计算机科学系博士生 Awni Hannun这篇指南主要介绍了我找到的 PyTorch TensorFlow 之间的不同之处。这篇文章的目的是帮助那些想...
  • ML_Projects 使用sklearn,pytorch和tensorflow的机器学习项目
  • PyTorch和TensorFlow 2.0的最新自然语言处理PyTorch和TensorFlow 2.0的语言处理:hugging_face:变形金刚(以前称为pytorch变形金刚和pytorch-pretrained-bert)提供了最新的通用架构(BERT,GPT-2,RoBERTa,XLM,...
  • tensorflow并python3+pytorch&TensorFlow 这篇文章主要是写给自己的一点记录使用linux服务器的备忘录,由于linux服务器已有的环境网络的环境的限制,可能本文中所涉及的方法,大家并不适用,因此我也就...
  • 介绍深度学习是机器学习的一个分支。深度学习的独特之处在于它带来的准确效率。当使用大量数据进行训练时,...PyTorch TensorFlow 如何比较斜坡上升时间正如《悲伤海狸》所指出,Tensorflow基本上是一种嵌入...
  • NumPy,Pandas,PyTorch和TensorFlow中自然语言处理的数据集评价指标 自然语言处理的数据集评估指标兼容 NumPy、Pandas、PyTorch TensorFlow :graduation_cap: Colab 教程:...
  • PyTorch和Tensorflow中实现了多个生成对抗网络(GAN)。 ,以获取有关Generative Networks的介绍。 香草甘氨酸 在这个项目中发现的香草GAN是根据Goodfellow等人的原始论文《 开发的。 这些在上进行了训练,并...
  • 问题:pytoch和tensorflow的cuda版本如果不一致,但是.bashrc中只能一次设置一个cuda路径。每次激活tensorflow或者pytorch的虚拟环境时,要重新去.bashrc文件中添加对应环境的cuda路径,这样非常的麻烦。 解决方法:...
  • Pytorch(1) pytorch和tensorflow里面的maxpool

    千次阅读 2018-02-02 11:39:23
    pytorch和tensorflow所含的maxpool,虽然名字相同,但是功能是不一样。之前在用pytorch复现darknet里面的yolo-v2时才发现这个问题。在yolov2的第六个maxpool的时候,kernel为2,stride为1,所以 按道理来说呢,输出...
  • Threepio使在机器学习框架(例如PyTorchTensorflow.js和Tensorflow Python)之间转换命令变得非常简单。 它充当的核心组件。 该库提供的一些改变生活的功能包括: :robot: 相同名称的命令之间的自动双向翻译...
  • 该存储库包含EmbraceNet模型的官方基于PyTorch和TensorFlow的实现,下面的白皮书对此进行了说明。 J.-H. 崔J.-S. 李EmbraceNet:健壮的深度学习体系结构,用于多模式分类。 信息融合,第一卷。 51页,第259-270页...
  • pytorch和tensorflow离线下载

    千次阅读 2020-04-25 17:52:02
    https://download.pytorch.org/whl/torch_stable.html

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 37,687
精华内容 15,074
关键字:

pytorch和tensorflow的区别