PaddlePaddle 2.0.0 Beta 發布,API 體系升級,命令式編程完善

2020-12-09 開源中國

PaddlePaddle 2.0.0 Beta 已經發布,這是飛槳框架v2.0的測試版,最重要的變化為API體系的全面升級以及命令式編程(動態圖)能力的全面完善。本版本系統優化了飛槳基礎API的目錄結構,全面修復了歷史遺留的相關問題,並對API做了充分補充,特別是提供了更為完善的高層API功能;同時提供了對動態圖的量化訓練、混合精度訓練的支持,動靜轉換實現了完備的語法支持,並且易用性大幅提升,動態圖相關功能趨於完善,推薦使用動態圖模式。此外,推理庫的C++接口也做了升級優化,推理庫對量化模型的支持以及推理性能都有了全面增強。

訓練框架

基礎API

兼容性說明

  • Paddle 2.x版本推薦用戶使用位於paddle根目錄下的API,同時在paddle.fluid目錄下保留了所有的Paddle 1.x版本的API。按照設計,Paddle 1.x版本訓練的代碼,不做任何修改,即可在Paddle 2.x版本上正常運行;Paddle 1.x版本訓練保存的模型,可以使用Paddle 2.x版本進行推理。

目錄結構調整

  • 在2.0-alpha版本的基礎上,本版本對於目錄結構進行了一些調整,調整完最新的目錄結構如下:
    目錄 功能和包含的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

API別名規則

  • 為了方便用戶使用,API會在不同的路徑下建立別名,比如paddle.add -> paddle.tensor.add,推薦用戶優先使用較短的路徑paddle.add
  • 所有framework, tensor目錄下的API,均在paddle根目錄建立別名;除少數特殊API外,其他API在paddle根目錄下均沒有別名。
  • paddle.nn目錄下除functional目錄以外的所有API,在paddle.nn目錄下均有別名;functional目錄中的API,在paddle.nn目錄下均沒有別名。
  • 以下為一些特殊的別名關係,推薦使用左邊的名稱:
    • paddle.sigmoid -> paddle.tensor.sigmoid -> paddle.nn.functional.sigmoid
    • paddle.tanh -> paddle.tensor.tanh -> paddle.nn.functional.tanh
    • paddle.remainder -> paddle.mod -> paddle.floor_mod
    • paddle.divide -> paddle.true_divide
    • paddle.rand -> paddle.uniform
    • paddle.randn -> paddle.standard_normal
    • Optimizer.clear_grad -> Optimizer.clear_gradients
    • Optimizer.set_state_dict -> Optimizer.set_dict
    • Optimizer.get_lr -> Optimizer.current_step_lr
    • Layer.clear_grad -> Layer.clear_gradients
    • Layer.set_state_dict -> Layer.set_dict

常用API名稱變化

  • 此版本使用Tensor表示數據,創建張量API, paddle.fluid.dygraph.to_variable修改為paddle.to_tensor
  • 加、減、乘、除使用全稱,不使用簡稱
  • 對於當前逐元素操作,不加elementwise前綴
  • 對於按照某一軸操作,不加reduce前綴
  • Conv, Pool, Dropout, BatchNorm, Pad組網類API根據輸入數據類型增加1d, 2d, 3d後綴
    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

