caffe2(caffe2和caffe的区别)
大家好,关于caffe2很多朋友都还不太明白,不知道是什么意思,那么今天我就来为大家分享一下关于caffe2和caffe的区别的相关知识,文章篇幅可能较长,还望大家耐心阅读,希望本篇文章对各位有所帮助!
1ubuntu 安装 caffe2 时总会报错
步骤1:安装所需的依赖库
1
命令如下。
(1)sudo apt-get update
(2)sudo apt-get install -y --no-install-recommends \
build-essential \
cmake \
git \
libgoogle-glog-dev \
libprotobuf-dev \
protobuf-compiler \
python-dev \
python-pip
(3)sudo pip install numpy protobuf
END
步骤2:可选的GPU支持
1
概述。如果您打算使用GPU而不是CPU,那么您应该安装NVIDIA CUDA 8和cuDNN v5.1或v6.0,这是GPU加速的世早深度神经网络的原生类型库。
2
首先更新您的显卡驱动程序(NVIDIA CUDA 8)! 否则您可能会遇到各种难以诊断的错误。
1、适用Ubuntu 16.04的命令行。
(1)sudo apt-get update sudo apt-get install wget -y --no-install-recommends
(2)wget ""
(3)sudo dpkg -i cuda-repo-ubuntu1604_8.0.61-1_amd64.deb
(4)sudo apt-get update
(5)sudo apt-get install cuda
2、适用Ubuntu 14.04的命令行。
(1)sudo apt-get update sudo apt-get install wget -y --no-install-recommends
(2)wget ""
(3)世返弊sudo dpkg -i cuda-repo-ubuntu1404_8.0.61-1_amd64.deb
(4)sudo apt-get update
(5)sudo apt-get install cuda
3
安装cuDNN(适用所有Ubuntu版本)。
(1)CUDNN_URL=""
(2)wget ${CUDNN_URL}
(3)sudo tar -xzf cudnn-8.0-linux-x64-v5.1.tgz -C /usr/local
(4)rm cudnn-8.0-linux-x64-v5.1.tgz sudo ldconfig
END
步骤3:可选依赖库
libgflags库安装。注意:libgflags2是用于Ubuntu 14.04;libgflags-dev是用于Ubuntu 16.04。这两个不能搞混,否则安装会报错。
(1)适用Ubuntu 14.04的命令搜族行。
sudo apt-get install -y --no-install-recommends libgflags2
(2)适用Ubuntu 16.04的命令行。
sudo apt-get install -y --no-install-recommends libgflags-dev
安装其他可选依赖库(适合Ubuntu 14.04和16.04)。
(1)sudo apt-get install -y --no-install-recommends \
libgtest-dev \
libiomp-dev \
libleveldb-dev \
liblmdb-dev \
libopencv-dev \
libopenmpi-dev \
libsnappy-dev \
openmpi-bin \
openmpi-doc \
python-pydot
(2)sudo pip install \
flask \
future \
graphviz \
hypothesis \
jupyter \
matplotlib \
pydot python-nvd3 \
pyyaml \
requests \
scikit-image \
scipy \
setuptools \
six \
tornado
2怎么学会python库
学习Python库,首先要知道Python库有哪些功能与作用,再了解如何去使用,掌握使用语法,然后再实践,多多使用就可以掌握了,以下是十大比较受欢迎的机器学习库:
1. Pipenv
Pipenv 是 Kenneth Reitz 的业余项目,旨在将其他软件包(例如 npm 和 yarn)整合到 Python 里。它不需要安装 virtualenv, virtualenvwrapper,不用管理 requirements.txt 文件,并且不用确保依赖版本的可复现性。通过 Pipenv,你可以在 Pipfile 中指定依赖项。该工具可生成一个 Pipfile.lock 文件,使你的构建更具确定性,避免产生难以查找的 Bug。
2.PyTorch
PyTorch是Facebook深度学习框架,源于 Torch 框架,同时改善了 Torch 框架,基于ython 语言,由于实现了动态计算图范式, PyTorch 已经成为众多研究人员的首选框架之一,可以计算梯度,而且非常快,可扩展性强。
3. Caffe2
Caffe2 支持分布式含颤训练、部署(即使是在移动平台上),新的 CPU 和支持 CUDA 的硬件。PyTorch 可能更适合做研究,而 Caffe2 更加适合大规模部署,就像在 Facebook 上看到的那样。另外,你可以在 PyTorch 里构谈镇败建并训练模型,同时用 Caffe2 部署。
4. Pendulum
Pendulum 的优势之一在于,它是 Python 标准 datetime 替代品,因此你可以轻松地将其与现有的代码集成,并且在你需要的时候才使用它的功能。Pendulum 的作者特别注意时间分区的处理,默认在每个实例中时间分区是可用的,并且以 UTC 计时。你也可以获得扩展 timedelta 来简化 datetime 的计算。
5. Dash
Dash 是一个可构建 Web 应用,尤其是数据可视化 Web 应用的纯 Python 开源库。它建立在 Flask、Plotly 和 React 之上,并提供这几个框架的函数抽象接口,从而开发者不必学习这些框架,高效开发。这些应用程序可在浏览器和移动设备中使用。
6. PyFlux
PyFlux 是专门针对时间序列开发的 Python 开源库。时间序列研究是统计学和经济学的子领域,其目的是用于描述时间序列的行为,同时也预测时序未来的行为状态。
7. Fire
Fire 是一个开源库,可以为任何 Python 项目自动生成一个命令行界面。你几乎不需要编写任何代码或者文档,你只需要调用一个 Fire 方法并把它传递给你想要的命令行界面:一个函数、一个对象、一个类、一个库,甚至不传递任何参数。
8. imbalanced-learn
imbalanced-learn 是一个 Python 库,它提供了相关的技术来解决数据不平衡的问题。另外,它和 scikit-learn 兼容,并且是 scikit-learn-contrib 项目的一部分,非常有用。
9. FlashText
FlashText 证明旅野了算法和数据结构设计的重要性,即使对于简单的问题,更好的算法也能够轻松超越在快 CPU 上运行的朴素实现。
10. Luminoth
Luminoth 是一个用 TensorFlow 和 Sonnet 构建的开源的计算机视觉 Python 工具包。它可直接支持物体检测,背后支持的模型是 Faster R-CNN。
3caffe是什么意思
Caffe(全称Convolutional Architecture for Fast Feature Embedding)是一个兼具表达性、速度和思维模块化的深度学习框架,由伯源空哪克利人工智能研究小组和伯克利视觉和学习中心开发。虽然其内核是用C++编写的,但Caffe有Python和Matlab相关接口。
Caffe支持多种类型的深度亏悄学习架构,面向图像分类和图像分割,还支持CNN、RCNN、LSTM和全连接神经网络设计。Caffe支持基于GPU和CPU的加速计算内核库,如NVIDIA cuDNN和Intel MKL。
Caffe是一个深度学习框架,最初开发于加利福尼亚大学伯克利分校。Caffe在BSD许可下开源,使用C++编写,带雹码有Python接口。是贾扬清在加州大学伯克利分校攻读博士期间创建了Caffe项目。项目托管于GitHub,拥有众多贡献者。
Caffe应用于学术研究项目、初创原型甚至视觉、语音和多媒体领域的大规模工业应用。雅虎还将Caffe与Apache Spark集成在一起,创建了一个分布式深度学习框架CaffeOnSpark。2017年4月,Facebook发布Caffe2,加入了递归神经网络等新功能。2018年3月底,Caffe2并入PyTorch。
4如何创建新的Operator(2)
本文主要是官方文档中 Basics of Caffe2-Workspaces,Operators,and Nets 的学习笔记。
1. 利用core.CreateOperator函数来创建新的Operator。
单独运行operator的方式是workspace.RunOperatorOnce(op),只有在运行之后才会有数据,刚开始只是定义。
2. 创建一个类似下面计算的网络,纤桐利用core.Net创建。注意与上一篇笔记中ModelHelper方法的区别,上一篇中是自动创建了初始化和前向网络,我们现在做的其实是将二者融合,一边初始化网络,一边进行前向网络的构建,当然对于大型网络还是ModelHelper更为方便,但这也说明了caffe2的灵活性。
(1)创建一个空的网络
net = core.Net("my first net")
(2) 创建一个blob,也就是X(正常是通过读取样本的数据,上一篇中是通过numpy生成的:
X生成的方式也很值得关注,首先他与core.CreateOperator生成的operator格式是完全相同的,我们可以通过net.Proto()查看。其次是他生成的方式与原本不同:通过net调用已有的op,与core.CreateOperator首先指明op的名字,形式上有些不同。最后用core.CreateOperator生成operator需要手动将其加入到net中(net.Proto().op.append(op)),而这种方式返烂会自动完成将op加入net的操作。
最后用那返回的X是什么呢?官网文档说是X是BlobReference类型,主要记录了两个内容:
记录名字,通过str(X)可以获取他的名字
他是从哪漏竖漏个net中生成的。
(3)创建W,b的方式和X一样,创建FC层是需要注意:
这种方式和创建X,W,b本质上是一致的,他等于下面这种方式:
(4) 运行网络的方式和上一篇一致,这里讲到了清空workspace和记录网络运行时间的方法。
5如何评价 Caffe 2
Caffe2更注重模块化,在移动端、大规模部署上表现卓越。如同TensorFlow,Caffe2使用C++Eigen库,支持ARM架构。
用一个实用脚本,Caffe上的模型可轻易地被转变到Caffe2上。Caffe设计的选择使得它处理视觉类型的难题时很完美。Caffe2延续了它对视觉类问题的支持,且增加了轿袜没对自然语言处理、手写识别、时序预测有帮助的RNN和LSTM支持。
期待不久之后能看到Caffe2超越Caffe,就像闭纳它好蔽宣称的那样在深度学习社区流行。
6解决:源码安装caffe时遇到libcudnn.so: file not recognized问题
参考教程(19条消息)ubuntu16.04下Detectron+caffe2(Pytorch)安装配置过程_张家坎的博客-CSDN博客_caffe2_detectron_ops_gpu.dll
安装caffe2
执行sudo make install之后遇到如下问题:
/home/Xdn/cuda-10.0/lib64/libcudnn.so: file not recognized: File truncated
collect2: error: ld returned 1 exit status
caffe2/CMakeFiles/torch_cuda.dir/build.make:264057: recipe for target 'lib/libtorch_cuda.so' failed
make[2]: *** [lib/libtorch_cuda.so] Error 1
CMakeFiles/Makefile2:4032: recipe for target 'caffe2/CMakeFiles/torch_cuda.dir/all' failed
make[1]: *** [caffe2/CMakeFiles/torch_cuda.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2
解决思路:直接在网上搜这个错误没有搜到解决方式,自己分胡型析应该是 /home/Xdn/cuda-10.0/lib64/libcudnn.so出现问题,libcudnn.so文件是安装cudnn时复制进来的,查看路径下该文件发现该文件大小为0,双击打开也是空白,源cudnn文件中的该文件也是如此,于是搜libcudnn.so的解决方法,发现这一篇博客:
这篇博客中针对另一个libcudnn.so文件的问题,我从中发现原来libcudnn.so文件只是一个快捷方式世凳,其链接的应该是其他名称类似libcudnn.so.*的文件,于是根据自己路径下的文件创建了下面两个链接:
(py3.6DensePose) Xdn@xwfx:~/cuda-10.0/lib64$ sudo ln -sf libcudnn.so.7.6.5 libcudnn.so.7
(py3.6DensePose) Xdn@xwfx:~/cuda-10.0/lib64$ sudo ln -sf libcudnn.so.7 libcudnn.so
此时双击libcudnn.so文件不是空白了(我这里是乱码显搜做旅示的文件,但是没关系,不为空就说明链接有效了)
然后再回到之前安装pytorch时的路径执行sudo make install,问题解决。
喜大普奔!才发现这个问题原来这么小,回想自己当时尝试了一个小时没解决就差点把我小心态整崩了,现在想想冷静的分析问题、乐观的心态对于计算机调BUG真的是需要的~感谢源up主!
好了,文章到此结束,希望可以帮助到大家。