Catatan Rilis CNTK v2.4

Sorotan dari rilis ini

  • Pindah ke CUDA9, cuDNN 7 dan Visual Studio 2017.
  • Menghapus dukungan Python 3.4.
  • Menambahkan dukungan Volta GPU dan FP16.
  • Dukungan ONNX yang lebih baik.
  • Peningkatan performa CPU.
  • Lebih banyak OPs.

Ops

  • top_k operasi: dalam terusan, ia menghitung nilai k teratas (terbesar) dan indeks yang sesuai di sepanjang sumbu yang ditentukan. Dalam lulus mundur gradien tersebar ke elemen k atas (elemen yang tidak di atas k mendapatkan gradien nol).
  • gather operasi sekarang mendukung argumen sumbu
  • squeeze operasi untuk expand_dims menghapus dan menambahkan sumbu singleton dengan mudah
  • zeros_like operasi dan ones_like . Dalam banyak situasi Anda hanya dapat mengandalkan CNTK dengan benar menyiarkan 0 atau 1 sederhana tetapi kadang-kadang Anda membutuhkan tensor yang sebenarnya.
  • depth_to_space: Mengatur ulang elemen dalam tensor input dari dimensi kedalaman menjadi blok spasial. Penggunaan umum operasi ini adalah untuk menerapkan konvolusi sub-piksel untuk beberapa model resolusi super gambar.
  • space_to_depth: Mengatur ulang elemen dalam tensor input dari dimensi spasial ke dimensi kedalaman. Ini sebagian besar merupakan inversi dari DepthToSpace.
  • sum operasi: Buat instans Fungsi baru yang menghitung jumlah tensor input yang bijaksana elemen.
  • softsign operasi: Buat instans Fungsi baru yang menghitung softsign yang bijaksana elemen dari tensor input.
  • asinh operasi: Buat instans Fungsi baru yang menghitung asinh elemen bijaksana dari tensor input.
  • log_softmax operasi: Buat instans Fungsi baru yang menghitung nilai logsoftmax yang dinormalisasi dari tensor input.
  • hard_sigmoid operasi: Buat instans Fungsi baru yang menghitung nilai hard_sigmoid dinormalisasi dari tensor input.
  • element_and, element_not, element_or, element_xor operasi logika element-wise
  • reduce_l1 operasi: Menghitung norma L1 dari elemen tensor input di sepanjang sumbu yang disediakan.
  • reduce_l2 operasi: Menghitung norma L2 dari elemen tensor input di sepanjang sumbu yang disediakan..
  • reduce_sum_square operasi: Menghitung kuadrat jumlah elemen tensor input di sepanjang sumbu yang disediakan.
  • image_scaler operasi: Perubahan gambar dengan menskalakan nilai individualnya.

ONNX

  • Ada beberapa peningkatan pada dukungan ONNX di CNTK.
  • Pembaruan
    • Operasi ONNX Reshape yang diperbarui untuk menangani InferredDimension.
    • producer_name Menambahkan bidang dan producer_version ke model ONNX.
    • Menangani kasus ketika tidak ada auto_pad atrribute pads yang ditentukan dalam OP ONNX Conv .
  • Perbaikan bug
    • Memperbaiki bug dalam serialisasi op ONNX Pooling
    • Perbaikan bug untuk membuat ONNX InputVariable hanya dengan satu sumbu batch.
    • Perbaikan bug dan pembaruan implementasi OP ONNX Transpose agar sesuai dengan spesifikasi yang diperbarui.
    • Perbaikan bug dan pembaruan untuk implementasi ONNX Conv, ConvTranspose, dan Pooling ops untuk mencocokkan spesifikasi yang diperbarui.

Operator

  • Konvolusi grup
    • Memperbaiki bug dalam konvolusi grup. Output operasi CNTK Convolution akan berubah untuk grup > 1. Implementasi konvolusi grup yang lebih dioptimalkan diharapkan pada rilis berikutnya.
    • Pelaporan kesalahan yang lebih baik untuk konvolusi grup secara berlapis Convolution .

Konvolusi Biner Halide

  • Build CNTK sekarang dapat menggunakan pustaka Halide opsional untuk membangun Cntk.BinaryConvolution.so/dll pustaka yang dapat digunakan dengan netopt modul. Pustaka berisi operator konvolusi biner yang dioptimalkan yang berkinerja lebih baik daripada operator konvolusi binar berbasis python. Untuk mengaktifkan Halide di build, silakan unduh rilis Halide dan atur HALIDE_PATH varibale lingkungan sebelum memulai build. Di Linux, Anda dapat menggunakan ./configure --with-halide[=directory] untuk mengaktifkannya. Untuk informasi selengkapnya tentang cara menggunakan fitur ini, silakan lihat How_to_use_network_optimization.