新增API

  • 共計新增140個API,具體參考連結和API文檔
    • 新增環境設置API:paddle.set_default_dtype, paddle.get_default_dtype, paddle.set_device, paddle.get_device, paddle.manual_seed
    • 新增Tensor操作API:numel, chunk, masked_select, isfinite, isinf, isnan, sort, topk, Flatten, dim, tile
    • 新增組網API: Linear, Bilinear, Embedding, linear, bilinear, embedding
    • 新增視覺組網類API:Conv1d, ConvTranspose1d, MaxPool1d, MaxPool2d, MaxPool3d, AvgPool1d, AvgPool2d, AvgPool3d, AdaptiveMaxPool1d, AdaptiveMaxPool2d, AdaptiveMaxPool3d, ReflactionPad1d, ReflactionPad2d, ReflactionPad3d, ReplicationPad1d, ReplicationPad2d, ReplicationPad3d, ZeroPad2d, ConstantPad1d, ConstantPad2d, ConstantPad3d, PixelShuffle, Upsample, UpsamplingNearest2d, UpsamplingBilinear2d, conv1d, conv_transpose1d, avg_pool1d, avg_pool2d, avg_pool3d, max_pool1d, max_pool2d, max_pool3d, adaptive_max_pool1d, adaptive_max_pool2d, adaptive_max_pool3d, adaptive_avg_pool1d, adaptive_avg_pool3d
    • 新增文本處理組網類API: SimpleRNN, LSTM, GRU, MultiHeadAttention, Transformer, TransformerEncoder, TransformerEncoderLayer, TransformerDecoder, TransformerDecoderLayer
    • 新增激活類API:ELU, Hardshrink, Hardtanh, PReLU, ReLU6, Tanh, Tanhshrink, Softmax
    • 新增歸一化API:BatchNorm1d, BatchNorm2d, BatchNorm3d, SyncBatchNorm, InstanceNorm1d, InstanceNorm2d, InstanceNorm3d, weight_norm, remove_weight_norm, batch_norm, instance_norm, layer_norm, normalize
    • 新增Dropout類API:Dropout2d, Dropout3d, AlphaDropout, dropout, dropout2d, dropout3d
    • 新增相似度、損失函數類API:CosineSimilarity, PairwiseDistance, CTCLoss, KLDivLoss, BCEWithLogitsLoss, MarginRankingLoss, SmoothL1Loss, consine_similarity, binary_cross_entropy, binary_cross_entropy_with_logits, cross_entropy, ctc_loss, l1_loss, mse_loss, margin_ranking_loss, nll_loss, smooth_l1_loss
    • 新增分布式通信類API: broadcast, all_reduce, reduce, all_gather, scatter, barrier
    • 新增概率分布類API: Distribution, normal, bernoulli
    • 新增Optimizer相關API:step, AdamW
    • 新增數據集相關API:Dataset, IterableDataset, TensorDataset, Sampler, RandomSampler, BatchSampler, DistributedBatchSampler

修復和完善API

  • 共計修改和完善155個API,具體參考連結和API文檔
  • 修復隨機數生成相關的API,包括:種子設置paddle.rand, randn, randint, randperm, dropout, Uniform, Normal等
  • 以下API對應的底層C++ OP進行了代碼升級,理論上可以實現兼容,但不排除會出現少量不兼容的情況:linspace, concat, gather, gather_nd, split, squeeze, unsqueeze, clip, argmax, argmin, mean, norm, unique, cumsum, LeakyReLU, leaky_relu, hardshrink, embedding, margin_ranking_loss, grid_sample, affine_grid
  • 增加了relu6和Sigmoid激活函數的 oneDNN支持

多設備/分布式訓練API

  • 動態圖單機多卡訓練

    • 新增paddle.distributed.spawn(func, args=(), nprocs=-1, join=True, daemon=False, **options),用於啟動動態圖多卡訓練。
    • 新增paddle.distributed.init_parallel_env(),用於初始化動態圖多卡訓練的環境。
    • 新增paddle.distributed.get_rank(),用於獲取多卡訓練時當前進程的rank。
    • 新增paddle.distributed.get_world_size(),用於獲取多卡訓練時參與訓練的總進程數。
  • 分布式集合通信

    • 新增paddle.distributed.broadcast(tensor, src, group=0),將指定進程上的tensor廣播到所有進程。
    • 新增paddle.distributed.all_reduce(tensor, op=ReduceOp.SUM, group=0),對所有進程的指定Tensor執行歸約操作,結果返回給所有進程。
    • 新增paddle.distributed.reduce(tensor, dst, op=ReduceOp.SUM, group=0),對所有進程的指定Tensor執行歸約操作,結果返回給指定進程。
    • 新增paddle.distributed.all_gather(tensor_list, tensor, group=0),聚合所有進程的指定Tensor,結果返回給所有進程。
    • 新增paddle.distributed.scatter(tensor, tensor_list=None, src=0, group=0),將指定進程Tensor列表中的Tensor分發到所有進程。
    • 新增paddle.distributed.barrier(group=0),同步所有進程。

