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 assesqueeze
operazioniexpand_dims
per la rimozione e l'aggiunta di assi singletonzeros_like
eones_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_or
operazionielement_xor
per la logica a livello di elementoreduce_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 gestireInferredDimension
. - Aggiunta
producer_name
eproducer_version
campi ai modelli ONNX. - Gestione del caso quando non viene specificato né
auto_pad
pads
atrribute in ONNXConv
op.
- Aggiornamento dell'op ONNX
- 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
,ConvTranspose
ePooling
operazioni per corrispondere alle specifiche aggiornate.
- Correzione di bug nella serializzazione dell'op ONNX
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.
- Correzione di bug nella convoluzione del gruppo. L'output dell'CNTK
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 ilnetopt
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 impostareHALIDE_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.