2017-07-01 2 views
0

Werden die Bias-Terme standardmäßig bei der Erstellung der neuronalen Netzwerkmodelle des Tensorflows hinzugefügt?Werden die Verzerrungsterme in Tensorflow-Modellen standardmäßig auf jeder Ebene hinzugefügt?

neu zu formulieren, wenn x das Eingangssignal in einer bestimmten Schicht ist, y die ouput ist, W die Gewichtsmatrix und b die Vorspannung, dann wird die Ausgabe der Schicht gegeben ist,

y = W^t x + b 

Wird die Abweichung standardmäßig beim Erstellen des Modells hinzugefügt?

+0

gibt es viele Schichten. Von welcher Schicht sprichst du? –

+0

Ich spreche von Faltungsschichten in der schlanken Bibliothek. Meine Ebene sieht folgendermaßen aus: net = slim.conv2d (net, number_filters, [size_filters, size_filters], stride = stride, scope = scope, padding = padding). Ist die Verzerrung bereits in der Ausgabe dieser Ebene hinzugefügt? –

Antwort

1

Wenn Sie Ihr eigenes Modell von Grund auf neu erstellen, müssen Sie explizit eigene trainierbare Variablen für die Gewichte und Verzerrungen erstellen. Tensorflow erstellt sie nicht standardmäßig.

x = tf.placeholder(tf.float32, shape=(None, n)) 

W = tf.Variable(tf.random_normal([n,m], stddev=0.01)) 
b = tf.Variable(tf.zeros([m])) 

y = tf.matmul(x,W) + b 
+0

Ich erstelle ein CNN mit der schlanken Bibliothek von Tensorflow. Meine erste Faltungsschicht sieht wie folgt aus: net = slim.conv2d (Eingang, number_filters, [size_filters, size_filters], Schritt = Schritt, scope = Rahmen, Polsterung = padding) Diese Schicht meine mehrere conv2d Schichten folgt mit Max Pooling Schichten. Ich möchte wissen, ob die Verzerrungen bereits in der Ausgabe dieser Ebene hinzugefügt wurden. Entschuldigung, wenn die Frage anfänglich nicht klar war. –

+0

In diesem Fall sehe ich, dass Slim hilft, die Operation zu vereinfachen. Basierend auf ihrer Erklärung [hier] (https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/slim#layers). Slim.conv2d hilft dir schon bei der Erstellung der Gewichte und Voreingenommenheiten. –

0

Nein, Sie müssen Vorurteile und alle Variablen selbst definieren. Wenn Sie nicht Vorurteile definiert dann wird Ihr Modell sein

y = w^tx 
+0

Was ist, wenn ich vordefinierte Layer aus der Slim-Bibliothek benutze, etwa so: et = slim.conv2d (input, number_filters, [size_filters, size_filters] , Schritt = Schritt, Bereich = Bereich, Padding = Padding). Ich erstelle ein CNN mit Conv2D und Max Pooling-Schichten aus der schlanken Bibliothek in Tensorflow. Ist die Verzerrung bereits in der Ausgabe dieser Ebene hinzugefügt? –

0

Ich bin nicht klar, welchem ​​Fall haben Sie in den drei Möglichkeiten (zumindest) beziehen sich unten:

  1. nehme an, die Schicht ist eine grundlegende rnn Layer (obwohl Sie nur einen Eingang und einen Ausgang bereitgestellt haben), dann ist die Antwort ja. Überprüfen Sie diese source code. Der dritte Parameter der linearen Funktion ist wahr und zeigt an, dass die Abweichung standardmäßig hinzugefügt wird.

  2. Angenommen, Sie haben eine lineare Projektion erstellt, dann können Sie sie selbst erstellen. Eine Vorspannung kann beispielsweise in this entfallen.

  3. und mit dieser API: tf.nn.xw_plus_b, können Sie Ihre eigenen Bias definieren.

+0

Ich erstelle ein CNN mit der schlanken Bibliothek. Ich habe mehrere Conv2d-Ebenen und die Maxpooling-Ebenen in meinem Netzwerk. Ich möchte wissen, ob die Verzerrung bereits in der Ausgabe der CNN-Schichten hinzugefügt ist. –

+0

Ich bin mir nicht sicher über schlanke Bibliothek. Aber ich vermute, dass interne Verzerrungen vorhanden sind, wie ich im Tensor-Flow-Fall gesehen habe, wenn wir das RNN-Schichtgewicht definieren und Verzerrungen intern erzeugt werden. – Azad

+0

Ja, das denke ich auch. – lerner

Verwandte Themen