高層API

  • 新增飛槳高層API,對模型開發過程中常見的組網、訓練、評估、預測、存取等操作進行封裝,實現低代碼開發,MNIST手寫數字識別任務對比命令式編程模式實現方式,高層API可減少80%執行類代碼。
  • 數據管理
    • 統一數據加載使用方式
      • 數據集定義,繼承paddle.io.Dataset進行實現。
      • 多進程數據加載,使用paddle.io.DataLoader
    • 新增paddle.io.IterableDataset用於流式數據集,並在paddle.io.DataLoader中支持對其進行並發加速。
    • 新增paddle.io.get_worker_info用於paddle.io.IterableDataset中劃分子進程數據。
  • 模型組網
    • 新增常見Loss接口paddle.nn.loss.*和Metric接口paddle.metric.*的封裝
    • 發布基於高層API實現的12個模型
  • 模型執行
    • 新增Model類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接口,支持動態圖訓練模式存儲推理模型。
    • 新增Callback接口paddle.callbacks.*,用於模型執行接口,進行日誌記錄、Checkpoint模型存儲等,用戶可繼承paddle.callbacks.Callback進行自定義。
  • 領域API
    • 新增視覺(CV)領域接口paddle.vision
      • 新增Dataset接口paddle.vision.datasets.*,對常用數據集進行封裝,支持數據的隨機訪問
      • 新增Resize, Normalize等24種常見的數據預處理接口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
    • 新增自然語言處理(NLP)領域接口paddle.text
      • 新增Dataset接口paddle.text.datasets.*,對常用數據集進行封裝,支持數據的隨機訪問
      • 新增領域組網接口paddle.text.*
  • 自動斷點重啟
    • 新增接口 train_epoch_range:可以在靜態圖上實現基於epoch粒度的 checkpoint 自動保存和自動加載功能,支持自動斷點重啟。

功能優化(含分布式)

動態圖轉靜態圖

  • ProgramTranslator新增語法支持
    • 新增對return語法動轉靜支持,使得動轉靜時可以在if-elif-else或者循環條件中提前return,也能return不同類型的tensor或None。
    • 新增對print語法動轉靜支持,使得print(tensor)也能在動轉靜中列印出tensor。
    • 新增對for遍歷Tensor,for enumerate遍歷Tensor,for遍歷TensorList,for enumerate遍歷TensorList幾種語法的動轉靜支持,使得循環處理Tensor的相關操作在動轉靜中能夠靈活使用。
    • 新增對assert語法動轉靜支持,使得assert tensor也能在動轉靜中保證tensor為True(bool類型)或者非0(其他數據類型)。
    • 新增對數據類型cast的轉寫支持,使得float(tensor), int(tensor) 等類似的動態圖類型轉化語句也能在靜態圖中進行類型轉化。
  • ProgramTranslator易用性優化功能
    • 將動轉靜的返回類型從callable函數改為class StaticLayer,這個class可以調用.code,.main_program等接口更輕鬆獲取轉化後的靜態圖信息。
    • 增加 set_verbosity 和 set_code_level 接口,可以讓用戶設置log級別來查看動轉靜運行過程的log或者查看中間狀態轉化的代碼。
    • 新增InputSpec,可以指定動轉靜時輸入Tensor變量形狀和數據類型。
    • 優化了動轉靜運行下如果出錯顯示的報錯信息,使動轉靜後靜態圖運行錯誤的代碼也能匯報到原動態圖錯誤的代碼行,並且刪除python棧中動轉靜部分報錯,使報錯信息更多與用戶代碼相關。
    • 動轉靜支持用 pdb.set_trace() 進行斷點調試。
  • 優化部署模型存儲載入接口
    • 新增 paddle.jit.save 接口用於動轉靜模型的保存,使接口更加易用,刪除舊接口ProgramTranslator.save_inference_model 。
    • 新增 paddle.jit.load 接口用於載入靜態圖格式存儲的預測模型,包括paddle.jit.save和paddle.io.save_inference_model保存的模型,模型載入後可在動態圖下用於模型推理或者模型訓練調優。

混合精度訓練

  • 增加了動態圖混合精度的支持,ResNet-50模型在V100上使用混合精度相比於fp32訓練加速比為2.6。

