雲計算必備知識-基於PyTorch機器學習構建生成對抗網絡

2020-12-27 TechWeb

生成式對抗網絡(GAN, Generative Adversarial Networks )是一種深度學習模型,是近年來複雜分布上無監督學習最具前景的方法之一。模型通過框架中(至少)兩個模塊:生成模型(Generative Model)和判別模型(Discriminative Model)的互相博弈學習產生相當好的輸出。原始 GAN 理論中,並不要求 G 和 D 都是神經網絡,只需要是能擬合相應生成和判別的函數即可。但實用中一般均使用深度神經網絡作為 G 和 D 。一個優秀的GAN應用需要有良好的訓練方法,否則可能由於神經網絡模型的自由性而導致輸出不理想。

生成對抗網絡被廣泛應用於廣告、遊戲、娛樂、媒體、製藥等行業,可以用來創造虛構的人物、場景,模擬人臉老化,圖像風格變換,以及產生化學分子式等等。下面兩張圖片,分別展示了圖片到圖片轉換的效果,以及基於語義布局合成景物的效果。

 

 

本文將引領讀者,從工程實踐角度出發,藉助 AWS 機器學習相關雲計算服務,基於 PyTorch 機器學習框架,構建第一個生成對抗網絡,開啟全新的、有趣的機器學習和人工智慧體驗。

還等什麼,讓我們馬上開始吧!

主要內容 課題及方案概覽 模型的開發環境 生成對抗網絡模型 模型的訓練和驗證 結論與總結 課題及方案概覽

下面顯示的兩組手寫體數字圖片,您是否能從中夠辨認出由計算機生成的『手寫』字體是其中哪一組?

 

 

 

 

本文的課題是用機器學習方法『模仿手寫字體』,為了完成這個課題,您將親手體驗生成對抗網絡的設計和實現。『模仿手寫字體』與人像生成的基本原理和工程流程基本是一致的,雖然它們的複雜性和精度要求有一定差距,但是通過解決『模仿手寫字體』問題,可以為生成對抗網絡的原理和工程實踐打下基礎,進而可以逐步嘗試和探索更加複雜先進的網絡架構和應用場景。

《生成對抗網絡》(GAN)由 Ian Goodfellow 等人在 2014年提出,它是一種深度神經網絡架構,由一個生成網絡和一個判別網絡組成。生成網絡產生『假』數據,並試圖欺騙判別網絡;判別網絡對生成數據進行真偽鑑別,試圖正確識別所有『假』數據。在訓練迭代的過程中,兩個網絡持續地進化和對抗,直到達到平衡狀態(參考:納什均衡),判別網絡無法再識別『假』數據,訓練結束。

2016年,Alec Radford 等發表的論文 《深度卷積生成對抗網絡》(DCGAN)中,開創性地將卷積神經網絡應用到生成對抗網絡的模型算法設計當中,替代了全連結層,提高了圖片場景裡訓練的穩定性。

Amazon SageMaker 是 AWS 完全託管的機器學習服務,數據處理和機器學習訓練工作可以通過 Amazon SageMaker 快速、輕鬆地完成,訓練好的模型可以直接部署到全託管的生產環境中。Amazon SageMaker 提供了託管的 Jupyter Notebook 實例,通過 SageMaker SDK 與 AWS 的多種雲服務集成,方便您訪問數據源,進行探索和分析。SageMaker SDK 是一套開放原始碼的 Amazon SageMaker 的開發包,可以協助您很好的使用 Amazon SageMaker 提供的託管容器鏡像,以及 AWS 的其他雲服務,如計算和存儲資源。

如上圖所示,訓練用數據將來自 Amazon S3 的存儲桶;訓練用的框架和託管算法以容器鏡像的形式提供服務,在訓練時與代碼結合;模型代碼運行在 Amazon SageMaker 託管的計算實例中,在訓練時與數據結合;訓練輸出物將進入 Amazon S3 專門的存儲桶裡。後面的講解中,我們會了解到如何通過 SageMaker SDK 使用這些資源。

我們將用到 Amazon SageMaker、Amazon S3 、Amazon EC2 等 AWS 服務,會產生一定的雲資源使用費用。

模型的開發環境 創建Notebook實例

請打開 Amazon SageMaker 的儀錶板(點擊打開 北京區域 | 寧夏區域 ),請點擊Notebook instances 按鈕進入筆記本實例列表。

如果您是第一次使用Amazon SageMaker,您的 Notebook instances 列表將顯示為空列表,此時您需點擊 Create notebook instance 按鈕來創建全新 Jupyter Notebook 實例。

