CNTK Versionshinweise v2.4

Highlights dieses Releases

  • Verschoben in CUDA9, cuDNN 7 und Visual Studio 2017.
  • Python 3.4-Unterstützung wurde entfernt.
  • Volta GPU und FP16-Unterstützung hinzugefügt.
  • Bessere ONNX-Unterstützung.
  • CPU-Perf-Verbesserung.
  • Weitere OPs.

Ops

  • top_k Operation: Im Vorwärtsdurchlauf berechnet es die obersten (größten) k-Werte und entsprechende Indizes entlang der angegebenen Achse. Im Rückwärtsdurchlauf wird der Farbverlauf auf die oberen k-Elemente gestreut (ein Element, das sich nicht im oberen k befindet, erhält einen Nullverlauf).
  • gather Der Vorgang unterstützt jetzt ein Achsenargument
  • squeeze und expand_dims Vorgänge zum einfachen Entfernen und Hinzufügen von Singletonachsen
  • zeros_like und ones_like Vorgänge. In vielen Situationen können Sie sich einfach darauf verlassen, CNTK eine einfache 0 oder 1 richtig senden, aber manchmal benötigen Sie den tatsächlichen Tensor.
  • depth_to_space: Neuanordnen von Elementen im Eingabe-Tensor aus der Tiefendimension in räumliche Blöcke. Typischer Einsatz dieses Vorgangs ist die Implementierung von Subpixelkonvolution für einige Bild-Superauflösungsmodelle.
  • space_to_depth: Neuanordnen von Elementen im Eingabe-Tensor von den räumlichen Dimensionen bis zur Tiefendimension. Es ist weitgehend die Umkehrung von DepthToSpace.
  • sum operation: Create a new Function instance that computes element-wise sum of input tensors.
  • softsign operation: Create a new Function instance that computes the element-wise softsign of a input tensor.
  • asinh operation: Create a new Function instance that computes the element-wise asinh of a input tensor.
  • log_softmax operation: Create a new Function instance that computes the logsoftmax normalized values of a input tensor.
  • hard_sigmoid operation: Create a new Function instance that computes the hard_sigmoid normalized values of a input tensor.
  • element_and, element_not, element_orelement_xor elementweise Logikvorgänge
  • reduce_l1 operation: Berechnet die L1-Norm des Eingabe-Tensors-Elements entlang der bereitgestellten Achsen.
  • reduce_l2 operation: Berechnet die L2-Norm des Eingabe-Tensors-Elements entlang der bereitgestellten Achsen..
  • reduce_sum_square operation: Berechnet das Summen-Quadrat des Eingabe-Tensors-Elements entlang der bereitgestellten Achsen.
  • image_scaler operation: Änderung des Bilds durch Skalieren der einzelnen Werte.

ONNX

  • In CNTK wurden mehrere Verbesserungen an der ONNX-Unterstützung vorgenommen.
  • Aktualisierungen
    • Aktualisiert ONNX Reshape op to handle InferredDimension.
    • Hinzufügen producer_name und producer_version Felder zu ONNX-Modellen
    • Behandeln sie den Fall, wenn weder auto_padpads atrribute in ONNX Conv op angegeben wird.
  • Behebung von Programmfehlern
    • Fehler beim ONNX-Op-Serialisierung Pooling behoben
    • Fehlerkorrektur zum Erstellen von ONNX InputVariable mit nur einer Batchachse.
    • Fehlerkorrekturen und Updates für die Implementierung von ONNX Transpose op zur Übereinstimmung mit aktualisierten Spezifikationen.
    • Fehlerkorrekturen und Updates für die Implementierung von ONNX Conv, ConvTransposeund Pooling Ops zur Übereinstimmung mit aktualisierten Spezifikationen.

Operatoren

  • Gruppenkonvolution
    • Fehler bei Gruppenkonvolution behoben. Die Ausgabe von CNTK Convolution op ändert sich für Gruppen > 1. Eine optimierte Implementierung von Gruppenkonvolution wird in der nächsten Version erwartet.
    • Bessere Fehlerberichterstattung für Gruppenkonvolution in Convolution Schicht.

Halide Binary Convolution

  • Der CNTK Build kann jetzt optionale Halide-Bibliotheken verwenden, um Bibliothek zu erstellenCntk.BinaryConvolution.so/dll, die mit dem netopt Modul verwendet werden kann. Die Bibliothek enthält optimierte binäre Konvolutionoperatoren, die besser als die binarisierten binarisierten Konvolutionoperatoren ausführen. Um Halide im Build zu aktivieren, laden Sie die Halide-Version herunter , und legen HALIDE_PATH Sie die Umgebungsvariale fest, bevor Sie einen Build starten. In Linux können Sie es aktivieren ./configure --with-halide[=directory] . Weitere Informationen zur Verwendung dieses Features finden Sie unter How_to_use_network_optimization.