Hacktoberfest 2026:維護者為十月標記出來的 issue,仍然開放、適合新手。 瀏覽 Hacktoberfest issue

TypeError: in new, expected DataType, got Type{ZeroBundle{1, B}}

未關閉
#199 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視

還沒有人認領這個 Issue。

評估

難度
4/5
預估耗時
3-5 天
新手友好度
38/100
Issue 類型
缺陷
描述清晰度
基本清楚
活躍度
停滯
技術堆疊
julia
領域
backend

研究方向

首先重現 identity_comprehension jacobian 範例。接著檢查 Diffractor 的 tangent.jl 第 148 行和第 251 行附近的程式碼,然後檢查 forward 和 recurse_fwd.jl 的堆疊框架位置,以追蹤無效的切向量建構。範例能夠在沒有 TypeError 的情況下計算出 jacobian 即表示完成。

由索引模型根據 Issue 內容生成。

描述

bug forward-mode

Simple example of taking the jacobian of the identity function, but the identity function is a comprehension

julia> import AbstractDifferentiation as AD

julia> function identity_comprehension(x)
           return [x[i] for i in eachindex(x)]
       end
identity_comprehension (generic function with 1 method)

julia> AD.jacobian(Diffractor.DiffractorForwardBackend(), identity_comprehension, rand(2))
ERROR: TypeError: in new, expected DataType, got Type{ZeroBundle{1, B}}
Stacktrace:
  [1] _TangentBundle
    @ Diffractor ~/.julia/packages/Diffractor/QyO8B/src/tangent.jl:148 [inlined]
  [2] TangentBundle
    @ Diffractor ~/.julia/packages/Diffractor/QyO8B/src/tangent.jl:251 [inlined]
  [3] (::Diffractor.∂☆internal{1})(args::Vararg{Diffractor.AbstractTangentBundle{1}})
    @ Diffractor ~/.julia/packages/Diffractor/QyO8B/src/stage1/forward.jl:149 [inlined]
  [4] (::Diffractor.∂☆{N})(args::Vararg{Diffractor.AbstractTangentBundle{N}}) where N
    @ Diffractor ~/.julia/packages/Diffractor/QyO8B/src/stage1/forward.jl:160 [inlined]
  [5] collect
    @ Diffractor ./array.jl:841 [inlined]
  [6] (::Diffractor.∂☆recurse{…})(::ZeroBundle{…}, ::Diffractor.CompositeBundle{…})
    @ Diffractor ~/.julia/packages/Diffractor/QyO8B/src/stage1/recurse_fwd.jl:0
  [7] (::Diffractor.∂☆internal{1})(::ZeroBundle{1, typeof(collect)}, ::Vararg{Diffractor.AbstractTangentBundle{1}})
    @ Diffractor ~/.julia/packages/Diffractor/QyO8B/src/stage1/forward.jl:121
  [8] (::Diffractor.∂☆{1})(::ZeroBundle{1, typeof(collect)}, ::Vararg{Diffractor.AbstractTangentBundle{1}})
    @ Diffractor ~/.julia/packages/Diffractor/QyO8B/src/stage1/forward.jl:160
  [9] identity_comprehension
    @ Diffractor ./REPL[7]:2 [inlined]
 [10] ∂☆internal
    @ Diffractor ~/.julia/packages/Diffractor/QyO8B/src/stage1/forward.jl:121 [inlined]
 [11] (::Diffractor.∂☆{N})(args::Vararg{Diffractor.AbstractTangentBundle{N}}) where N
    @ Diffractor ~/.julia/packages/Diffractor/QyO8B/src/stage1/forward.jl:160 [inlined]
 [12] (::Diffractor.var"#pushforward#359"{typeof(identity_comprehension), Tuple{Vector{Float64}}})(vs::Tuple{Vector{Float64}})
    @ Diffractor ~/.julia/packages/Diffractor/QyO8B/src/AbstractDifferentiation.jl:13
 [13] (::Diffractor.var"#358#362")(cols::Any)
    @ Diffractor ~/.julia/packages/AbstractDifferentiation/eEkWP/src/AbstractDifferentiation.jl:526 [inlined]
 [14] mapslices(f::Diffractor.var"#358#362"{Diffractor.var"#pushforward#359"{…}}, A::Matrix{Float64}; dims::Int64)
    @ Base ./abstractarray.jl:3179
 [15] 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,通用步驟見我們的新手貢獻指南。

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

JuliaDiff/Diffractor.jl 的其他 Issue

查看 JuliaDiff/Diffractor.jl 的全部 Issue

相似的 Issue

更多 Julia Issue

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。