進入 Create notebook instance 頁面後,請在 Notebook instance name 欄位裡輸入實例名字,本文將使用 MySageMakerInstance 作為實例名,您可以選用您認為合適的名字。本文將使用默認的實例類型,因此 Notebook instance type 選項將保持為 *ml.t2.medium*。如果您是第一次使用Amazon SageMaker,您需要創建一個 IAM role,以便筆記本實例能夠訪問 Amazon S3 服務。請在 IAM role 選項點擊為 Create a new role。Amazon SageMaker 將創建一個具有必要權限的角色,並將這個角色分配給正在創建的實例。另外,根據您的實際情況,您也可以選擇一個已經存在的角色。

在 Create an IAM role 彈出窗口裡,您可以選擇 *Any S3 bucket*,這樣筆記本實例將能夠訪問您帳戶裡的所有桶。另外,根據您的需要,您還可以選擇 Specific S3 buckets並輸入桶名。點擊 Create role 按鈕,這個新角色將被創建。

此時,可以看到 Amazon SageMaker 為您創建了一個名字類似 *
AmazonSageMaker-ExecutionRole-**** 的角色。對於其他欄位,您可以使用默認值,請點擊 Create notebook instance 按鈕,創建實例。

回到 Notebook instances 頁面,您會看到 MySageMakerInstance 筆記本實例顯示為 Pending 狀態,這個將持續2分鐘左右,直到轉為 InService 狀態。

     編寫第一行代碼

點擊 Open JupyterLab 連結,在新的頁面裡,您將看到熟悉的 Jupyter Notebook 加載界面。本文默認以 JupyterLab 筆記本作為工程環境,根據您的需要,可以選擇使用傳統的 Jupyter 筆記本。

您將通過點擊 conda_pytorch_p36, 筆記本圖標來創建一個叫做 Untitled.ipynb 的筆記本,您可以稍後更改它的名字。另外,您也可以通過 File > New > Notebook 菜單路徑,並選擇 conda_pytorch_p36 作為 Kernel 來創建這個筆記本。

在新建的 Untitled.ipynb 筆記本裡,我們將輸入第一行指令如下,

import torch  print(f"Hello PyTorch {torch.__version__}")  原始碼下載

請在筆記本中輸入如下指令,下載代碼到實例本地文件系統。

下載完成後,您可以通過 File browser 瀏覽原始碼結構。

本文涉及到的代碼和筆記本均通過 Amazon SageMaker 託管的 Python 3.6、PyTorch 1.4 和 JupyterLab 驗證。本文涉及到的代碼和筆記本可以通過 這裡獲取。

生成對抗網絡模型 算法原理

DCGAN模型的生成網絡包含10層,它使用跨步轉置卷積層來提高張量的解析度,輸入形狀為 (batchsize, 100) ,輸出形狀為 (batchsize, 64, 64, 3)。換句話說,生成網絡接受噪聲向量,然後經過不斷變換,直到生成最終的圖像。

判別網絡也包含10層,它接收 (64, 64, 3) 格式的圖片,使用2D卷積層進行下採樣,最後傳遞給全連結層進行分類,分類結果是 1 或 0,即真與假。

DCGAN 模型的訓練過程大致可以分為三個子過程。

首先, Generator 網絡以一個隨機數作為輸入,生成一張『假』圖片;接下來,分別用『真』圖片和『假』圖片訓練 Discriminator 網絡,更新參數;最後,更新 Generator 網絡參數。

代碼分析

項目目錄 byos-pytorch-gan 的文件結構如下,

文件 model.py 中包含 3 個類,分別是 生成網絡 Generator 和 判別網絡 Discriminator。

class Generator(nn.Module): ...  class Discriminator(nn.Module): ...  class DCGAN(object): """ A wrapper class for Generator and Discriminator, 'train_step' method is for single batch training. """ ... 

文件 train.py 用於 Generator 和 Discriminator 兩個神經網絡的訓練,主要包含以下幾個方法,

def parse_args(): ...  def get_datasets(dataset_name, ...): ...  def train(dataloader, hps, ...): ...  模型的調試

開發和調試階段,可以從 Linux 命令行直接運行 train.py 腳本。超參數、輸入數據通道、模型和其他訓練產出物存放目錄都可以通過命令行參數指定。

