❶ 殘差網路
殘差網路(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