


JAX `vmap` tingkah laku tidak dijangka dengan berbilang parameter
Saya mendapati bahawa vmap
dalam jax tidak berkelakuan seperti yang diharapkan apabila digunakan pada berbilang parameter. Sebagai contoh, pertimbangkan fungsi berikut:
def f1(x, y, z): f = x[:, none, none] * z[none, none, :] + y[none, :, none] return f
untuk x = jnp.arange(7), y = jnp.arange(5), z = jnp.arange(3)
,该函数的输出形状为 (7, 5, 3)
. Walau bagaimanapun, untuk versi vmap berikut:
@partial(vmap, in_axes=(none, 0, 0), out_axes=(1, 2)) def f2(x, y, z): f = x*z + y return f
Ia mengeluarkan ralat ini:
ValueError: vmap got inconsistent sizes for array axes to be mapped: * one axis had size 5: axis 0 of argument y of type int32[5]; * one axis had size 3: axis 0 of argument z of type int32[3]
Bolehkah seseorang menerangkan sebab di sebalik kesilapan ini? Semantik
Jawapan Betul
vmap
的语义是它对一个或多个数组执行单个批处理操作。当您指定 in_axes=(none, 0, 0)
时,含义是“同时沿 y
和 z
的前导维度映射”:您看到的错误告诉您 y
和 y
ialah ia melakukan operasi kumpulan tunggal pada satu atau lebih tatasusunan. Apabila anda menentukan in_axes=(none, 0, 0)
, maksudnya ialah "peta di sepanjang dimensi utama kedua-dua y
dan z
": anda Ralat yang anda lihat memberitahu anda bahawa dimensi utama y
dan y
mempunyai saiz yang berbeza, jadi ia tidak serasi kelompok.
Fungsi f1
anda pada asasnya menggunakan penyiaran untuk mengekod tiga operasi kelompok, jadi untuk meniru logik itu menggunakan f1
本质上使用广播来编码三个批处理操作,因此要使用 vmap
复制该逻辑,您将需要 vmap
anda memerlukan tiga aplikasi
@partial(vmap, in_axes=(0, None, None)) @partial(vmap, in_axes=(None, 0, None)) @partial(vmap, in_axes=(None, None, 0)) def f2(x, y, z): f = x*z + y return f
Atas ialah kandungan terperinci JAX `vmap` tingkah laku tidak dijangka dengan berbilang parameter. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Penyelesaian kepada Isu Kebenaran Semasa Melihat Versi Python di Terminal Linux Apabila anda cuba melihat versi Python di Terminal Linux, masukkan Python ...

Apabila menggunakan Perpustakaan Pandas Python, bagaimana untuk menyalin seluruh lajur antara dua data data dengan struktur yang berbeza adalah masalah biasa. Katakan kita mempunyai dua DAT ...

Artikel ini membincangkan perpustakaan Python yang popular seperti Numpy, Pandas, Matplotlib, Scikit-Learn, Tensorflow, Django, Flask, dan Permintaan, memperincikan kegunaan mereka dalam pengkomputeran saintifik, analisis data, visualisasi, pembelajaran mesin, pembangunan web, dan h

Bagaimanakah Uvicorn terus mendengar permintaan HTTP? Uvicorn adalah pelayan web ringan berdasarkan ASGI. Salah satu fungsi terasnya ialah mendengar permintaan HTTP dan teruskan ...

Ekspresi biasa adalah alat yang berkuasa untuk memadankan corak dan manipulasi teks dalam pengaturcaraan, meningkatkan kecekapan dalam pemprosesan teks merentasi pelbagai aplikasi.

Artikel ini membincangkan peranan persekitaran maya di Python, memberi tumpuan kepada menguruskan kebergantungan projek dan mengelakkan konflik. Ia memperincikan penciptaan, pengaktifan, dan faedah mereka dalam meningkatkan pengurusan projek dan mengurangkan isu pergantungan.

Fastapi ...

Di Python, bagaimana untuk membuat objek secara dinamik melalui rentetan dan panggil kaedahnya? Ini adalah keperluan pengaturcaraan yang biasa, terutamanya jika perlu dikonfigurasikan atau dijalankan ...
