❶ 残差网络
残差网络(Resial Network简称ResNet)是在2015年继Alexnet Googlenet VGG三个经典的CNN网络之后提出的,并在ImageNet比赛classification任务上拔得头筹,ResNet因其简单又实用的优点,现已在检测,分割,识别等领域被广泛的应用。
ResNet可以说是过去几年中计算机视觉和深度学习领域最具开创性的工作,有效的解决了随着网络的加深,出现了训练集准确率下降的问题,如下图所示:
做过深度学习的同学应该都知道,随着网络层数的增加而导致训练效果变差的一个原因是梯度弥散和梯度爆炸问题(vanishing/exploding gradients),这个问题抑制了浅层网络参数的收敛。但是这个问题已经通过一些参数初始化的技术较好的解决了,有兴趣的同学可以看参考文献中的以下几篇文章:[2][3][4][5][6]。
但是即便如此,在网络深度较高的时候(例如图中的56层网络)任然会出现效果变差的问题,我们在先前的Alexnet Googlenet VGG三个模型中可以看出,网络的深度在图片的识别中有着至关重要的作用,深度越深能自动学习到的不同层次的特征可能就越多,那到底是什么原因导致了效果变差呢?
Fig. 3
左侧19层的VGG模型的计算量是 19.6 billion FLOPs 中间是34层的普通卷积网络计算量是3.6 billion FLOPs。
右边是34层的ResNet计算量是3.6billion FLOPs,图中实线的箭头是没有维度变化的直接映射,虚线是有维度变化的映射。通过对比可以看出VGG虽然层数不多但是计算量还是很大的,后面我们可以通过实验数据看到34层的ResNet的表现会比19层的更好。
从图中可以看出在效果上,34层的残差网络比VGG和GoogleNet都要好,A,B,C三种方案中C方案效果最好,但是B,C方案在计算量上比A方案要大很多,而效果提升的又很少,所以论文作者建议还是使用A方案较为实用。
下面我们介绍层数在50及以上的残差网络的结构: Deeper Bottleneck Architectures。这种结构是作者为了降低训练时间所设计的,结构对比如下图所示:
ResNet通过残差学习解决了深度网络的退化问题,让我们可以训练出更深的网络,这称得上是深度网络的一个历史大突破吧。也许不久会有更好的方式来训练更深的网络,让我们一起期待吧!
目前,您可以在 人工智能建模平台 Mo 找到基于tensorflow 的34层的残差网络(ResNet)实现样例,数据集是CIFAR-10 (CIFAR的十分类数据集),这个样例在测试集上的精度为90%,验证集上的精度为98%。主程序在ResNet_Operator.py中,网络的Block结构在ResNet_Block.py中,训练完的模型保存在results文件夹中。
项目源码地址: http://momodel.cn/explore/5d1b0a031afd944132a0797d?type=app
参考文献:
[1] _K. He, X. Zhang, S. Ren, and J. Sun. Deep resial learning for image recognition. arXiv preprint arXiv:1512.03385,2015.
[2] Y. LeCun, L. Bottou, G. B. Orr, and K.-R.M¨uller. Efficient backprop.In Neural Networks: Tricks of the Trade, pages 9–50. Springer, 1998.
[3] X. Glorot and Y. Bengio. Understanding the difficulty of training deep feedforward neural networks. In AISTATS, 2010.
[4] A. M. Saxe, J. L. McClelland, and S. Ganguli. Exact solutions to the nonlinear dynamics of learning in deep linear neural networks.arXiv:1312.6120, 2013.
[5] K. He, X. Zhang, S. Ren, and J. Sun. Delving deep into rectifiers:Surpassing human-level performance on imagenet classification. In ICCV, 2015.
[6] S. Ioffe and C. Szegedy. Batch normalization: Accelerating deep network training by recing internal covariate shift. In ICML, 2015.
Mo (网址: momodel.cn )是一个支持 python 的 人工智能在线建模平台 ,能帮助你快速开发、训练并部署模型。
Mo 人工智能俱乐部 是由网站的研发与产品设计团队发起、致力于降低人工智能开发与使用门槛的俱乐部。团队具备大数据处理分析、可视化与数据建模经验,已承担多领域智能项目,具备从底层到前端的全线设计开发能力。主要研究方向为大数据管理分析与人工智能技术,并以此来促进数据驱动的科学研究。
❷ 如何在vs2017管理anaconda的python包
使用conda
首先我们将要确认你已经安装好了conda
配置环境
下一步我们将通过创建几个环境来展示conda的环境管理功能。使你更加轻松的了解关于环境的一切。我们将学习如何确认你在哪个环境中,以及如何做复制一个环境作为备份。
测试Python
然后我们将检查哪一个版本的python可以被安装,以及安装另一个版本的python,还有在两个版本的python之间的切换。
检查包
1)我们将罗列出安装在我们电脑上的包
2)浏览可用的包
3)使用conda install命令来来安装以及移除一些包
4)对于一些不能使用conda安装的包,我们将在Anaconda.org网站上搜索
5)对于那些在其它位置的包,我们将使用pip命令来实现安装。我们还会安装一个可以免费试用30天的商业包IOPro
移除包、环境以及conda
管理conda:
检查conda版本:
1
1
升级当前版本的conda
1
1
管理环境
创建并激活一个环境
使用”conda create”命令,后边跟上你希望用来称呼它的任何名字:
1
1
这条命令将会给Biopython创建一个新的环境,位置在Anaconda安装文件的/envs/snowflakes
激活这个新环境
Linux,OS X:
1
1
Windows:
1
1
小技巧:
新的开发环境会被默认安装在你conda目录下的envs文件目录下。你可以指定一个其他的路径;去通过
conda create -h了解更多信息吧。
小技巧:
如果我们没有指定安装python的版本,conda会安装我们最初安装conda时所装的那个版本的python。
列出所有的环境
1
1
* 注意:conda有时也会在目前活动的环境前边加上号。**
切换到另一个环境(activate/deactivate)
为了切换到另一个环境,键入下列命令以及所需环境的名字。
Linux,OS X:
1
1
Windows:
1
1
如果要从你当前工作环境的路径切换到系统根目录时,键入:
- Linux,OS X:
1
1
Windows:
1
1
复制一个环境
通过克隆来复制一个环境。这儿将通过克隆snowfllakes来创建一个称为flowers的副本。
1
1
通过
1
1
来检查环境
删除一个环境
如果你不想要这个名为flowers的环境,就按照如下方法移除该环境:
1
2
1
2
管理Python
安装一个不同版本的python
现在我们假设你需要python3来编译程序,但是你不想覆盖掉你的python2.7来升级,你可以创建并激活一个名为snakes的环境,并通过下面的命令来安装最新版本的python3:
1
1
检查新的环境中的python版本
确保snakes环境中运行的是python3:
1
1
使用不同版本的python
为了使用不同版本的python,你可以切换环境,通过简单的激活它就可以,让我们看看如何返回默认版本
Linux,OS X:
1
1
Windows:
1
1
注销该环境
当你完成了在snowflakes环境中的工作室,注销掉该环境并转换你的路径到先前的状态:
Linux,OS X:
1
1
Windows:
1
1
管理包
conda安装和管理python包非常方便,可以在指定的python环境中安装包,且自动安装所需要的依赖包,避免了很多拓展包冲突兼容问题。
不建议使用easy_install安装包。大部分包都可以使用conda安装,无法使用conda和anaconda.org安装的包可以通过pip命令安装
使用合适的源可以提升安装的速度
查看已安装包
使用这条命令来查看哪个版本的python或其他程序安装在了该环境中,或者确保某些包已经被安装了或被删除了。在你的终端窗口中输入:
1
1
向指定环境中安装包
使用Conda命令安装包
我们将在指定环境中安装这个Beautiful Soup包,有两种方式:
- 直接指定-n 指定安装环境的名字
1
1
* 提示:你必须告诉conda你要安装环境的名字(-n bunies)否则它将会被安装到当前环境中。*
激活bunnies环境,再使用conda install命令。
1
2
1
2
2.从Anaconda.org安装一个包
如果一个包不能使用conda安装,我们接下来将在Anaconda.org网站查找。
在浏览器中,去Anaconda资源官网。我们查找一个叫“bottleneck”的包,所以在左上角的叫“Search Anaconda Cloud”搜索框中输入“bottleneck”并点击search按钮。
Anaconda.org上会有超过一打的bottleneck包的版本可用,但是我们想要那个被下载最频繁的版本。所以你可以通过下载量来排序,通过点击Download栏。
点击包的名字来选择最常被下载的包。它会链接到Anaconda.org详情页显示下载的具体命令:
1
1
3. 通过pip命令来安装包
对于那些无法通过conda安装或者从Anaconda.org获得的包,我们通常可以用pip命令来安装包。
可以上pypi网
站查询要安装的包,查好以后输入pip install命令就可以安装这个包了。
我们激活想要放置程序的python环境,然后通过pip安装一个叫“See”的程序。
Linux,OS X:
1
1
Windows:
1
1
所有平台:
1
1
提示:pip只是一个包管理器,所以它不能为你管理环境。pip甚至不能升级python,因为它不像conda一样把python当做包来处理。但是它可以安装一些conda安装不了的包。
4. 文件安装
如果真的遇到走投无路的境地,也就是上面这些方法通通不管用!!!那就只能下载源码安装了,比如exe文件(双击安装)或者whl文件(pip安装)等等。还有在github上找到源码,使用python setup.py install命令安装
Tips:不建议使用setuptools 的easy_install,非常不方便管理,也不好卸载
有些时候,Anaconda和pip下载的速度慢,访问不稳定怎么办?换个源呗,清华大学的源就很不错,当然啦,你可以自己google一些好用的源
对于包管理工具,了解这么多就够了,比较喜欢追根究底的童鞋可以移步包管理工具解惑
**提示:
在任何时候你可以通过在命令后边跟上-help来获得该命令的完整文档。
**
eg:
1
1
* 小技巧:*
很多跟在–后边常用的命令选项,可以被略写为一个短线加命令首字母。所以–name选项和-n的作用是一样的。通过conda -h或conda –-help来看大量的缩写。
移除包、环境、或者conda
如果你愿意的话。让我们通过移除一个或多个试验包、环境以及conda来结束这次测试指导。
移除包
假设你决定不再使用商业包IOPro。你可以在bunnies环境中移除它。
1
1
移除环境
我们不再需要snakes环境了,所以输入以下命令:
1
1
删除conda
Linux,OS X:
移除Anaconda 或 Miniconda 安装文件夹
1
1
OR
1
1
Windows:
去控制面板,点击“添加或删除程序”,选择“Python2.7(Anaconda)”或“Python2.7(Miniconda)”并点击删除程序。
❸ python redis和cache的区别
简单区别:
1. Redis中,并不是所有的数据都一直存储在内存中的,这是和Memcached相比一个最大的区别。
2. Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储。
3. Redis支持数据的备份,即master-slave模式的数据备份。
4. Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
Redis在很多方面具备数据库的特征,或者说就是一个数据库系统,而Memcached只是简单的K/V缓存
下面是来自redis作者的说法(stackoverflow上面)。
You should not care too much about performances. Redis is faster per core with small values, but memcached is able to use multiple cores with a single executable and TCP port without help from the client. Also memcached is faster with big values in the order of 100k. Redis recently improved a lot about big values (unstable branch) but still memcached is faster in this use case. The point here is: nor one or the other will likely going to be your bottleneck for the query-per-second they can deliver.
You should care about memory usage. For simple key-value pairs memcached is more memory efficient
❹ reportlab 怎么安装
1. 先安装pip
a) https://pip.pypa.io/en/latest/installing.html
b) 获取上面网址的get-pip.py
c) 运行python get-pip.py
d) 安装完成之后 pip应用程序安装在C:\Python27\Scripts目录下,把这个路径加到path环境变量里面
e) cmd-》 输入pip -》可看到命令帮助,表示安装成功
2. 下载PIL
a) http://www.pythonware.com/procts/pil
b) 下载对应版本的文件
c) Exe文件直接安装
3. 下载Reporlab包
a) https://pypi.python.org/pypi/reportlab/
b) 取下对应python版本的whl
c) Pip install 上面取下来的文件
❺ windows 怎么安装mmseg
今天弄了一上午的python-ldap,发现要么安装vc,要么用其他比较麻烦的方法,都比较麻烦。幸好找到这个地址: http://www.lfd.uci.e/~gohlke/pythonlibs/ 这上面有很多python第三方包的二进制安装文件,包括32位和64位的。下载安装就ok了! 包括了mysqldb,ldap等。 Index by date: fiona scikit-image netcdf4 mercurial scikits.audiolab numba llvmpy python-igraph rpy2 numpy opencv zope.interface sfepy quantlib gdal imread django psychopy cx_freeze msgpack regex cellcognition vigra scikit-learn pytables h5py blender-mathutils htseq bioformats simplejson pyzmq mako simpleitk qimage2ndarray ujson vlfd libsvm liblinear cgkit scipy distribute noise theano pyalembic openimageio pyaudio pymca pyamg pgmagick lxml steps sqlalchemy cffi biopython python-ldap pycurl nipy nibab... 今天弄了一上午的python-ldap,发现要么安装vc,要么用其他比较麻烦的方法,都比较麻烦。幸好找到这个地址:
http://www.lfd.uci.e/~gohlke/pythonlibs/
这上面有很多python第三方包的二进制安装文件,包括32位和64位的。下载安装就ok了!
包括了mysqldb,ldap等。
Index by date:
fiona
scikit-image
netcdf4
mercurial
scikits.audiolab
numba
llvmpy
python-igraph
rpy2
numpy
opencv
zope.interface
sfepy
quantlib
gdal
imread
django
psychopy
cx_freeze
msgpack
regex
cellcognition
vigra
scikit-learn
pytables
h5py
blender-mathutils
htseq
bioformats
simplejson
pyzmq
mako
simpleitk
qimage2ndarray
ujson
vlfd
libsvm
liblinear
cgkit
scipy
distribute
noise
theano
pyalembic
openimageio
pyaudio
pymca
pyamg
pgmagick
lxml
steps
sqlalchemy
cffi
biopython
python-ldap
pycurl
nipy
nibabel
pygments
mahotas
py-postgresql
pyamf
planar
holopy
pyvisa
jcc
polymode
polygon
cython
pyropes
llist
shapely
vtk
pymongo
libpython
meshpy
pandas
umysql
epydoc
coverage
cheetah
pyrxp
pybluez
pythonmagick
bsdiff4
pymssql
pymol
boost.python
orange
requests
pywcs
python-sundials
pymix
pyminuit
pylzma
pyicu
assimulo
basemap
pygraphviz
pyproj
mpi4py
spyder
pytz
pyfits
mysql-python
pygame
pycparser
twisted
pil
qutip
openexr
nipype
python-snappy
visvis
docutils
pyhdf
pyqwt
kivy
scikits.umfpack
psycopg
ets
guiqwt
veusz
pyqt
pyside
dpmix
py-fcm
scikits.hydroclimpy
smc.freeimage
scipy-stack
ipython
nose
mxbase
numexpr
pyyaml
ode
virtualenv
aspell_python
tornado
pywavelets
bottleneck
networkx
statsmodels
pylibdeconv
pyhook
lmfit
slycot
ndimage
scikits.scattpy
cvxopt
pymc
pysparse
scikits.odes
matplotlib
vpython
pycuda
pyopencl
pymvpa
pythonnet
cld
mod_wsgi
nltk
python-levenshtein
rtree
pywin32
scientificpython
sympy
thrift
pyopengl-accelerate
mdp
pyopengl
gmpy
reportlab
natgrid
scikits.vectorplot
pyreadline
milk
blosc
pycogent
pip
gevent
scons
carray
python-dateutil
jinja2
markupsafe
jsonlib
pysfml
fonttools
silvercity
console
python-cjson
pycluster
cdecimal
pytst
autopy
sendkeys
ceodbc
fipy
psutil
pyephem
pycifrw
blist
line_profiler
pydbg
bitarray
pyglet
python-lzo
faulthandler
delny
pyexiv2
ilastik
twainmole
scitools
pyspharm
casuarius
pyodbc
greenlet
nitime
pylibtiff
mmtk
pycairo
pysqlite
curses
videocapture
bazaar
nlopt
trfit
libsbml
oursql
sphinx
cellprofiler
py2exe
re2
liblas
cgal-python
pymedia
ffnet
pyfftw
libxml-python
pyfltk
pymex
pymatlab
zodb3
mmlib
pygtk
pyserial
babel
scikits.ann
scikits.delaunay
numeric
pulp
nmoldyn
pymutt
iocbio
jpype
wxpython
pybox2d
dipy
mmseg
pynifti
scikits.samplerate
scikits.timeseries
vitables
quickfix
numscons
visionegg