python dcgan/train.py --dataset qmnist  --model-dir '/home/myhome/byom-pytorch-gan/model'  --output-dir '/home/myhome/byom-pytorch-gan/tmp'  --data-dir '/home/myhome/byom-pytorch-gan/data'  --hps '{"beta1":0.5,"dataset":"qmnist","epochs":15,"learning-rate":0.0002,"log-interval":64,"nc":1,"nz":100,"sample-interval":100}' 

這樣的訓練腳本參數設計,既提供了很好的調試方法,又是與 SageMaker Container 集成的規約和必要條件,很好的兼顧了模型開發的自由度和訓練環境的可移植性。

模型的訓練和驗證

請查找並打開名為 dcgan.ipynb 的筆記本文件,訓練過程將由這個筆記本介紹並執行,本節內容代碼部分從略,請以筆記本代碼為準。

網際網路環境裡有很多公開的數據集,對於機器學習的工程和科研很有幫助,比如算法學習和效果評價。我們將使用 QMNIST 這個手寫字體數據集訓練模型,最終生成逼真的『手寫』字體效果圖樣。

數據準備

PyTorch 框架的 torchvision.datasets 包提供了QMNIST 數據集,您可以通過如下指令下載 QMNIST 數據集到本地備用。

from torchvision import datasets  dataroot = './data' trainset = datasets.QMNIST(root=dataroot, train=True, download=True) testset = datasets.QMNIST(root=dataroot, train=False, download=True) 

Amazon SageMaker 為您創建了一個默認的 Amazon S3 桶,用來存取機器學習工作流程中可能需要的各種文件和數據。 我們可以通過 SageMaker SDK 中 sagemaker.session.Session 類的 default_bucket 方法獲得這個桶的名字。

from sagemaker.session import Session  sess = Session()  # S3 bucket for saving code and model artifacts. # Feel free to specify a different bucket here if you wish. bucket = sess.default_bucket() 

SageMaker SDK 提供了操作 Amazon S3 服務的包和類,其中 S3Downloader 類用於訪問或下載 S3 裡的對象,而 S3Uploader 則用於將本地文件上傳至 S3。您將已經下載的數據上傳至 Amazon S3,供模型訓練使用。模型訓練過程不要從網際網路下載數據,避免通過網際網路獲取訓練數據的產生的網絡延遲,同時也規避了因直接訪問網際網路對模型訓練可能產生的安全風險。

from sagemaker.s3 import S3Uploader as s3up  s3_data_location = s3up.upload(f"{dataroot}/QMNIST", f"s3://{bucket}/data/qmnist")  訓練執行

通過 
sagemaker.getexecutionrole() 方法,當前筆記本可以得到預先分配給筆記本實例的角色,這個角色將被用來獲取訓練用的資源,比如下載訓練用框架鏡像、分配 Amazon EC2 計算資源等等。

訓練模型用的超參數可以在筆記本裡定義,實現與算法代碼的分離,在創建訓練任務時傳入超參數,與訓練任務動態結合。

hps = { "learning-rate": 0.0002, "epochs": 15, "dataset": "qmnist", "beta1": 0.5, "sample-interval": 200, "log-interval": 64 } 

sagemaker.pytorch 包裡的 PyTorch 類是基於 PyTorch 框架的模型擬合器,可以用來創建、執行訓練任務,還可以對訓練完的模型進行部署。參數列表中, train_instance_type 用來指定CPU或者GPU實例類型,訓練腳本和包括模型代碼所在的目錄通過 source_dir 指定,訓練腳本文件名必須通過 entry_point 明確定義。這些參數將和其餘參數一起被傳遞給訓練任務,他們決定了訓練任務的運行環境和模型訓練時參數。

from sagemaker.pytorch import PyTorch  estimator = PyTorch(role=role, entry_point='train.py', source_dir='dcgan', output_path=s3_model_artifacts_location, code_location=s3_custom_code_upload_location, train_instance_count=1, train_instance_type='ml.c5.xlarge', train_use_spot_instances=True, train_max_wait=86400, framework_version='1.4.0', py_version='py3', hyperparameters=hps) 

請特別注意 train_use_spot_instances 參數,True 值代表您希望優先使用 SPOT 實例。由於機器學習訓練工作通常需要大量計算資源長時間運行,善用 SPOT 可以幫助您實現有效的成本控制,SPOT 實例價格可能是按需實例價格的 20% 到 60%,依據選擇實例類型、區域、時間不同實際價格有所不同。

