Attempted to print `nothing` while stepping through `Flux.back!()`

Ouverte
#8 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
35/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
À l'abandon
Stack technique
julia
Domaine
devtools

Piste de recherche

Reproduisez l’échec en parcourant pas à pas avec @enter l’exemple signalé de Flux.back!(y). Commencez à ASTInterpreter2/src/ASTInterpreter2.jl:180, où print_next_state affiche l’état du débogueur, et inspectez le chemin d’état associé dans DebuggerFramework/src/DebuggerFramework.jl:209. C’est terminé lorsque le parcours pas à pas de cet appel ne déclenche plus l’erreur d’affichage de nothing.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

Example:

using Flux
W = param(randn(10,10))
y = sum(W * randn(10))

Attempting to @enter the Flux.back!(y) works, but halfway through I reliably hit errors when attempting to step within (Core.kwfunc):

julia> @enter Flux.back!(y)
In #back!#18(once, , x) at /home/staticfloat/.julia/packages/Flux/T3PhK/src/tracker/lib/real.jl:14
14      isinf(x) && error("Loss is Inf")
15      isnan(x) && error("Loss is NaN")
16      return back!(x, 1, once = once)

About to run: (isinf)(-24.445557315016536 (tracked))
1|debug > n
In #back!#18(once, , x) at /home/staticfloat/.julia/packages/Flux/T3PhK/src/tracker/lib/real.jl:14
14      isinf(x) && error("Loss is Inf")
15      isnan(x) && error("Loss is NaN")
16      return back!(x, 1, once = once)
17  end

About to run: (isnan)(-24.445557315016536 (tracked))
1|debug > n
In #back!#18(once, , x) at /home/staticfloat/.julia/packages/Flux/T3PhK/src/tracker/lib/real.jl:14
14      isinf(x) && error("Loss is Inf")
15      isnan(x) && error("Loss is NaN")
16      return back!(x, 1, once = once)
17  end
18

About to run: (Core.apply_type)(NamedTuple, (:once,))
1|debug > si
In #back!#18(once, , x) at /home/staticfloat/.julia/packages/Flux/T3PhK/src/tracker/lib/real.jl:14
14      isinf(x) && error("Loss is Inf")
15      isnan(x) && error("Loss is NaN")
16      return back!(x, 1, once = once)
17  end
18

About to run: (tuple)(true)
1|debug > si
In #back!#18(once, , x) at /home/staticfloat/.julia/packages/Flux/T3PhK/src/tracker/lib/real.jl:14
14      isinf(x) && error("Loss is Inf")
15      isnan(x) && error("Loss is NaN")
16      return back!(x, 1, once = once)
17  end
18

About to run: (NamedTuple{(:once,),T} where T<:Tuple)((true,))
1|debug > si
In Type(args) at boot.jl:547
547   NamedTuple{names}(args::Tuple) where {names} = NamedTuple{names,typeof(args)}(args)
548
549   using .Intrinsics: sle_int, add_int

About to run: $(Expr(:static_parameter, 1))
1|debug > finish
In #back!#18(once, , x) at /home/staticfloat/.julia/packages/Flux/T3PhK/src/tracker/lib/real.jl:14
14      isinf(x) && error("Loss is Inf")
15      isnan(x) && error("Loss is NaN")
16      return back!(x, 1, once = once)
17  end
18

About to run: (Core.kwfunc)(Flux.Tracker.back!)
1|debug > si
ERROR: ArgumentError: `nothing` should not be printed; use `show`, `repr`, or custom output instead.
Stacktrace:
 [1] print(::IOContext{Base.GenericIOBuffer{Array{UInt8,1}}}, ::Nothing) at ./show.jl:566
 [2] print_next_state(::IOContext{Base.GenericIOBuffer{Array{UInt8,1}}}, ::DebuggerFramework.DebuggerState, ::ASTInterpreter2.JuliaStackFrame) at /home/staticfloat/.julia/dev/ASTInterpreter2/src/ASTInterpreter2.jl:180
 [3] print_status(::Base.TTY, ::DebuggerFramework.DebuggerState, ::ASTInterpreter2.JuliaStackFrame) at /home/staticfloat/.julia/dev/DebuggerFramework/src/DebuggerFramework.jl:209
 [4] print_status(::Base.TTY, ::DebuggerFramework.DebuggerState) at /home/staticfloat/.julia/dev/DebuggerFramework/src/DebuggerFramework.jl:181
 [5] (::getfield(DebuggerFramework, Symbol("##4#8")){REPL.Terminals.TTYTerminal,DebuggerFramework.DebuggerState,REPL.LineEdit.Prompt})(::REPL.LineEdit.MIState, ::Base.GenericIOBuffer{Array{UInt8,1}}, ::Bool) at /home/staticfloat/.julia/dev/DebuggerFramework/src/DebuggerFramework.jl:290
 [6] #invokelatest#1 at ./essentials.jl:754 [inlined]
 [7] invokelatest at ./essentials.jl:753 [inlined]
 [8] run_interface(::REPL.Terminals.TextTerminal, ::REPL.LineEdit.ModalInterface, ::REPL.LineEdit.MIState) at /home/staticfloat/tmp/julia-build/julia-master/usr/share/julia/stdlib/v1.2/REPL/src/LineEdit.jl:2273
 [9] run_interface at /home/staticfloat/tmp/julia-build/julia-master/usr/share/julia/stdlib/v1.2/REPL/src/LineEdit.jl:2267 [inlined]
 [10] RunDebugger(::Array{ASTInterpreter2.JuliaStackFrame,1}, ::REPL.LineEditREPL, ::REPL.Terminals.TTYTerminal) at /home/staticfloat/.julia/dev/DebuggerFramework/src/DebuggerFramework.jl:314
 [11] RunDebugger(::Array{ASTInterpreter2.JuliaStackFrame,1}) at /home/staticfloat/.julia/dev/DebuggerFramework/src/DebuggerFramework.jl:240
 [12] top-level scope at /home/staticfloat/.julia/dev/ASTInterpreter2/src/ASTInterpreter2.jl:478
Langage dominant
Julia
Étoiles
9
Forks
5
Métriques de merge des PR
Aucune PR mergée en 30 j

Préparer son environnement

Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de JuliaDebug/DebuggerFramework.jl

Toutes les issues de JuliaDebug/DebuggerFramework.jl

Issues similaires

Plus d'issues Julia

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.