CNTK v2.4 Sürüm Notları

Bu sürümün öne çıkan özellikleri

  • CUDA9, cuDNN 7 ve Visual Studio 2017'ye taşındı.
  • Python 3.4 desteği kaldırıldı.
  • Volta GPU ve FP16 desteği eklendi.
  • Daha iyi ONNX desteği.
  • CPU performans geliştirmesi.
  • Daha fazla OP.

Ops

  • top_k işlem: ileri geçişte, belirtilen eksen boyunca üst (en büyük) k değerlerini ve karşılık gelen dizinleri hesaplar. Geriye doğru geçişte gradyan üst k öğelerine dağılır (üst k öğesinde olmayan bir öğe sıfır gradyan alır).
  • gather işlem artık eksen bağımsız değişkenlerini destekliyor
  • squeeze ve expand_dims tek eksenleri kolayca kaldırmaya ve eklemeye yönelik işlemler
  • zeros_like ve ones_like işlemler. Birçok durumda basit bir 0 veya 1'i doğru yayınlayan CNTK güvenebilirsiniz, ancak bazen gerçek tensor gerekir.
  • depth_to_space: Giriş tensorunda yer alan öğeleri derinlik boyutundan uzamsal bloklara yeniden düzenler. Bu işlemin tipik kullanımı, bazı görüntü süper çözünürlüklü modeller için alt piksel konvolüsyonunun uygulanmasına yöneliktir.
  • space_to_depth: Giriş tensorunda, uzamsal boyutlardan derinlik boyutuna kadar olan öğeleri yeniden düzenler. Bu büyük ölçüde DepthToSpace'in tersidir.
  • sum operation: Giriş tensorlarının öğe açısından toplamını hesaplayan yeni bir İşlev örneği oluşturun.
  • softsign operation: Giriş tensorunun öğe açısından yazılım işaretlerini hesaplayan yeni bir İşlev örneği oluşturun.
  • asinh operation: Giriş tensorunun öğe açısından asinh değerini hesaplayan yeni bir İşlev örneği oluşturun.
  • log_softmax operation: Giriş tensorunun logsoftmax normalleştirilmiş değerlerini hesaplayan yeni bir İşlev örneği oluşturun.
  • hard_sigmoid operation: Giriş tensorunun hard_sigmoid normalleştirilmiş değerlerini hesaplayan yeni bir İşlev örneği oluşturun.
  • element_and, element_not, element_or, element_xor öğe tabanlı mantık işlemleri
  • reduce_l1 operation: Sağlanan eksenler boyunca giriş tensor öğesinin L1 normunu hesaplar.
  • reduce_l2 işlem: Sağlanan eksenler boyunca giriş tensor öğesinin L2 normunu hesaplar..
  • reduce_sum_square operation: Sağlanan eksenler boyunca giriş tensor öğesinin toplam karesini hesaplar.
  • image_scaler işlem: Tek tek değerlerini ölçeklendirerek görüntünün değiştirilmesi.

ONNX

  • CNTK'da ONNX desteğinde çeşitli geliştirmeler yapılmıştır.
  • Güncelleştirmeler
    • ONNX Reshape işlemi işlenecek InferredDimensionşekilde güncelleştirildi.
    • ONNX modellerine ve producer_version alanları eklemeproducer_name.
    • ONNX Conv işlemlerinde ne ne de auto_padpads atrribute belirtildiğinde büyük/küçük harf işleme.
  • Hata düzeltmeleri
    • ONNX Pooling işlemi serileştirmesindeki hata düzeltildi
    • Yalnızca bir toplu iş ekseniyle ONNX InputVariable oluşturmak için hata düzeltmesi.
    • Güncelleştirilmiş belirtimlere uyacak şekilde ONNX Transpose işlemi uygulama hata düzeltmeleri ve güncelleştirmeleri.
    • Güncelleştirilmiş belirtimlere uyması için ONNX Conv, ConvTransposeve ops uygulama hata düzeltmeleri ve Pooling güncelleştirmeleri.

İşleçler

  • Grup konvolüs
    • Grup birleştirmedeki hata düzeltildi. grup 1 için > CNTK Convolution işlemin çıktısı değişir. Bir sonraki sürümde grup konvolüsyonunun daha iyi bir şekilde uygulanması beklenir.
    • Katmandaki Convolution grup kıvrımı için daha iyi hata raporlama.

Halide İkili Convolution

  • CNTK derlemesi artık isteğe bağlı Halide kitaplıklarını kullanarak modülle netopt birlikte kullanılabilecek bir kitaplık oluşturabilirCntk.BinaryConvolution.so/dll. Kitaplık, Python tabanlı binarized convolution işleçlerinden daha iyi performans gösteren iyileştirilmiş ikili kıvrım işleçleri içerir. Derlemede Halide'yi etkinleştirmek için, derlemeye başlamadan önce lütfen Halide sürümünü indirin ve ortam varibale değerini ayarlayın HALIDE_PATH . Linux'ta bunu etkinleştirmek için kullanabilirsiniz ./configure --with-halide[=directory] . Bu özelliği kullanma hakkında daha fazla bilgi için lütfen How_to_use_network_optimization bakın.