我使用 TensorFlow 实现了一个网络,并在我的代码中创建了执行以下操作的模型:
def multilayer_perceptron(x, weights, biases):
layer_1 = tf.add(tf.matmul(x, weights["h1"]), biases["b1"])
layer_1 = tf.nn.relu(layer_1)
out_layer = tf.add(tf.matmul(layer_1, weights["out"]), biases["out"])
return out_layer
我初始化权重和偏差:
weights = {
"h": tf.Variable(tf.random_normal([n_input, n_hidden_1])),
"out": tf.Variable(tf.random_normal([n_hidden_1, n_classes]))
}
biases = {
"b": tf.Variable(tf.random_normal([n_hidden_1])),
"out": tf.Variable(tf.random_normal([n_classes]))
}
现在我想使用自定义激活函数。因此,我tf.nn.relu(layer_1)
用定义为的自定义激活函数替换了custom_sigmoid(layer_1)
:
def custom_sigmoid(x):
beta = tf.Variable(tf.random.normal(x.get_shape[1]))
return tf.sigmoid(beta*x)
beta
可训练参数在哪里。我意识到这是行不通的,因为我不知道如何实现派生以便 TensorFlow 可以使用它。
问题:如何在 TensorFlow 中使用自定义激活函数?我真的很感激任何帮助。