2017-01-10 1 views
1

Ich versuche, den Code wahrscheinlich für eine frühere Tensorflow-Version geschrieben zu starten. Ich habe viele unexpected keyword argument Fehler Schlüsselwörter MismatchTensorflow <lambda>() hat ein unerwartetes Schlüsselwort argument 'partition_info'

Jetzt bekomme ich <lambda>() got an unexpected keyword argument 'partition_info'

Aber es ist nicht partition_info Schlüsselwort in meinem Code im Zusammenhang fixiert.

Hier wird das Stück Code, das Problem verursacht:

final_fully_connected = tf.contrib.layers.fully_connected(
    hidden_layer_three, 
    2, 
    weights_initializer=lambda i, dtype: tf.truncated_normal([38912, 512], stddev=0.1), 
    activation_fn=tf.nn.relu 
) 

Antwort

1

Es scheint, dass die Funktion, die Sie als weights_initializer Argument liefern sollte ein Schlüsselwort Argument erwartet partition_info, aber Ihr Lambda nicht.

Siehe _initializer Funktion definiert in ones_initalizer für ein Beispiel der Signaturfunktion erwartet für weights_initializer:

def _initializer(shape, dtype=dtype, partition_info=None): 
    return constant_op.constant(1, dtype=dtype, shape=shape) 

In derselben Datei, wenn man sich uniform_unit_scaling_initializer und variance_scaling_initializer nach unten schauen, können Sie Beispiele für Gewichte initializers sehen die das partition_info Argument tatsächlich verwenden; aber die meisten Initialisierer in der Datei ignorieren es einfach.

+0

partition_info scheint ein optionales Attribut, und mir ist unklar, wo und warum sollte es in meinem Code hinzufügen. Könnten Sie mir mehr Details geben? Dank – AndreaF

+0

anstelle von Lambda, verwenden Sie eine lokale Funktion, die ein zusätzliches Attribut "partition_info" hat (was ignoriert wird) –

+0

@AndreaF: Fügen Sie einfach 'partition_info = None' zu ​​den Argumenten Ihres Lambda hinzu. I.e. 'weights_initializer = lambda i, dtype, partition_info = Keine: tf.truncated_normal ([38912, 512], stddev = 0.1)' – Kundor

Verwandte Themen