您已經創建了 PyTorch 對象,下面可以用它來擬合預先存在 Amazon S3 上的數據了。下面的指令將執行訓練任務,訓練數據將以名為 QMNIST 的輸入通道的方式導入訓練環境。訓練開始執行過程中,Amazon S3 上的訓練數據將被下載到模型訓練環境的本地文件系統,訓練腳本 train.py 將從本地磁碟加載數據進行訓練。

# Start training estimator.fit({'QMNIST': s3_data_location}, wait=False) 

根據您選擇的訓練實例不同,訓練過程中可能持續幾十分鐘到幾個小時不等。建議設置 wait 參數為 False ,這個選項將使筆記本與訓練任務分離,在訓練時間長、訓練日誌多的場景下,可以避免筆記本上下文因為網絡中斷或者會話超時而丟失。訓練任務脫離筆記本後,輸出將暫時不可見,可以執行如下代碼,筆記本將獲取並載入此前的訓練回話,

%%time from sagemaker.estimator import Estimator  # Attaching previous training session training_job_name = estimator.latest_training_job.name attached_estimator = Estimator.attach(training_job_name) 

由於的模型設計考慮到了GPU對訓練加速的能力,所以用GPU實例訓練會比CPU實例快一些,例如,p3.2xlarge 實例大概需要15分鐘左右,而 c5.xlarge 實例則可能需要6小時以上。目前模型不支持分布、並行訓練,所以多實例、多CPU/GPU並不會帶來更多的訓練速度提升。

訓練完成後,模型將被上傳到 Amazon S3 裡,上傳位置由創建 PyTorch 對象時提供的 output_path 參數指定。

模型的驗證

您將從 Amazon S3 下載經過訓練的模型到筆記本所在實例的本地文件系統,下面的代碼將載入模型,然後輸入一個隨機數,獲得推理結果,以圖片形式展現出來。執行如下指令加載訓練好的模型,並通過這個模型產生一組『手寫』數字字體。

from helper import * import matplotlib.pyplot as plt import numpy as np import torch from dcgan.model import Generator  device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")  params = {'nz': nz, 'nc': nc, 'ngf': ngf} model = load_model(Generator, params, "./model/generator_state.pth", device=device) img = generate_fake_handwriting(model, batch_size=batch_size, nz=nz, device=device)  plt.imshow(np.asarray(img)) 

結論與總結

近些年成長快速的 PyTorch 框架正在得到廣泛的認可和應用,越來越多的新模型採用 PyTorch 框架,也有模型被遷移到 PyTorch 上,或者基於 PyTorch 被完整再實現。生態環境持續豐富,應用領域不斷拓展,PyTorch 已成為事實上的主流框架之一。Amazon SageMaker 與多種 AWS 服務緊密集成,比如,各種類型和尺寸的 Amazon EC2 計算實例、Amazon S3、Amazon ECR 等等,為機器學習工程實踐提供了端到端的、一致的體驗。Amazon SageMaker 持續支持主流機器學習框架,PyTorch 是這其中之一。用 PyTorch 開發的機器學習算法和模型,可以輕鬆移植到 Amazon SageMaker 的工程和服務環境裡,進而利用 Amazon SageMaker 全託管的 Jupyter Notebook、訓練容器鏡像、服務容器鏡像、訓練任務管理、部署環境託管等功能,簡化機器學習工程複雜度,提高生產效率,降低運維成本。

DCGAN 是生成對抗網絡領域中具裡程碑意義的一個,是現今很多複雜生成對抗網絡的基石。文首提到的 StyleGAN,用文本合成圖像的 StackGAN,從草圖生成圖像的Pix2pix,以及網際網路上爭議不斷的 DeepFakes 等等,都有DCGAN的影子。相信通過本文的介紹和工程實踐,對您了解生成對抗網絡的原理和工程方法會有所幫助。

 

