PaddlePaddle 2.0.0 Beta 已經發布,這是飛槳框架v2.0的測試版,最重要的變化為API體系的全面升級以及命令式編程(動態圖)能力的全面完善。本版本系統優化了飛槳基礎API的目錄結構,全面修復了歷史遺留的相關問題,並對API做了充分補充,特別是提供了更為完善的高層API功能;同時提供了對動態圖的量化訓練、混合精度訓練的支持,動靜轉換實現了完備的語法支持,並且易用性大幅提升,動態圖相關功能趨於完善,推薦使用動態圖模式。此外,推理庫的C++接口也做了升級優化,推理庫對量化模型的支持以及推理性能都有了全面增強。
目錄 | 功能和包含的API |
---|---|
paddle.* | paddle根目錄下保留了常用API的別名,當前包括:paddle.tensor和paddle.framework目錄下的所有API |
paddle.tensor | 跟tensor操作相關的API,比如:創建zeros, 矩陣運算matmul, 變換concat, 計算add, 查找argmax等 |
paddle.nn | 跟組網相關的API,比如:Linear, Conv2d,損失函數,卷積,LSTM等,激活函數等 |
paddle.static.nn | 靜態圖下組網專用API,比如:輸入佔位符data, 全連接層fc, 控制流while_loop/cond |
paddle.static | 靜態圖下基礎框架相關API,比如:Variable, Program, Executor等 |
paddle.framework | 框架通用API和imprerative模式的API,比如:to_tensor等 |
paddle.optimizer | 優化算法相關API,比如:SGD,Adagrad, Adam等 |
paddle.optimizer.lr_scheduler | 學習率衰減相關API |
paddle.metric | 評估指標計算相關的API,比如:accuracy, auc等 |
paddle.io | 數據輸入輸出相關API,比如:Dataset, DataLoader等 |
paddle.device | 設備管理相關API,比如:CPUPlace, CUDAPlace等 |
paddle.distributed | 分布式相關基礎API |
paddle.distributed.fleet | 分布式相關高層API |
paddle.vision | 視覺領域API,比如,數據集,數據處理,常用基礎網絡結構,比如resnet |
paddle.text | NLP領域API, 比如,數據集,數據處理,常用網絡結構,比如transformer |
paddle.add -> paddle.tensor.add
,推薦用戶優先使用較短的路徑paddle.add
Paddle 1.8 | Paddle 2.0-beta |
---|---|
paddle.fluid.layers.elementwise_add | paddle.add |
paddle.fluid.layers.elementwise_sub | paddle.subract |
paddle.fluid.layers.elementwise_mul | paddle.multiply |
paddle.fluid.layers.elementwise_div | paddle.divide |
paddle.fluid.layers.elementwise_max | paddle.maximum |
paddle.fluid.layers.elementwise_min | paddle.minimum |
paddle.fluid.layers.reduce_sum | paddle.sum |
paddle.fluid.layers.reduce_prod | paddle.prod |
paddle.fluid.layers.reduce_max | paddle.max |
paddle.fluid.layers.reduce_min | paddle.min |
paddle.fluid.layers.reduce_all | paddle.all |
paddle.fluid.layers.reduce_any | paddle.any |
paddle.fluid.dygraph.Conv2D | paddle.nn.Conv2d |
paddle.fluid.dygraph.Conv2DTranspose | paddle.nn.ConvTranspose2d |
paddle.fluid.dygraph.Pool2D | paddle.nn.MaxPool2d, paddle.nn.AvgPool2d |
動態圖單機多卡訓練
分布式集合通信
paddle.io.Dataset
進行實現。paddle.io.DataLoader
。paddle.io.IterableDataset
用於流式數據集,並在paddle.io.DataLoader
中支持對其進行並發加速。paddle.io.get_worker_info
用於paddle.io.IterableDataset
中劃分子進程數據。paddle.nn.loss.*
和Metric接口paddle.metric.*
的封裝paddle.Model
封裝,封裝模型開發過程中常用的基礎功能,包括: Model.summary
接口,用於查看動態圖組網的網絡結構與參數數量。Model.prepare
接口,用於指定損失函數和優化算法。Model.fit
接口,實現訓練和評估,可通過callback方式實現訓練過程中執行自定義功能,比如模型存儲等。Model.evaluate
接口,實現評估集上的預測和評估指標計算。Model.predict
接口,實現特定的測試數據推理預測。Model.train_batch
接口,實現單batch數據的訓練。Model.eval_batch
接口,實現單batch數據的評估。Model.text_batch
接口,實現單batch數據的測試。Model.save
/Model.load
接口,支持動態圖訓練模式存儲推理模型。paddle.callbacks.*
,用於模型執行接口,進行日誌記錄、Checkpoint模型存儲等,用戶可繼承paddle.callbacks.Callback
進行自定義。paddle.vision
paddle.vision.datasets.*
,對常用數據集進行封裝,支持數據的隨機訪問paddle.vision.transforms.*
paddle.vision.models.lenet
或 paddle.vision.lenet
paddle.vision.models.vgg
或 paddle.vision.vgg
paddle.vision.models.resnet
或 paddle.vision.vgg
paddle.vision.models.mobilenetv1
或 paddle.vision.mobilenetv1
paddle.vision.models.mobilenetv2
或 paddle.vision.mobilenetv2
paddle.text
paddle.text.datasets.*
,對常用數據集進行封裝,支持數據的隨機訪問paddle.text.*
train_epoch_range
:可以在靜態圖上實現基於epoch粒度的 checkpoint
自動保存和自動加載功能,支持自動斷點重啟。ImperativeQuantAware
類,提供動態圖量化訓練功能,目前支持對Conv2D、Linear等層的量化,支持的模型類型包括MobileNetV1/MobileNetV2/ResNet50等。ImperativeQuantAware.save_quantized_model
接口保存的量化模型可利用Paddle-Lite推理庫進行預測部署。paddle_infer
命名空間,包含推理相關接口;ZeroCopyTensor
更名為 Tensor
,作為推理接口默認輸入輸出表示方式;CreatePaddlePredictor
為 CreatePredictor
,只保留 對AnalysisConfig
的支持,不再支持其他多種Config;PredictorPool
,便於創建多個predictor 時使用。elementwise_add
和elementwise_mul
INT8 oneDNN(原MKL-DNN)內核支持。更新說明:
https://github.com/PaddlePaddle/Paddle/releases/tag/v2.0.0-beta0