Flux.jl model vždy výstupy 1.0 po pridaní Sigmoid aktivácie funkcie

0

Otázka

Môj pôvodný problém bol, že som sa chcel môj model len výstup 0-1, tak som si mapu späť k moje kategorické obrázky labels (Flux.jl obmedziť premenných medzi 0 a 1). Takže som sa rozhodol pridať sigmoid aktivácie funkcie a dopĺňa takto:

σ = sigmoid

model = Chain(
  resnet[1:end-2],
  Dense(2048, 1000),  
  Dense(1000, 256),
  Dense(256, 2, σ),        # we get 2048 features out, and we have 2 classes
);

Avšak, teraz sa mi len pre model výstupy 1.0. Nejaké nápady, ako, prečo, alebo ak som pomocou aktivácie funkcie zle?

flux.jl julia
2021-11-22 20:59:14
1

Najlepšiu odpoveď

1

Zvážte použitie aktivácie funkcie pre vaše skryté vrstvy ako viac lineárne vrstvy (Hustých vrstiev bez non-lineárne funkcie aktivácia) sú len ekvivalent jedného lineárne vrstvy. Ak používate kategórie, ktoré sú exkluzívne (psa alebo mačku, ale nie obe), ktoré pokrývajú všetky vaše prípadoch (vždy to bude psom alebo mačkou a nikdy napríklad pštrosie) potom pravdepodobnosti, by suma na jeden a softmax mali by byť vhodné, aby posledný funkciu. Na softmax funkcia je všeobecne používaný s crossentropy stratu funkcie.

model = Chain(
  resnet[1:end-2],
  Dense(2048, 1000, σ),  
  Dense(1000, 256, σ),
  Dense(256, 2),
  softmax        
);

Pre lepšie numerická stabilita a presnosť, odporúča sa nahradiť crossentropy a logitcrossentropy resp. (v prípade, softmax nie je potrebné).

2021-11-23 08:23:14

To dáva chybu: MethodError: no method matching similar(::Float32, ::Type{Float32}) Closest candidates are: similar(!Matched::Union{LinearAlgebra.Adjoint{T, var"#s814"}, LinearAlgebra.Transpose{T, var"#s814"}} where {T, var"#s814"<:(AbstractVector{T} where T)}, ::Type{T}) where T at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.6/LinearAlgebra/src/adjtrans.jl
logankilpatrick

@logankilpatrick, veď som aktualizoval svoju odpoveď tým, že softmax po poslednom Hustá vrstva. To funguje teraz?
Alex338207

Zdá sa, že obmedzenie hodnoty medzi 0 a 1, ale výstupné hodnoty sú vždy rovnaké pre rôzne obrázky
logankilpatrick

@logankilpatrick ste si istý, že ResNet model je vlastne pre-vyškolení? Je uvedené, ako nie je vopred vyškolení v docs (fluxml.ai/Metalhead.jl/dev/README.html) Ak nie, musíte trénovať všetky parametre modelu a možno aj na viac ako len 2 revolúciou. Ako test, môžete tiež spustiť plnú ResNet model s vašou testy údajov.
Alex338207

To je pravdepodobne problém, dovoľte mi, skúste školenia všetkých vrstiev.
logankilpatrick

Som aktualizoval model a re-vyškoliť všetkých vrstiev, ale výsledok sa zdá byť rovnaké
logankilpatrick

Kód nájdete na tu: github.com/logankilpatrick/DeepLearningWithJulia/blob/main/src/... možno robím niečo zle?
logankilpatrick

V iných jazykoch

Táto stránka je v iných jazykoch

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................