no method matching setindex!(::ChainRulesCore.NoTangent, ::Float64, ::Int64)
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 35/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 停滞
- 技術スタック
- julia
調査の方向性
identity_loop と AD.jacobian で失敗を再現し、まず ChainRules の indexing.jl にある setindex! ルールと、スタックトレースに示されている Diffractor の stage1/forward.jl のエントリを読みます。NoTangent の値がどのように setindex! に到達するかを追跡し、identity-loop の Jacobian の例が報告された MethodError なしで完了することを確認します。
索引モデルが issue の本文から書いたものです。
説明
Simple example of taking the jacobian of the identity function, but the identity function allocates a new vector and assigns by iteration:
function identity_loop(x)
y = similar(x)
for i in eachindex(x, y)
y[i] = x[i]
end
return y
end
julia> AD.jacobian(Diffractor.DiffractorForwardBackend(), identity_loop, rand(2))
ERROR: MethodError: no method matching setindex!(::ChainRulesCore.NoTangent, ::Float64, ::Int64)
Stacktrace:
[1] frule(::Tuple{…}, ::typeof(setindex!), x::Vector{…}, v::Float64, inds::Int64)
@ ChainRules ~/.julia/packages/ChainRules/9sNmB/src/rulesets/Base/indexing.jl:215
[2] (::Diffractor.∂☆internal{1})(::ZeroBundle{1, typeof(setindex!)}, ::Vararg{Diffractor.AbstractTangentBundle{1}})
@ Diffractor ~/.julia/packages/Diffractor/QyO8B/src/stage1/forward.jl:119
[3] (::Diffractor.∂☆{1})(::ZeroBundle{1, typeof(setindex!)}, ::Vararg{Diffractor.AbstractTangentBundle{1}})
@ Diffractor ~/.julia/packages/Diffractor/QyO8B/src/stage1/forward.jl:160
[4] identity_loop
@ Diffractor ./REPL[11]:4 [inlined]
[5] (::Diffractor.∂☆recurse{…})(::ZeroBundle{…}, ::Diffractor.TangentBundle{…})
@ Diffractor ~/.julia/packages/Diffractor/QyO8B/src/stage1/recurse_fwd.jl:0
[6] (::Diffractor.∂☆internal{1})(::ZeroBundle{1, typeof(identity_loop)}, ::Vararg{Diffractor.AbstractTangentBundle{1}})
@ Diffractor ~/.julia/packages/Diffractor/QyO8B/src/stage1/forward.jl:121
[7] (::Diffractor.∂☆{1})(::ZeroBundle{1, typeof(identity_loop)}, ::Vararg{Diffractor.AbstractTangentBundle{1}})
@ Diffractor ~/.julia/packages/Diffractor/QyO8B/src/stage1/forward.jl:160
[8] (::Diffractor.var"#pushforward#359")(vs::Any)
@ Diffractor ~/.julia/packages/Diffractor/QyO8B/src/AbstractDifferentiation.jl:13 [inlined]
[9] (::Diffractor.var"#358#362")(cols::Any)
@ Diffractor ~/.julia/packages/AbstractDifferentiation/eEkWP/src/AbstractDifferentiation.jl:526 [inlined]
[10] mapslices(f::Diffractor.var"#358#362"{Diffractor.var"#pushforward#359"{…}}, A::Matrix{Float64}; dims::Int64)
@ Base ./abstractarray.jl:3179
[11] jacobian(b::Diffractor.DiffractorForwardBackend, f::Function, args::Vector{Float64})
@ Diffractor ~/.julia/packages/AbstractDifferentiation/eEkWP/src/AbstractDifferentiation.jl:524
- 主要言語
- Julia
- スター
- 453
- フォーク
- 33
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
JuliaDiff/Diffractor.jl のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 25/100
JuliaDiff/Diffractor.jl#302 · コメント 2 件 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 52/100
JuliaDiff/Diffractor.jl#294 ·
-
bug
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
JuliaDiff/Diffractor.jl#293 ·
-
bug
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
JuliaDiff/Diffractor.jl#290 · コメント 8 件 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 35/100
JuliaDiff/Diffractor.jl#280 · コメント 1 件 ·
JuliaDiff/Diffractor.jl の issue をすべて見る
似ている issue
-
TSDAE's docstring implies a theta argument it does not take対応中かも @singhharsh1708 が今日担当しました。 オープンdocumentation
難易度 1/5 1時間未満 初心者へのやさしさ 74/100
SciML/PETScDiffEq.jl#282 ·
メンテナーはふだん 1 日以内に返信
-
enhancement good first issue help wanted
難易度 2/5 半日 初心者へのやさしさ 82/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
SciML/SciMLBase.jl#1643 ·
メンテナーはふだん 2 日以内に返信
-
authority-vechtstromen ready-for-agent
難易度 1/5 1時間未満 初心者へのやさしさ 75/100
Deltares/Ribasim-NL#890 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
メンテナーはふだん 1 日以内に返信