如何对单个神经元应用变换?

通常情况下,激活函数会应用于给定层的所有神经元,如下所示:

layer = tf.nn.relu(layer)

如何仅对第二个神经元应用激活函数呢?

如何仅对特定神经元应用特定的变换(比如tf.exp())呢?

切片列在这里无法应用,因为要切片列我需要知道行数,而在构建时行数是未知的。


回答:

你可以对动态形状的张量进行切片操作,就像对静态张量一样。这里我将一切简化为一个[?, 2]的张量及其第0片:

import numpy as npimport tensorflow as tfx = tf.placeholder(dtype=tf.float32, shape=[None, 2], name='x')layer = tf.nn.relu(x)slice = layer[:, 0]activation = tf.log(1 + tf.exp(slice))with tf.Session() as session:  session.run(tf.global_variables_initializer())  layer_val, slice_val, activ_val = session.run([layer, slice, activation],                                                feed_dict={x: np.random.randn(10, 2)})  print layer_val[:, 0]  print slice_val  print activ_val

你会发现layer_val[:, 0]slice_val是相同的,而activ_val则是其变换结果。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注