1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        超詳細(xì)配置教程,搭建Windows深度學(xué)習(xí)環(huán)境

        共 9052字,需瀏覽 19分鐘

         ·

        2021-01-07 16:04

        點(diǎn)上方藍(lán)色“菜鳥學(xué)Python”,選“星標(biāo)”公眾號

        重磅干貨,第一時間送到


        選自towardsdatascience,作者:Ahinand

        機(jī)器之心編譯
        雖然大多數(shù)深度學(xué)習(xí)模型都是在 Linux 系統(tǒng)上訓(xùn)練的,但 Windows 也是一個非常重要的系統(tǒng),也可能是很多機(jī)器學(xué)習(xí)初學(xué)者更為熟悉的系統(tǒng)。要在 Windows 上開發(fā)模型,首先當(dāng)然是配置開發(fā)環(huán)境。Kaggle Master 及機(jī)器學(xué)習(xí)實(shí)踐者 Abhinand 立足于自己的實(shí)踐,給出了一種簡單易行的 Windows 深度學(xué)習(xí)環(huán)境配置流程。
        本文將介紹在 Windows 計算機(jī)上配置深度學(xué)習(xí)環(huán)境的全過程,其中涉及安裝所需的工具和驅(qū)動軟件。出人意料的是,即便只是配置深度學(xué)習(xí)環(huán)境,任務(wù)也不輕松。你很有可能在這個過程中犯錯。我個人已經(jīng)很多次從頭開始配置深度學(xué)習(xí)環(huán)境了,但是通常是在對程序員更友好的操作系統(tǒng) Linux 中。

        而對于 Windows 操作系統(tǒng),沒有多少文章詳細(xì)解釋這一過程。所以我打算自己來試試。這些天,經(jīng)過多次試錯之后,我終于找到了解決方案。這個方法不僅能夠配置成功,還比我見過的其它教程簡單得多。

        本教程為誰而寫,以及為什么要用 Windows?

        相信我,我自己也不喜歡在 Windows 上鼓搗 CUDA。但我們常常遇到這種情況:開發(fā)者經(jīng)常需要在并非深度學(xué)習(xí)或程序開發(fā)專用的筆記本電腦或更強(qiáng)大的硬件上工作。在這種情況下,你并不總能避免使用 Windows。如果你遇到這種情況,或者正好擁有一臺 Windows 計算機(jī),又或者還不能熟練使用 Linux,那么這份指南肯定能幫到你。

        本文包含以下內(nèi)容:

        • 硬件和軟件的最低要求

        • 安裝 Python 和所需工具

        • 設(shè)置開發(fā)環(huán)境

        • 一些 GPU 術(shù)語

        • 安裝 GPU 驅(qū)動

        • 安裝 TensorFlow(CPU 和 GPU)

        • 安裝 PyTorch(CPU 和 GPU)

        • 驗(yàn)證安裝情況

        • 我的個人經(jīng)驗(yàn)和替代方法


        硬件和軟件的最低要求

        如果你要按照本指南操作并且計劃使用 GPU,你必須使用英偉達(dá) GPU。

        開發(fā)深度學(xué)習(xí)應(yīng)用涉及到訓(xùn)練神經(jīng)網(wǎng)絡(luò),這自然需要執(zhí)行大量計算。也因此,我們需要越來越多的并行運(yùn)算,而 GPU 正好能夠滿足我們的需求。這也是當(dāng)前 GPU 需求旺盛的主要原因之一。大多數(shù)深度學(xué)習(xí)框架都自帶 GPU 加速支持,這讓開發(fā)者和研究者無需執(zhí)行任何 GPU 編程就能在幾分鐘內(nèi)使用 GPU 進(jìn)行計算。

        大部分這些框架都(只)支持 CUDA,而這只能在英偉達(dá) GPU 上使用,這也是你需要使用英偉達(dá) GPU 的原因。但是,使用 AMD 的 GPU 也不是不可能,相關(guān)信息可參閱:https://rocmdocs.amd.com/en/latest/。

        不過,就算你沒有 GPU,也依然可以繼續(xù)本教程。但為了有效進(jìn)行深度學(xué)習(xí),至少你要有好用的 CPU、內(nèi)存和存儲空間。

        我的硬件——筆記本電腦的配置如下:

        • CPU——AMD Ryzen 7 4800HS 8C -16T@ 4.2GHz on Turbo

        • RAM——16 GB DDR4 RAM@ 3200MHz

        • GPU——Nvidia GeForce RTX 2060 Max-Q @ 6GB GDDR6 顯存


        對于硬件配置,我推薦至少使用 4 核 2.6 GHz 的 CPU、16GB 內(nèi)存和 6GB 顯存的英偉達(dá) GPU。

        另外,對于本教程,你當(dāng)然需要使用 Windows 10 系統(tǒng)。我也假設(shè)你對 Python 軟件包和環(huán)境具備基本認(rèn)知。不管怎樣,后面都會給出解釋。

        推薦使用的 Windows 版本是最新的 64 位 Windows 10 穩(wěn)定版。

        本教程假設(shè)你的操作系統(tǒng)是剛裝好的,沒有執(zhí)行過額外的修改。不過只要你知道自己在做什么,依然可以參考本教程。

        安裝 Python 和所需工具

        第一步當(dāng)然是安裝 Python。我建議使用 Mini-Conda 來安裝 Python。先給剛?cè)腴T的新手解釋一下原因。

        Conda 是一個軟件包管理工具,可以幫助你安裝、管理和移除各種不同的軟件包。不過 Conda 并不是唯一的選擇,還有 pip——這是我很喜歡的 Python 默認(rèn)軟件包管理工具。這里我們選擇 Conda 的原因是在 Windows 上使用它更簡單直接。

        Anaconda 和 Mini-Conda 都是 Conda 的軟件發(fā)行版,其中預(yù)安裝了一些非常有用的數(shù)據(jù)科學(xué) / 機(jī)器學(xué)習(xí)軟件包,能節(jié)省很多時間。Anaconda 包含 150 多個在數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)中有用的軟件包,基本上包含了你可能需要的一切,而 Mini-Conda 僅包含一些必需的工具和軟件包。

        我推薦使用 Mini-Conda,因?yàn)槲蚁矚g對所安裝的軟件包有(幾乎)完整的控制權(quán)。清楚地了解你所安裝的東西完全不是壞事。當(dāng)然這還能幫你節(jié)省一些存儲空間,你也不會裝上幾十個你可能永遠(yuǎn)也用不上的奇怪軟件包。

        要安裝 Mini-Conda,請訪問:https://docs.conda.io/en/latest/miniconda.html

        下載 Windows 64 位版本的 Python3 安裝工具,然后像安裝其它 Windows 軟件一樣安裝它。一定要勾選詢問你是否要將 Conda 和 Python 加入到 PATH 的勾選框。

        現(xiàn)在你可以通過以下命令檢查 Conda 和 Python 是否安裝成功。如果安裝成功,則會顯示版本號;否則你可能需要再次正確安裝 Mini-Conda 并將其加入到 PATH。

        > python —versionPython 3.8.3> conda —versionconda 4.8.4

        下一步是安裝 jupyter-notebook,請在命令行界面使用以下命令:

        > conda install -y jupyter

        你可以通過運(yùn)行 jupyter notebook 來驗(yàn)證安裝,這會幫你在瀏覽器上打開 Jupyter Notebook。

        設(shè)置開發(fā)環(huán)境

        這一步很重要,但很多人會忽視它。使用 Anaconda 這種包含所有已知軟件包的工具是可以理解的,但如果要開發(fā)自己的項目,真正構(gòu)建一些東西,你可能還是需要一個專門針對該項目或你的工作性質(zhì)的定制開發(fā)環(huán)境。使用專門虛擬環(huán)境的另一大優(yōu)勢是你可以將軟件包與全局設(shè)置隔離開。這樣,就算你在該環(huán)境中使用軟件包時搞錯了,你也可以輕松地丟棄它們,而不對全局軟件包產(chǎn)生任何影響。

        這也能讓你靈活地使用任何之前版本的 Python 創(chuàng)建環(huán)境。這樣,你就可以避免使用那些還不穩(wěn)定的新特性,之后再根據(jù)支持情況選擇是否升級。

        創(chuàng)建 Conda 環(huán)境還算簡單。為了方便解釋,我創(chuàng)建了一個名為 tensorflow 的環(huán)境,你可以將其改為任何名稱。我將使用 Python 3.7,因?yàn)槲抑?TensorFlow 對其有很好的支持。順便一提,這將是安裝 TensorFlow 的位置,我還會創(chuàng)建一個名為 torch 的環(huán)境來安裝 PyTorch。

        > conda create --name tensorflow python=3.7

        環(huán)境創(chuàng)建完成之后,你可以使用以下命令進(jìn)入該環(huán)境,其中的 tensorflow 只是我們之前提供給該環(huán)境的名稱。

        > conda activate tensorflow

        進(jìn)入環(huán)境之后,你會在提示框的左邊看到類似這樣的信息:


        如果你沒在 Powershell 上看到這個信息,那么你可能需要先在 Powershell 初始化 conda 一次:

        > conda init powershell


        然后,你可能會在左邊看到 (base),如上圖所示,此時你已不在任何環(huán)境中。之后,你再進(jìn)入任何環(huán)境,你應(yīng)該都會看見環(huán)境名。

        此外,你還可以在環(huán)境中安裝 nb 工具,并將其鏈接到我們之前安裝的 Jupyter Notebook。

        > conda install nb_conda

        要將該環(huán)境注冊到 Jupyter Notebook,可運(yùn)行以下命令:

        > python -m ipykernel install --user --name tensorflow --display-name “Python 3.7 (tensorflow)”

        要退出 Conda 環(huán)境,則運(yùn)行以下命令:

        > conda deactivate

        現(xiàn)在按照同樣的步驟創(chuàng)建一個名為 torch 的環(huán)境:

        > conda create --name torch python=3.7> conda activate torch> conda install nb_conda> python -m ipykernel install --user --name torch --display-name “Python 3.7 (torch)”

        如果環(huán)境設(shè)置成功,你可以在環(huán)境列表中看到它們。

        > conda env list


        要驗(yàn)證每個環(huán)境是否都已安裝了各自的軟件包,你可以進(jìn)入各個環(huán)境,執(zhí)行 conda list,這會顯示該環(huán)境中已安裝的所有軟件包。

        不要因?yàn)檫@個列表很長而感到困擾。Conda 已經(jīng)妥善地處理了主要部分和依賴包。

        一些 GPU 術(shù)語

        在安裝 GPU 相關(guān)軟件之前,我們有必要了解這些軟件是什么,以及你需要它們的原因。

        GPU 驅(qū)動:顧名思義,GPU 驅(qū)動是讓操作系統(tǒng)及程序能使用 GPU 硬件的軟件。游戲玩家肯定很熟悉這個。如果你喜歡打游戲,你可能需要讓這個軟件保持最新以獲得最好的游戲體驗(yàn)。

        CUDA:簡單來說,這是英偉達(dá)開發(fā)的一個編程接口層,能讓你調(diào)用 GPU 的指令集及其并行計算單元。

        自 2010 年代末的 GeForce 8 系列 GPU 以來,幾乎所有 GPU 都兼容 CUDA。要想了解你的 GPU 是否啟用 CUDA,可以訪問英偉達(dá)的網(wǎng)站。

        舉個例子,如果你有一臺消費(fèi)級 GPU,不管是 GeForce 系列還是 Titan 系列,你都可以在下圖中看到你的 GPU 是否支持 CUDA。

        數(shù)據(jù)截至 2020 年 9 月,截圖僅含部分型號。

        如果你的電腦是筆記本,你應(yīng)該看右邊的列表;如果你的電腦是臺式機(jī),你顯然就該看左邊的列表。

        之前已經(jīng)提到,我的 GPU 是右側(cè)列表中的 RTX 2060 Max-Q。另外,你不必在意顯卡型號名稱是否與該列表中的名稱完全匹配,Max-Q 和 Super 的底層架構(gòu)一樣,只在 TDP、CUDA 核及張量核數(shù)量方面有一些差異。

        比如,不管你的 GPU 是 RTX 2080 Super 還是 2080 Max-Q 又或是 2080 Super Max-Q,看列表中的 RTX 2080 就夠了。但如果你的 GPU 是 RTX 2080Ti 或其它加了 Ti 的型號,則說明你的 GPU 是該系列中最高端的那一款,這些 GPU 通常在顯存大小和 CUDA 核及張量核數(shù)量方面更具優(yōu)勢。

        截至 2020 年 9 月,要使用 TensorFlow 2.0,顯卡計算能力必須高于 3.5,但建議使用計算能力至少為 6 的顯卡以獲得更好的體驗(yàn)。TensorFlow 2.0 還需要 CUDA 10 版本,而這又進(jìn)一步要求驅(qū)動版本至少為 418.x。

        PyTorch 需要的 CUDA 版本至少為 9.2,但也支持 10.1 和 10.2。所需的計算能力至少要高于 3.0。


        CuDNN:即 CUDA Deep Neural Network 軟件庫,這是一個用于深度神經(jīng)網(wǎng)絡(luò)的 GPU 加速原語庫。cuDNN 為前向和反向卷積、池化、歸一化和激活層等標(biāo)準(zhǔn)例程提供了經(jīng)過高度微調(diào)的實(shí)現(xiàn)。

        (可選)TensorRT:NVIDIA TensorRT 是一套用于高性能深度學(xué)習(xí)接口的 SDK。其包含深度學(xué)習(xí)接口優(yōu)化器和運(yùn)行時優(yōu)化器,能為深度學(xué)習(xí)接口應(yīng)用提供低延遲和高通量的特性。

        安裝 GPU 驅(qū)動

        首先,你需要搞清楚所使用的 GPU 型號,而且你的 GPU 必須啟用了 CUDA。

        如果你還沒有安裝驅(qū)動,你可能需要運(yùn)行一次 Windows 更新,它會自動處理有用軟件的安裝過程,比如英偉達(dá)控制面板。這能幫助你獲悉 GPU 的相關(guān)信息,還有一些與本文無關(guān)的設(shè)置。

        英偉達(dá)控制面板就緒之后,你可以在開始菜單打開它,也可以右鍵點(diǎn)擊桌面,然后選擇英偉達(dá)控制面板。

        打開之后,你可以點(diǎn)擊「幫助→系統(tǒng)信息」來查看 GPU 驅(qū)動版本。驅(qū)動版本號列在「細(xì)節(jié)」窗口的頂部。


        如上圖所示,我的驅(qū)動版本是 456.x,遠(yuǎn)超過 418.x 的最低要求,所以我不必安裝新驅(qū)動。

        但你的電腦可能不是這樣的。要安裝最新版的驅(qū)動,可訪問 https://www.nvidia.com/Download/index.aspx,然后輸入 GPU 信息,下載合適的驅(qū)動。

        ?
        驅(qū)動下載完成后,運(yùn)行安裝包,選擇快速安裝會更輕松。驅(qū)動安裝完成之后,可使用英偉達(dá)控制面板進(jìn)行驗(yàn)證。

        另一個安裝驅(qū)動的方法是使用英偉達(dá)的 GeForce Experience 應(yīng)用程序。只要你購買的是主打游戲的電腦,應(yīng)該都預(yù)裝了該軟件。安裝過程很簡單。

        這一步是可選的。如果你已經(jīng)按照上面的步驟安裝了驅(qū)動,或你的電腦沒有預(yù)裝該軟件,那就不用在乎這個步驟。

        你可在這里下載該程序:https://www.nvidia.com/en-in/geforce/geforce-experience/,然后跟著安裝流程將其安裝到電腦上。安裝完成,打開它,進(jìn)入驅(qū)動選項卡,檢查更新并安裝新驅(qū)動。你也可以在該應(yīng)用中查看驅(qū)動的版本號。

        ?GeForce Experience 演示

        現(xiàn)在安裝驅(qū)動過程中最重要的步驟已經(jīng)完成,你可以選擇手動安裝 CUDA 工具包,也可以選擇在安裝 TensorFlow 或 PyTorch 時留給 Conda 來安裝(強(qiáng)烈推薦后者)。

        如果決定手動安裝,你可以從這里下載安裝包:https://developer.nvidia.com/cuda-downloads,然后跟著指示操作即可。

        安裝 CUDA 工具包

        CUDA 工具包裝好之后,你可以在 cmd 或 Powershell 中執(zhí)行 nvidia-smi 命令進(jìn)行驗(yàn)證。

        nvidia-smi 的輸出

        安裝 TensorFlow

        現(xiàn)在終于來到本教程的關(guān)鍵了。如果你已經(jīng)完成了前述步驟,那么這一步會非常簡單。

        我們通過 Conda 來安裝 TensorFlow 2.x。

        要注意,首先進(jìn)入我們之前創(chuàng)建的 tensorflow 環(huán)境,然后再進(jìn)行操作。

        > conda activate tensorflow

        如果你需要 GPU 支持,就運(yùn)行以下命令:

        > conda install -c anaconda tensorflow-gpu

        通過 anaconda 通道安裝 TensorFlow 的 GPU 支持軟件。使用 conda 而非 pip 安裝 TensorFlow 的一大優(yōu)勢是 conda 的軟件包管理系統(tǒng)。使用 conda 安裝 TensorFlow 時,conda 還會安裝所有必需和兼容的依賴包。這個過程是自動的,用戶無需通過系統(tǒng)軟件包管理器或其它方式安裝任何其它軟件。

        其中也包含 TensorFlow 或 PyTorch 所需的版本合適的 CUDA 工具包。因此,使用 conda 能讓這個過程變得非常簡單。

        我們只能在安裝了 TensorFlow GPU 的環(huán)境中看到所安裝的 CUDA 工具包。這既不會影響到全局系統(tǒng)的 CUDA 版本,同時也能滿足 TensorFlow 和 PyTorch 的不同版本 CUDA 需求。這就是使用虛擬環(huán)境的最大好處,它能讓不同的虛擬環(huán)境完全隔離開。

        如果一切順利,你不會在安裝過程中看到任何報錯信息。

        要驗(yàn)證 TensorFlow 和所需的軟件包是否成功安裝,你可以執(zhí)行 conda list,這會顯示已安裝軟件包的列表,你應(yīng)該能在其中找到與 TensorFlow 相關(guān)的軟件包以及 CUDA 工具包。


        你也可以打開 Python prompt 來驗(yàn)證是否已安裝 TensorFlow。

        >>> import tensorflow as tf>>> tf.version'2.1.0'

        如果你看到了版本號,那么恭喜你,TensorFlow 已安裝成功!任務(wù)完成。

        在 Python prompt 中驗(yàn)證 TensorFlow 的安裝情況。

        你在 Python prompt 中使用 TensorFlow 時可能會看到這樣的信息:「Opened Dynamic Library」,但這并不是壞消息。這只是一條日志消息,說明 TensorFlow 可以打開這些軟件庫。

        GPU 上的安裝情況驗(yàn)證將在下文中介紹。

        如果要安裝僅使用 CPU 的 TensorFlow,你需要對安裝命令進(jìn)行簡單的修改。

        > conda install -c anaconda tensorflow

        這將會安裝沒有 CUDA 工具包和 GPU 支持的 TensorFlow。

        安裝 PyTorch

        安裝 PyTorch 的過程與安裝 TensorFlow 其實(shí)沒太大差異。conda 讓這一切都變得非常簡單。

        首先,進(jìn)入我們創(chuàng)建的 torch 環(huán)境。

        > conda activate torch

        如果你想安裝支持 CUDA 的 PyTorch,使用以下命令:

        > conda install pytorch torchvision cudatoolkit -c pytorch

        該命令會通過 Conda 的 PyTorch 通道安裝兼容 CUDA 的 PyTorch。

        至于僅使用 CPU 的 PyTorch,只需從以上命令中移除 cudatookit 即可:

        > conda install pytorch torchvision cpuonly -c pytorch

        這會安裝無 CUDA 支持的 PyTorch。

        和之前一樣,你可以使用 conda list 驗(yàn)證安裝情況,也可使用以下代碼在 Python 上執(zhí)行驗(yàn)證。

        >>> import torch>>> torch.version'1.6.0'

        如果返回版本號,則說明已成功安裝 PyTorch。

        驗(yàn)證安裝情況

        有時候,你覺得一切都很順利,準(zhǔn)備開始使用這些工具時卻遇到了一些重大錯誤。如果你正好遇到了這種情況,有可能是機(jī)器的問題,也可能是流程出錯了,不能一概而論,要具體問題具體分析。

        為了幫助你更好地驗(yàn)證安裝情況,并確保 TensorFlow 和 PyTorch 使用的是指定的硬件,這里分享一些筆記。

        你可以在 https://github.com/abhinand5/blog-posts 的 dl-setup-win 文件夾中找到它們。你可以克隆這些筆記然后運(yùn)行其中的代碼。如果返回的信息正確,你就可以放手開發(fā)了。

        下圖是該筆記的代碼示例:


        注:如果你沒有從正確的環(huán)境啟動 Jupyter Notebook,就可能會遇到一些錯誤。例如,如果你想使用 tensorflow 環(huán)境,你可以從 base 環(huán)境啟動 notebook,然后將核改到 tensorflow 環(huán)境,但我在這樣操作時遇到過報錯。因此,如果你要運(yùn)行 TensorFlow,就在 tensorflow 環(huán)境里啟動 Notebook;如果你要運(yùn)行 PyTorch,就在 torch 環(huán)境中啟動 Notebook。不要從 base 或其它地方啟動。

        我的個人經(jīng)驗(yàn)和替代方法

        我一直使用這套配置完成一些輕量級的深度學(xué)習(xí)工作,反正這套本地硬件足夠了?,F(xiàn)在幾周過去了,一切都還不錯。但是,在此之前我還嘗試過其它一些方法,也出現(xiàn)過一些嚴(yán)重問題。

        比如有一次我嘗試了這里的方法:https://developer.nvidia.com/cuda/wsl,其中涉及在 WSL(Windows Subsystem for Linux)中啟用 CUDA 和英偉達(dá)驅(qū)動以便使用 GPU 來進(jìn)行深度學(xué)習(xí)訓(xùn)練。目前這個功能還在預(yù)覽階段,但一旦官方發(fā)布,必將為深度學(xué)習(xí)實(shí)踐者帶來重大影響。這能將讓人驚喜的 WSL 與 CUDA/GPU 驅(qū)動結(jié)合到一起。

        不過這是有條件的。要想使用這一功能,你必須參與 Windows Insider Program 項目。當(dāng)然,根據(jù)我的經(jīng)歷,內(nèi)部預(yù)覽版往往有很多漏洞。我在使用時遇到過很多問題,包括所有 Windows 應(yīng)用不再響應(yīng)、GSOD(綠屏死機(jī))錯誤、未正確啟動、驅(qū)動故障。我個人不喜歡不穩(wěn)定的環(huán)境,所以選擇退出只是時間問題。

        你有可能在使用預(yù)覽版時不會遇到任何問題,只不過我的經(jīng)歷太糟了,所以不推薦使用預(yù)覽版。

        其它替代選擇包括完全不使用 Windows,只使用基于 Linux 的系統(tǒng),享受更加流暢的體驗(yàn)。只不過 Linux 沒有 Windows 中那樣花哨的 GUI 安裝工具。

        本文介紹了如何在 Windows 系統(tǒng)中安裝 TensorFlow、PyTorch 和 Jupyter 工具,希望對大家有所幫助。

        原文鏈接:
        https://towardsdatascience.com/setting-up-your-pc-workstation-for-deep-learning-tensorflow-and-pytorch-windows-9099b96035cb




        程序員GitHub,現(xiàn)已正式上線!

        接下來我們將會在該公眾號上,專注為大家分享GitHub上有趣的開源庫包括Python,Java,Go,前端開發(fā)等優(yōu)質(zhì)的學(xué)習(xí)資源和技術(shù),分享一些程序員圈的新鮮趣事。




        推薦閱讀:


        這個GitHub 1400星的Git魔法書火了,斯坦福校友出品丨有中文版
        賊 TM 好用的 Java 工具類庫
        超全Python IDE武器庫大總結(jié),優(yōu)缺點(diǎn)一目了然!
        秋招來襲!GitHub28.5顆星!這個匯聚阿里,騰訊,百度,美團(tuán),頭條的面試題庫必須安利!
        收獲10400顆星!這個Python庫有點(diǎn)黑科技,竟然可以偽造很多'假'的數(shù)據(jù)!
        牛掰了!這個Python庫有點(diǎn)逆天了,竟然能把圖片,視頻無損清晰放大!


        點(diǎn)這里,獲取一大波福利

        瀏覽 34
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            丁香综合色 | 艳妇录像激情hd | 亚洲国产黄色电影 | 国产三级在线观看视频 | 激情图片激情视频 | 亚洲欧美第一页 | 美女被狂揉下部羞羞动漫网站 | 天堂在线资源视频 | 99re热在线视频 | 嫩草影院在线观看91麻豆 |