Ich versuche, einen sehr einfachen binären Klassifikator in Tensorflow auf generierten Daten zu erstellen.Steigungen von logischen Operatoren in Tensorflow
Ich erzeuge Zufallsdaten aus zwei separaten Normalverteilungen. Dann werde ich die resultierenden Daten zu einer binären Klasse klassifizieren, wenn sie kleiner oder größer als eine Zahl ist.
Idealerweise wird A ein Cutoff in der Mitte beider Normalen sein. Z.B. wenn meine Daten von N (1,1) + N (-1,1) erzeugt werden, dann sollte A ungefähr 0 sein.
Ich laufe auf einen Fehler "keine Gradienten für jede Variable vorausgesetzt ..." . Im Einzelnen:
No gradients provided for any variable: ((None, <tensorflow.python.ops.variables.Variable object at 0x7fd9e3fae710>),)
ich denke, es kann mit der Tatsache zu tun hat, dass Tensorflow nicht Steigungen für logische Operatoren berechnen kann. Meine Einstufung für jeden A-Wert gegeben wird angenommen, wie etwas sein:
ein Datenpunkt x gegeben und ein A-Wert:
[1,0]: wenn x < A
[0,1 ]: wenn x> = A
diese Idee gegeben, hier ist meine Berechnung in Tensorflow für die Ausgabe:
my_output = tf.concat(0,[tf.to_float(tf.less(x_data, A)), tf.to_float(tf.greater_equal(x_data, A))])
ist dies der falsche Weg, um diese Ausgabe zu implementieren? Gibt es ein nicht logisches funktionales Äquivalent?
Danke. Wenn Sie meinen ganzen Code sehen wollen, hier ist ein Kern: https://gist.github.com/nfmcclure/46c323f0a55ae1628808f7a58b5d437f
bearbeiten: Voll Stack Trace:
Traceback (most recent call last):
File "<ipython-input-182-f8837927493d>", line 1, in <module>
runfile('/.../back_propagation.py', wdir='/')
File "/usr/local/lib/python3.4/dist-packages/spyderlib/widgets/externalshell/sitecustomize.py", line 699, in runfile
execfile(filename, namespace)
File "/usr/local/lib/python3.4/dist-packages/spyderlib/widgets/externalshell/sitecustomize.py", line 88, in execfile
exec(compile(open(filename, 'rb').read(), filename, 'exec'), namespace)
File "/.../back_propagation.py", line 94, in <module>
train_step = my_opt.minimize(xentropy)
File "/usr/local/lib/python3.4/dist-packages/tensorflow/python/training/optimizer.py", line 192, in minimize
name=name)
File "/usr/local/lib/python3.4/dist-packages/tensorflow/python/training/optimizer.py", line 286, in apply_gradients
(grads_and_vars,))
ValueError: No gradients provided for any variable: ((None, <tensorflow.python.ops.variables.Variable object at 0x7fd9e3fae710>),)
Ein voller Stack-Trace könnte helfen – KevinOrr