2017-09-08 1 views
1

Ich versuche, zuvor gelernte Gewichte der Dimension m zu verwenden, um einen Gewichtstensor der Dimension n zu initialisieren, wobei n > m. Ich kann es tun, wie ich es unten getan habe.Tensorflow - verwenden Sie zuvor gelernte Gewichte, um neue Gewichte mit unterschiedlichen Abmessungen zu initialisieren

all_weights['w1'] = tf.Variable(tf.zeros([n, output_sz], dtype=tf.float32)) 
all_weights['w1'] = all_weights['w1'][:m,:].assign(initial_weights['w1']) 

Aber ich habe ein Problem später, wenn die tatsächliche Lernen passiert, dass ich nicht über sie kommen, wenn ich Gewicht Freigabe nicht verwenden. w1 ist zunächst eine tf.Variable und ich bemerkte, dass es sich nach der Slicing-Zuweisung zu einem Tensor-Objekt ändert: Tensor("strided_slice/_assign:0"). Mein Problem ist, ich bin immer die Fehlermeldung:

`LookupError: No gradient defined for operation 'strided_slice_2/_assign' (op type: StridedSliceAssign)`. 

Enthalten diese mit dem Typ (Tensor vs tf.Variable) zu tun? Macht es Sinn, den Tensor auf eine Variable zu übertragen? Ich habe versucht, dies zu tun, aber dann bekomme ich einen Fehler wie:

`FailedPreconditionError: Attempting to use uninitialized value Variable_4 
[[Node: strided_slice/_assign = StridedSliceAssign[Index=DT_INT32, T=DT_FLOAT, _class=["loc:@Variable_4"], begin_mask=3, ellipsis_mask=0, end_mask=2, new_axis_mask=0, shrink_axis_mask=0, _device="/job:localhost/replica:0/task:0/cpu:0"](Variable_4, strided_slice/stack, strided_slice/stack_1, strided_slice/stack_2, strided_slice/_assign/value)]]` 

ich relativ neu bin Tensorflow so wäre jede Hilfe sehr geschätzt. Vielen Dank!

Antwort

1

tf.Variable ist eine ganz andere Sache als Tensor. Es macht keinen Sinn, zwischen ihnen zu "werfen".

Die einfachste Lösung ist, einfach die initial_weights direkt in der Variable Erstellung zu verwenden. Zum Beispiel etwas in der Art:

import numpy as np 
tf.Variable(np.append(initial_weights['w1'], 
         np.zeros((n-m, output_sz)), 
         axis=0), 
      dtype=tf.float32) 
Verwandte Themen