相關焦點

  • 輕鬆構建 PyTorch 生成對抗網絡(GAN)
    本文將引領讀者,從工程實踐角度出發,藉助 AWS 機器學習相關雲計算服務,基於 PyTorch 機器學習框架,構建第一個生成對抗網絡,開啟全新的、有趣的機器學習和人工智慧體驗。還等什麼,讓我們馬上開始吧!
  • PyTorch 生成對抗網絡 01.生成對抗網絡
    我們將會訓練一個生成對抗網絡(GAN)用於在展示了許多真正的名人的圖片後產生新的名人。 這裡的大部分代碼來自pytorch/examples中的 dcgan 實現,本文檔將對實現進行進行全面 的介紹,並闡明該模型的工作原理以及為什麼如此。但是不需要擔心,你並不需要事先了解 GAN,但可能需要花一些事件來推理一下底層 實際發生的事情。此外,為了有助於節省時間,最好是使用一個GPU,或者兩個。
  • 基於生成對抗網絡的醫學數據域適應研究
    參考基於生成對抗網絡提出了一種半監督生成對抗網絡來對心臟超聲中的有用圖像和非有用圖像進行分類,作者通過實驗發現,基於生成對抗網絡的分類模型的識別準確度和穩定性都高於普通的卷積神經網絡分類模型。自動編碼器是一種自動學習數據降維和重要特徵提取的技術,能否將自動編碼器和生成對抗網絡結合在一起構成一個強大的特徵提取模型,從而有效地學習如何提取不同分布的數據的重要特徵?
  • PyTorch 圖像:05.生成對抗示例
    生成對抗示例本教程將提高您對ML(機器學習)模型的安全漏洞的認識,並將深入了解對抗性機器學習的熱門話題。您可能會驚訝地發現,為圖像添加難以察覺的擾動會導致模型性能大不相同。鑑於這是一個教程,我們將通過圖像分類器上的示例探討該主題。
  • 吳恩達Deeplearning.ai國慶節上新:生成對抗網絡(GAN)專項課程
    作者:蛋醬生成對抗網絡(Generative Adversarial Network,GAN)是當前功能最強大的機器學習模型之一,其能夠生成逼真的圖像、視頻和語音輸出結果。基於 GAN 的應用十分廣泛,比如防禦對抗攻擊和數據匿名化來保護隱私,以提升網絡安全性,再比如生成新圖像,為黑白圖像著色、提高圖像解析度、2D 圖像轉 3D 等技術。
  • 一線工程師必學課,端到端基於PyTorch玩轉GAN
    Amazon SageMaker 是一套強大的完全託管服務,可以幫助開發者和數據科學家快速構建、訓練和部署機器學習 (ML) 模型。這款工具可以大幅度消除機器學習過程中的繁重工作,讓開發高質量模型變得更加輕鬆。
  • 福利,PyTorch中文版官方教程來了
    教程作者來自 pytorchchina.com。教程網站:http://pytorch123.com教程裡有什麼教程根據 PyTorch 官方版本目錄,完整地還原了所有的內容。包括簡單的環境搭建、快速入門相關 API、高級操作、圖像處理實戰、文本處理實戰、GAN 和強化學習等,基本涵蓋了目前所有深度學習相關的知識點。
  • 日本研究員提出基於生成對抗網絡的Iconify模型!
    為解決設計師的這一痛點,來自於日本九州大學和電氣通信大學的研究人員提出了基於生成對抗網絡的Iconify模型,可以將輸入的圖像轉換為較為形象簡潔的圖標,為圖標生成和構建提出了新的可行方向。研究人員希望利用機器學習技術將照片直接轉換為圖標,其核心在於機器學習算法是否可以有效捕捉和模擬人類設計師對於目標的抽象和簡化能力,來構建美觀的圖標。但實現這一目標需要解決以下三個困難:1.
  • 一種基於對抗生成模型的新方法,名曰「CosmoGAN」
    最近,研究人員希望利用AI技術來解決這個問題,提出了一種基於對抗生成模型的新方法,名曰「CosmoGAN」。 隨著宇宙學家和天體物理學家對宇宙中最黑暗的凹陷的探索越來越深入,對越來越強大的觀測和計算工具的需求呈指數級增長。科學家們正在尋求收集、模擬和分析可以幫助解釋的越來越多的數據,解釋我們看到或看不到的事物的本質。
  • 基於PyTorch的CV模型框架,北大學生出品TorchCV
    機器之心整理參與:張倩、澤南在機器學習帶來的所有顛覆性技術中,計算機視覺領域吸引了業內人士和學術界最大的關注。剛剛推出 1.3 正式版的 PyTorch 風頭正勁,人們已經圍繞這一深度學習框架開發出了越來越多的工具。最近,一個名為 TorchCV 的計算機視覺模型框架站上了 GitHub 趨勢榜。
  • 基於衛星圖像得到地面細節照片,生成對抗網絡立新功
    他們訓練了一種機器學習算法,在觀察衛星圖片後,就可以生成地面視角的圖片。這項技術基於一種叫做生成對抗網絡的模型,這種模型由兩大模塊組成,一種叫做生成器,另一種叫做判別器。圖|上:網絡模型結構和訓練過程;下:輸入圖片、生成圖片與真實圖片對比結果以生成長頸鹿的圖片為例,生成器先生成一張圖像,判別器基於一些學習準則進行評估,比如評估它們與長頸鹿的相似程度,生成器接收判別器反饋的評估結果進行修正。重複這段過程,生成器就能逐漸學會產生像長頸鹿一樣的圖像。
  • 5種雲計算所需的機器學習技能
    雲計算服務為構建和部署人工智慧和機器學習應用程式所需的一系列功能提供支持。在許多方面,人工智慧系統的管理方式與IT專業人士在雲平臺中熟悉的其他軟體非常相似。但只是因為可以部署應用程式,並不意味著可以成功地部署機器學習模型。
  • 資源|帶自注意力機制的生成對抗網絡,實現效果怎樣?
    在前一段時間,Han Zhang 和 Goodfellow 等研究者提出添加了自注意力機制的生成對抗網絡,這種網絡可使用全局特徵線索來生成高解析度細節。本文介紹了自注意力生成對抗網絡的 PyTorch 實現,讀者也可以嘗試這一新型生成對抗網絡。
  • 北大張銘教授:基於知識圖譜的機器學習
    6月21日北京智源大會「AI科技女性」專題論壇上,北京大學計算機系教授、AI 2000上榜學者張銘介紹了自己在基於知識圖譜的機器學習研究中的成果和心得。從文本挖掘的經典模型、到基於知識圖譜的擁有常識的文本表示及模型、再到可解釋的推薦系統,相信張銘教授的報告會讓大家對這些問題有更深入的思考並且收穫滿滿。
  • 生成對抗網絡經典論文推薦10篇
    生成式對抗網絡(Generative adversarial networks, GAN)是當前人工智慧學界最為重要的研究熱點之一。其突出的生成能力不僅可用於生成各類圖像和自然語言數據,還啟發和推動了各類半監督學習和無監督學習任務的發展。
  • 雲計算、人工智慧和機器學習如何改變醫療保健
    當地方領導人就如何保護其居民的安全做出決定時,雲基礎架構提供了跨組織的全球網絡安全地收集、分析和共享數據的能力。在這一迅速採用雲計算的時期,人工智慧(AI)和機器學習技術的使用也迅速增加。為了使研究人員能夠研究關鍵的COVID-19信息來對抗病毒,可以使用掃描YouTube是否侵犯版權的相同類型的機器學習技術,大規模地清除DICOM資產(例如肺部X射線)中的患者身份,可用於高清分析的數據。此外,可以取消標識測試數據,從而加快發現速度。
  • 雲計算學習:用PyTorch實現一個簡單的分類器
    主要流程分為以下三個部分:1,自定義生成一個訓練集,具體為在二維平面上的一些點,分為兩類;2,構建一個淺層神經網絡,實現對特徵的擬合,主要是明白在 pytorch 中網絡結構如何搭建;3,完成訓練和測試部分的工作,熟悉 pytorch 如何對網絡進行訓練和測試。1.
  • Kubeflow:連接雲計算和機器學習的「橋梁」
    如何使機器學習更好地在基於Kubernetes的雲平臺上運行,成了近年IT行業的熱點話題,也是各大IT公司試圖解決的重要問題。在這樣的背景下Kubeflow橫空出世!官方對Kubeflow的定義如下:Kubeflow 是 Kubernetes 的機器學習工具包,是一個為Kubernetes構建的簡單、可組合、可攜式、可擴展的機器學習技術棧,作用是方便機器學習的工作流部署。
  • 機器不學習:生成對抗網絡-NIPS 2017對抗樣本攻防賽冠軍算法分享
    對抗樣本是一類被惡意設計來攻擊機器學習模型的樣本。它們與真實樣本的區別幾乎無法用肉眼分辨,但是卻會導致模型進行錯誤的判斷。對抗樣本的存在會使得深度學習在安全敏感性領域的應用收到威脅,如何對其進行有效的防禦是重要的研究課題。我們提出了動量迭代快速符號化梯度法和高層引導去躁算法,分別應用於對抗樣本的攻擊和防禦,取得了NIPS 2017對抗樣本比賽的冠軍。
  • 一大波頂級Python開源庫來襲(包含深度學習|機器學習|神經網絡)
    它的目標是成為用 Python 進行實際,真實數據分析的基礎高級構建塊。」NumPy,SciPy 和 matplotlib 的機器學習 Python 模塊。「PyTorch 是一個 Python 包,提供兩個高級功能:具有強大的 GPU 加速度的張量計算(如 NumPy)基於磁帶的自動編程系統構建的深度神經網絡