Trainable variables created by tfp.experimental.vi.util.build_trainable_linear_operator_block are lost after the resulting bijector is wrapped in a tfb.Chain
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 45/100
- Issue-Typ
- Bug
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Veraltet
- Tech-Stack
- python, tensorflow
- Bereich
- machine-learning
Rechercherichtung
Beginne damit, das Python-Beispiel mit TensorFlow 2.18.0 und TensorFlow Probability 0.25.0 zu reproduzieren, wobei der Fokus auf build_trainable_linear_operator_block, ScaleMatvecLinearOperatorBlock und Chain liegt. Vergleiche die fehlerhaften und funktionierenden Beispiele und überprüfe anschließend, dass die resultierende Chain trainierbare Variablen bereitstellt; füge für dieses Verhalten Testabdeckung hinzu oder aktualisiere sie.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Creating a linear operator via the function tfp.experimental.vi.util.build_trainable_linear_operator_block and then plugging it into tfb.ScaleMatvecLinearOperatorBlock produces a bijector with trainable variables. If this bijector is then put inside a tfb.Chain(), trainable variables are no longer found by the reflection. The same is not true if the linear operator is created manually. My usage of tfp.experimental.vi.util.build_trainable_linear_operator_block is based on the tutorial Variational_Inference_and_Joint_Distributions
import tensorflow as tf
import tensorflow_probability as tfp
tfb = tfp.bijectors
print(tf.__version__)
# 2.18.0
print(tfp.__version__)
# 0.25.0
# Broken example (should print True)
operators = ((tf.linalg.LinearOperatorDiag,),)
block_tril_linop = tfp.experimental.vi.util.build_trainable_linear_operator_block(
operators, (1,)
)
scale_bijector = tfb.ScaleMatvecLinearOperatorBlock(block_tril_linop)
assert len(scale_bijector.trainable_variables) > 0
c = tfb.Chain([scale_bijector])
print(len(c.trainable_variables) > 0)
# False
# Working example
LO = tf.linalg.LinearOperatorBlockDiag([tf.linalg.LinearOperatorDiag(tf.Variable([1.0]))])
scale_bijector = tfb.ScaleMatvecLinearOperatorBlock(LO)
assert len(scale_bijector.trainable_variables) > 0
c = tfb.Chain([scale_bijector])
print(len(c.trainable_variables) > 0)
# True
- Vorherrschende Sprache
- Jupyter Notebook
- Sterne
- 4.4k
- Forks
- 1.1k
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus tensorflow/probability
-
KL divergence between two `TransformedDistribution`s with a shared non-injective bijector (`AbsoluteValue`) returns the base KLEvtl. vergeben @Andreas-Hum hat das vor 8 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
tensorflow/probability#2036 ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 54/100
tensorflow/probability#2040 ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 68/100
tensorflow/probability#2034 ·
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 35/100
tensorflow/probability#2021 ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 30/100
tensorflow/probability#2015 ·
Alle Issues in tensorflow/probability
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
JdeRobot/PerceptionMetrics#680 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
TuringLang/Turing.jl#2917 ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug good first issue
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
Selectus2/trainers-rb#29 ·
-
test_issue1702 hardware test fails in a full `-m gpu` run: it reads a process-wide pinned-memory counter that test_issue1174 leaves non-zeroEvtl. vergeben @jafarovvvvvvv hat das heute übernommen. Offenbug claimed difficulty:2
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
MakazhanAlpamys/Soup#2680 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
training
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
tinaudio/synth-setter#3758 ·
Maintainer antworten meist innerhalb von 1 Tag