量化訓練

  • 新增ImperativeQuantAware類,提供動態圖量化訓練功能,目前支持對Conv2D、Linear等層的量化,支持的模型類型包括MobileNetV1/MobileNetV2/ResNet50等。
  • 模型經動態圖量化訓練後,使用ImperativeQuantAware.save_quantized_model接口保存的量化模型可利用Paddle-Lite推理庫進行預測部署。
  • 靜態圖量化支持Conv2d_tranpose量化,支持Linear使用per-channel形式量化。

性能優化(含分布式)

  • 簡化動態圖模式下DataLoader底層實現邏輯,降低讀取線程開銷,進一步提升數據讀取效率,提升模型整體訓練速度。經測試MobileNetV1在V100單卡、BatchSize=128的場景下整體訓練速度提升34%。
  • 動態圖組網API升級和性能優化,大量動態圖API將直接調用自動生成的Pybind接口,提升性能。

動態圖基礎功能

  • 支持多卡訓練時配置Embedding等API使用稀疏參數梯度更新的功能。
  • 增加Tensor類成員函數,包括Tensor().abs()、Tensor().add()、Tensor().cos()等120餘個。
  • 增加Layer的dir()接口,可以方便地查看Layer中屬性和函數。
  • 增加optimizer.set_lr()接口,用戶可以在動態圖模式下中靈活調整學習率。
  • 增加全局參數初始化方式的接口set_global_initializer,可定義全局的參數初始化方法。
  • 增加了對動態訓練和推理的oneDNN(原MKL-DNN)支持。Resent50 oneDNN動態訓練可以使用(Minist數據集)。

調試分析

  • 將框架內僅100處使用LOG(FATAL)拋出異常的寫法統一改為使用PADDLE_THROW,優化由於框架不支持某種行為而導致的報錯格式與內容。
  • 完善框架內Signal Handler實現,優化執行遇到系統Signal錯誤時的報錯格式與內容。
  • 優化框架報錯棧格式,將編譯時python報錯棧移至原生報錯棧下方,提升報錯信息閱讀體驗。
  • 累計進一步完善約1300餘條框架內檢查報錯的錯誤類型與提示文案,提升框架整體調試易用性。
  • 動態圖報錯信息增強,動態圖下Pybind層的報錯信息進行系統性增強,提升用戶體驗。

Bug修復

  • 修復動態圖Layer使用add_parameter接口可能意外出現AttributeError的問題,增強輸入檢查。
  • 修復無法正常列印int_8與uint_8類型的Tensor的問題,使數據可以正常輸出。

依賴庫升級

  • 升級oneDNN(原MKL-DNN)從1.3至1.5版本。

推理

Paddle Inference

API

  • 全面升級推理C++ API,推薦使用新版API。原API暫時保留,但使用時會報 warning,計劃未來會刪除;新版API主要是從規範命名、簡化使用方法角度做的升級,重要變化包括:
    • C++ 接口新增 paddle_infer 命名空間,包含推理相關接口;
    • ZeroCopyTensor 更名為 Tensor,作為推理接口默認輸入輸出表示方式;
    • 簡化 CreatePaddlePredictor 為 CreatePredictor,只保留 對AnalysisConfig 的支持,不再支持其他多種Config;
    • 新增服務相關的工具類,比如 PredictorPool,便於創建多個predictor 時使用。

功能升級

  • 升級算子版本兼容信息註冊表以支持更精確的Op版本信息,提升推理兼容性。
  • 新增對TRT 7.1版本的適配支持。
  • Paddle-TensorRT增強對 PaddleSlim 量化模型的支持,涵蓋CV上檢測,分類,分割等多個任務。
  • Python端推理新增對用戶自定義OP支持。
  • CPU端增加了elementwise_add 和elementwise_mul INT8 oneDNN(原MKL-DNN)內核支持。
  • 提升了CPU端測試量化模型的易用性,支持同時對比測試原始模型和量化模型。
  • 新增對Jetson Nx硬體的適配支持。

性能優化

  • 新增 conv + affine_op pass,在6248機器上,MASK-RCNN fp32單線程性能提高了26%。
  • 新增fc + gru pass和oneDNN(原MKL-DNN) GRU fp32內核,使得GRU fp32模型4線程推斷速度在機器Intel Xeon 6248上提高 20%。
  • 增加了對許多Op的oneDNN inplace支持(人臉feature fp32模型提速2%)。
  • 優化的oneDNN LRN op,使得GoogleNet fp32模型提速1%。
  • 升級了量化模型的轉換和優化。
  • 優化了CUDA 的ArgMin, ArgMax OP,使得該OP的二進位大小從60M下降至1.3M。

