Sie haben recht, wenn Sie das Netzwerk manuell erstellen, müssen Sie die Abmessungen der folgenden Ebene anpassen, damit sie mit der Ausgabe tf.nn.crelu
übereinstimmt. In diesem Sinne ist tf.nn.crelu
nicht austauschbar mit tf.nn.relu
, tf.nn.elu
usw.
Die Situation ist einfacher, wenn Sie einen High-Level-API verwenden, z.B. tensorflow slim. In diesem Fall sorgen die Layer-Funktionen für übereinstimmende Abmessungen, so dass Sie einfach tf.nn.relu
durch tf.nn.crelu
in Code ersetzen können. Bedenken Sie jedoch, dass das Netzwerk lautlos doppelt so groß wird.
Hier ist ein Beispiel:
with slim.arg_scope([slim.conv2d, slim.fully_connected],
activation_fn=tf.nn.crelu,
normalizer_fn=slim.batch_norm,
normalizer_params={'is_training': is_training, 'decay': 0.95}):
conv1 = slim.conv2d(x_image, 16, [5, 5], scope='conv1')
pool1 = slim.max_pool2d(conv1, [2, 2], scope='pool1')
conv2 = slim.conv2d(pool1, 32, [5, 5], scope='conv2')
pool2 = slim.max_pool2d(conv2, [2, 2], scope='pool2')
flatten = slim.flatten(pool2)
fc = slim.fully_connected(flatten, 1024, scope='fc1')
drop = slim.dropout(fc, keep_prob=keep_prob)
logits = slim.fully_connected(drop, 10, activation_fn=None, scope='logits')
slim.arg_scope
gilt einfach alle vorgesehenen Argumente zu den darunter liegenden Schichten, insbesondere activation_fn
. Beachten Sie auch activation_fn=None
in der letzten Schicht, um die Ausgabedimension zu fixieren. Kompletter Code kann found here sein.
CReLu Verkettet eine ReLU, die nur den positiven Teil der Aktivierung mit einer ReLU auswählt, die nur den negativen Teil der Aktivierung auswählt. Beachten Sie, dass diese Nichtlinearität folglich die Tiefe der Aktivierungen verdoppelt. Sie können hier mehr lesen. https://www.tensorflow.org/api_docs/python/tf/nn/crel –
ja, das ist es was es tut. aber wie benutzt man es? – j35t3r
Können Sie den folgenden Link überprüfen, enthält es eine Beispielimplementierung (verwendet Crelu von Chainer, aber es ist sehr ähnlich/das gleiche wie Tensorflow) https://programtalk.com/vs2/python/10099/chainer/tests/chainer_tests/functions_tests/ Aktivierungstests/test_crelu.py / –