AI安全之對抗樣本入門》—2.5 TensorFlow">《AI安全之對抗樣本入門》—2.5 TensorFlow
786
2025-04-03
第2章
打造對抗樣本工具箱
對抗樣本是深度學習領域一個新興的熱點內容,非常強調理論和工程相結合。在開啟新的學習旅途之前,我們先介紹一下對抗樣本環境的搭建過程,強烈建議讀者在Linux或者Mac環境下進行搭建,因為深度學習的常用工具幾乎都是基于Python開發的,但是Python相關的庫都是在Linux或者Mac環境下經過多年驗證的,Windows下的功能和穩定性難以保證。為了避免不必要的麻煩,同時能與工業界的生產環境進行無縫遷移,默認情況下,本書都是基于Mac+Python 2.7環境進行介紹的,Linux和Python 3.*環境幾乎也可以直接使用。
圖2-1 ArXiv上提到的深度學習框架排行
TensorFlow排名第一,Keras排名第二,之后依次是Caffe、PyTorch、Theano、MXNet、Chainer,以及CNTK。Chollet在推文中補充,Keras的使用在產業界和整個數據科學圈中占據主流地位,產業既包括大公司也包括創業公司。不過,在研究社區,Keras的份額要小很多。本章也將介紹主流的深度學習框架的安裝方法,讀者可以針對自己的情況,安裝其中一到兩種即可。
2.1 Anaconda
Python是深度學習領域的網紅,幾乎所有的深度學習框架都支持Python,甚至僅支持Python。Python在給開發者帶來各種便利的同時,其復雜的包管理與環境管理也一直困擾著開發者。本書推薦使用Anaconda進行Python環境的搭建,大量實踐證明Anaconda具有工業級的穩定性,同時使用便捷,下面我們詳細介紹Anaconda。
Anaconda是一個用于科學計算的Python開發平臺,支持 Linux、Mac和Windows系統,提供了包管理與環境管理的功能,可以很方便地解決多版本Python并存、切換以及各種第三方包安裝問題。Anaconda利用conda命令來進行包和環境的管理,并且已經包含了Python和相關的配套工具。如圖2-2所示,Anaconda集成了大量的機器學習庫以及數據處理必不可少的第三方庫,比如NumPy、SciPy、Scikit-Learn以及TensorFlow等。
圖2-2 Anaconda框架
Anaconda的安裝非常方便,如圖2-3所示,從其官網的下載頁面選擇對應的安裝包,以我的Mac本為例,選擇macOS對應的圖形化安裝版本。
圖2-3 Anaconda下載頁面
點擊安裝包,選擇安裝的硬盤,通常Mac本也只有一塊硬盤,使用默認安裝即可,如圖2-4所示。
圖2-4 Anaconda安裝界面
使用默認配置進行安裝,安裝完成后出現如圖2-5所示的界面。
使用如下命令查看當前用戶的profile文件的內容:
cat ~/.bash_profile
圖2-5 Anaconda安裝結束界面
我們可以發現,在當前用戶的profile文件的最后增加了如下內容:
# added by Anaconda2 5.0.0 installer
export PATH="/anaconda2/bin:$PATH"
表明已經將Anaconda的bin目錄下的命令添加到了PATH變量中,可以像使用系統命令一樣直接使用Anaconda的命令行工具了。
Anaconda強大的包管理以及多種Python環境并存使用主要依賴于conda命令,常用的conda命令如下:
# 創建一個名為python27的環境,指定Python版本是2.7
conda create --name python27 python=2.7
# 查看當前環境下已安裝的包
conda list
# 查看某個指定環境的已安裝包
conda list -n python27
# 查找package信息
conda search numpy
# 安裝package
conda install -n python27 numpy
# 更新package
conda update -n python27 numpy
# 刪除package
conda remove -n python27 numpy
假設我們已經創建一個名為python27的環境,指定Python版本是2.7,激活該環境的方法如下:
source activate python27
如果要退出該環境,命令如下所示:
source deactivate
在python27的環境下查看Python版本,果然是2.7版本:
maidou:3book liu.yan$ source activate python27
(python27) maidou:5book liu.yan$
(python27) maidou:5book liu.yan$ python
Python 2.7.14 |Anaconda, Inc.| (default, Oct? 5 2017, 02:28:52)
[GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
查看python27環境下默認安裝了哪些包,為了避免顯示內容過多,過濾前6行查看:
conda list | head -6
# packages in environment at /anaconda2/envs/python27:
#
ca-certificates?????????? 2017.08.26?????????? ha1e5d58_0
certifi?????????????????? 2017.7.27.1????? py27h482ffc0_0
libcxx??????????????????? 4.0.1??????????????? h579ed51_0
libcxxabi???????????????? 4.0.1??????????????? hebd6815_0
統計包的個數,除去2行的無關內容,當前環境下有16個包:
conda list | wc -l
18
查看目前一共有幾個環境,發現除了系統默認的root環境,又多出了我們創建的python27環境:
conda info --envs
# conda environments:
#
python27???????????????? /anaconda2/envs/python27
root????????????????? *? /anaconda2
在python27環境下安裝Anaconda默認的全部安裝包,整個安裝過程會比較漫長,速度取決于你的網速:
conda install anaconda
Fetching package metadata ...........
Solving package specifications: .
Package plan for installation in environment /anaconda2/envs/python27:
繼續統計包的個數,除去兩行的無關內容,當前環境下已經有238個包了:
conda list | wc -l
240
Anaconda默認安裝的第三方包里沒有包含TensorFlow和Keras,需要使用命令手工安裝。以TensorFlow為例,可以使用conda命令直接安裝:
conda install tensorflow
同時,也可以使用pip命令直接安裝:
pip install tensorflow
本書一共創建了兩個環境,分別是python27和python36,顧名思義,對應的Python版本分別為2.7和3.6,用于滿足不同案例對Python版本的不同要求。
AI Python
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。