Bug修復

  • 修復CPU下的mask-rcnn推斷錯誤的問題。
  • 修復CPU多線程量化模型和推斷過程中出現的錯誤。

更新說明:

https://github.com/PaddlePaddle/Paddle/releases/tag/v2.0.0-beta0

相關焦點

  • 深度學習與PaddlePaddle的應用-個性化推薦
    1.根據上一節的內容,類比兩種情況的求解思路,可以得出上述問題的目標函數:由此可知,對於一個電影推薦系統,初始化用戶參數向量0,然後可以迭代求出所有的電影特徵值X 和用戶參數向量0,這就是初始的協同過濾方法的基本思路。如果將己知0求X和己知求0的兩個目標函數進行改進,就可以得到同時學習0和X的0標函數。
  • 飛槳開源框架2.0四大亮點搶先看:全新升級的API體系,成熟完備的...
    5月20日的「WAVE SUMMIT」峰會上,飛槳開源框架發布了1.8版本。如今飛槳即將進入了2.0時代。飛槳2.0的四大創新帶來體驗變革,助力 AI 產業應用和科研創新再次升級!1.因此,API 是深度學習框架威力發揮的直接入口,對開發者使用體驗起著至關重要的作用,飛槳一直以來對 API 設計以及整體 API 體系的完善給予足夠重視,持續完善優化。飛槳開源框架2.0對 API 體系進行了全新升級,讓開發者們可以在使用飛槳研發探索的過程中體驗到隨心所欲、暢通無阻的愉悅感覺。
  • 百度發布 Paddle Fluid v1.3 版本,帶來多項重要更新
    正式發布 AnalysisConfig 預測接口,支持計算圖分析、算子融合等優化,並支持利用 Intel MKLDNN、Nvidia TensorRT 子圖引擎等第三方庫的加速.模型庫新增發布 PaddlePaddle 視頻模型庫,提供 5 個視頻分類經典模型以及適合視頻分類任務的通用骨架代碼,用戶可一鍵式高效配置模型完成訓練和評測。
  • 華為發布鴻蒙OS Beta版:beta版升級在哪裡?
    原標題:華為發布鴻蒙OS Beta版:beta版升級在哪裡?   手機版的發布,標誌著鴻蒙OS生態發展的又一重要裡程碑。
  • smart-doc 2.0.0 重磅發布,Java 零註解 API 文檔生成工具
    支持從項目外部加載原始碼來生成欄位注釋(包括標準規範發布的jar包)。 支持生成多種格式文檔:Markdown、HTML5、Asciidoctor、Postman collection、Open Api 3.0+。 輕易實現在Spring Boot服務上在線查看靜態HTML5 api文檔。
  • 經典目標檢測方法Faster R-CNN和Mask R-CNN|基於PaddlePaddle深度...
    圖1 基於paddlepaddle訓練的Faster R-CNN模型預測結果 圖2基於paddlepaddle訓練的Mask R-CNN模型預測結果 從R-CNN到Mask R-CNN Mask R-CNN是承繼於Faster R-CNN,
  • Mars-java 3.0.0 發布,面向聲明式 API 編程(DAP)的框架
    本次更新帶來了兩個變動 面向聲明式API編程(DAP) 單元測試改動單元測試 取消了抽象方法before,而採用了註解的方式,在單測類上加上MarsTest註解即可面向聲明式API編程(DAP)
  • smart-doc 2.0.1 發布,Java 零註解 API 文檔生成工具
    支持從項目外部加載原始碼來生成欄位注釋(包括標準規範發布的jar包)。 支持生成多種格式文檔:Markdown、HTML5、Asciidoctor、Postman collection、Open Api 3.0+。 輕易實現在Spring Boot服務上在線查看靜態HTML5 api文檔。
  • 如何基於Flutter和Paddle Lite實現實時目標檢測
    開發環境我們在開發的時候環境如下:Flutter version 1.12.13+hotfix.8Dart version 2.7.0如果你有其他框架訓練出來的模型,如caffe、tensorflow、onnx等,可以利用X2Paddle來轉換。
  • 飛槳框架高層API,一起輕鬆玩轉AI
    因為高層 API 本身不是一個獨立的體系,它完全可以和基礎 API 互相配合使用,做到高低融合,使用起來會更加便捷。使我們在開發過程中,既可以享受到基礎 API 的強大,又可以兼顧高層 API 的快捷。
  • 飛槳框架高層API,輕鬆玩轉AI
    機器之心發布機器之心編輯部嚮往深度學習技術,可是深度學習框架太難學怎麼辦?百度傾心打造飛槳框架高層 API,零基礎也能輕鬆上手深度學習,一起來看看吧?因為高層 API 本身不是一個獨立的體系,它完全可以和基礎 API 互相配合使用,做到高低融合,使用起來會更加便捷。使我們在開發過程中,既可以享受到基礎 API 的強大,又可以兼顧高層 API 的快捷。
  • 俚語Paddle your own canoe.不是說獨木舟的事,而是要你自力更生
    canoe最早指的是樹幹挖空了心製成的木船,paddle是一種形狀短寬的槳。paddle one's own canoe指「劃自己的船」,有自立立、不依賴別人的意思,另外還有不多管別人閒事的意思。表示後一種意思的時候相當於mind one's own business.
  • 深度學習CPU加速方案,飛槳全流程開發工具PaddleX 打通OpenVINO...
    這帶來一個問題,如果對前期大批量投入的低性能設備進行升級甚至更換,都將是一筆非常大的費用,從而提升了產業智能化升級時前期投入的硬體成本。比如,在工業界,產線上已有的工控機大多只配備了CPU,而深度學習涉及海量計算需要運算速度更快的GPU來處理,而GPU的價格非常昂貴,如果全部升級為高性能GPU,成本非常高。
  • 借著華為發布鴻蒙OS 2.0 Beta版本,說說作業系統那些事兒
    2020年12月16日,華為在北京舉辦的鴻蒙(Harmony) OS 2.0 beta活動大會上,正式發布了面向手機應用的鴻蒙OS 2.0Beta版本,同時面向部分華為機型開放申請公測。這意味著華為將向200多萬手機開發者開放完整HarmonyOS 2.0系統,包括應用開發接口(API)、集成開發環境(IDE)、DevEco Studio工具平臺等。
  • Android Studio 4.0 Beta 2 發布 修復IDE 中的Git 版本控制錯誤
    日前Android Studio 4.0 Beta 2已發布,更新內容如下:      修復:IDE 中的 Git 版本控制錯誤  Git 版本控制中要求身份驗證的操作在 Android Studio 4.0 Beta 1 的 IDE 中已被破壞。
  • Apache Airflow 2.0 發布,Airbnb 開源的調度系統
    Apache Airflow 2.0.0 已正式發布,Airflow 是一個靈活、可擴展的工作流自動化和調度系統,可編集和管理數百 PB 的數據流。
  • Vue 3.0 語法快速入門
    作為前端開發者,這幾天想必大家都看到了Vue3.0的beta版新聞了,是的,尤大大在4.17號微博曬出了Vue3.0的beta連結,不少FEer開始興奮,不過也有不少其它聲音:『我學不動了』、『這不就是React』、『啥時候出正式版』;Vue3.0-beta連結:https://github.com/vuejs/
  • 尤雨溪介紹 Vue 3:語法不變、TS 支持很好、2.0 系列還會發一個版本
    此前 Vue 發布了 3.0 的 beta 版本,不久後項目核心開發者尤雨溪公開分享了關於該版本的相關信息。 Composition API(組件聲明式),有人認為這是語法上的大變化,但實際上這不是直接替換掉原有的 Option API(選項聲明式),而是引入了一種更好的選擇,項目中可以自行選擇使用,Vue 3 在語法上基本沒有什麼變化。
  • 猿編程成立少兒編程研究院 持續推動課程創新體系專業化升級
    南方網訊 12月1日,猿輔導旗下品牌猿編程宣布對其少兒編程課程進行全面的專業化升級,正式開啟4-18歲全年齡段青少年編程教育新模式。為更好地完善課程內容,取各學科之精華,猿編程專門成立「少兒編程研究院」,力邀計算機科學家吳軍、腦科學家劉嘉等各領域科學家和業界翹楚一同為課程內容研發提供創新思路。