Note sulla versione CNTK v2.4

Elementi da evidenziare in questa versione

  • Spostata in CUDA9, cuDNN 7 e Visual Studio 2017.
  • Rimosso il supporto di Python 3.4.
  • Aggiunta del supporto di GPU Volta e FP16.
  • Supporto ONNX migliore.
  • Miglioramento della CPU perf.
  • Altri indirizzi IP.

Ops

  • top_k operazione: nel passaggio avanti calcola i valori principali (più grandi) k e gli indici corrispondenti lungo l'asse specificato. Nel passaggio indietro la sfumatura viene distribuita negli elementi k superiore (un elemento non nella parte superiore k ottiene una sfumatura zero).
  • gather l'operazione supporta ora un argomento asse
  • squeeze operazioni expand_dims per la rimozione e l'aggiunta di assi singleton
  • zeros_like e ones_like operazioni. In molte situazioni è sufficiente basarsi su CNTK trasmettere correttamente un semplice 0 o 1, ma a volte è necessario il tensore effettivo.
  • depth_to_space: riorganizzare gli elementi nel tensore di input dalla dimensione di profondità in blocchi spaziali. L'uso tipico di questa operazione consiste nell'implementare la convoluzione sub-pixel per alcuni modelli di super-risoluzione delle immagini.
  • space_to_depth: riorganizzare gli elementi nel tensore di input dalle dimensioni spaziali alla dimensione di profondità. È in gran parte l'inverso di DepthToSpace.
  • sum operazione: creare una nuova istanza di funzione che calcola la somma a livello di elemento dei tensori di input.
  • softsign operazione: creare una nuova istanza di funzione che calcola il softsign dell'elemento di un tensore di input.
  • asinh operazione: creare una nuova istanza di funzione che calcola l'asinh a livello di elemento di un tensore di input.
  • log_softmax operazione: creare una nuova istanza di funzione che calcola i valori normalizzati logsoftmax di un tensore di input.
  • hard_sigmoid operazione: creare una nuova istanza di funzione che calcola i valori normalizzati di un tensore di input hard_sigmoid.
  • element_and, element_not, , element_oroperazioni element_xor per la logica a livello di elemento
  • reduce_l1 operazione: calcola la norma L1 dell'elemento tensore di input lungo gli assi forniti.
  • reduce_l2 operazione: calcola la norma L2 dell'elemento tensore di input lungo gli assi forniti.
  • reduce_sum_square operazione: calcola il quadrato di somma dell'elemento tensore di input lungo gli assi specificati.
  • image_scaler operazione: modifica dell'immagine ridimensionando i singoli valori.

ONNX

  • Sono stati apportati diversi miglioramenti al supporto ONNX in CNTK.
  • Aggiornamenti
    • Aggiornamento dell'op ONNX Reshape per gestire InferredDimension.
    • Aggiunta producer_name e producer_version campi ai modelli ONNX.
    • Gestione del caso quando non viene specificato né auto_padpads atrribute in ONNX Conv op.
  • Correzioni di bug
    • Correzione di bug nella serializzazione dell'op ONNX Pooling
    • Correzione di bug per creare ONNX InputVariable con un solo asse batch.
    • Correzioni di bug e aggiornamenti per l'implementazione dell'op ONNX Transpose in modo che corrispondano alle specifiche aggiornate.
    • Correzioni di bug e aggiornamenti per l'implementazione di ONNX Conv, ConvTransposee Pooling operazioni per corrispondere alle specifiche aggiornate.

Operatori

  • Convoluzione del gruppo
    • Correzione di bug nella convoluzione del gruppo. L'output dell'CNTK Convolution op cambierà per i gruppi > 1. È prevista un'implementazione più ottimizzata della convoluzione del gruppo nella versione successiva.
    • Segnalazione degli errori migliore per la convoluzione del gruppo nel Convolution livello.

Convoluzione binaria di halide

  • La compilazione CNTK può ora usare librerie Halide facoltative per compilare Cntk.BinaryConvolution.so/dll la libreria che può essere usata con il netopt modulo. La libreria contiene operatori di convoluzione binari ottimizzati che eseguono prestazioni migliori rispetto agli operatori di convoluzione binari basati su Python. Per abilitare Halide nella compilazione, scaricare il rilascio di Halide e impostare HALIDE_PATH varibale dell'ambiente prima di avviare una compilazione. In Linux è possibile usarlo ./configure --with-halide[=directory] per abilitarlo. Per altre informazioni su come usare questa funzionalità, vedere How_to_use_network_optimization.