- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经用 relu 作为激活函数在 tensorflow 中编写了一个卷积网络,但是它不是学习(对于评估和训练数据集,损失都是恒定的)。对于不同的激活函数,一切都按其应有的方式工作。
这是创建 nn 的代码:
def _create_nn(self):
current = tf.layers.conv2d(self.input, 20, 3, activation=self.activation)
current = tf.layers.max_pooling2d(current, 2, 2)
current = tf.layers.conv2d(current, 24, 3, activation=self.activation)
current = tf.layers.conv2d(current, 24, 3, activation=self.activation)
current = tf.layers.max_pooling2d(current, 2, 2)
self.descriptor = current = tf.layers.conv2d(current, 32, 5, activation=self.activation)
if not self.drop_conv:
current = tf.layers.conv2d(current, self.layer_7_filters_n, 3, activation=self.activation)
if self.add_conv:
current = tf.layers.conv2d(current, 48, 2, activation=self.activation)
self.descriptor = current
last_conv_output_shape = current.get_shape().as_list()
self.descr_size = last_conv_output_shape[1] * last_conv_output_shape[2] * last_conv_output_shape[3]
current = tf.layers.dense(tf.reshape(current, [-1, self.descr_size]), 100, activation=self.activation)
current = tf.layers.dense(current, 50, activation=self.last_activation)
return current
self.activiation 设置为 tf.nn.relu,self.last_activiation 设置为 tf.nn.softmax
损失函数和优化器在这里创建:
self._nn = self._create_nn()
self._loss_function = tf.reduce_sum(tf.squared_difference(self._nn, self.Y), 1)
optimizer = tf.train.AdamOptimizer()
self._train_op = optimizer.minimize(self._loss_function)
我尝试通过传递 tf.random_normal_initializer(0.1, 0.1)
作为初始化器来更改变量初始化,但它并没有导致损失函数发生任何变化。
如果您帮助我让这个神经网络与 ReLu 配合使用,我将不胜感激。
编辑:Leaky ReLu 也有同样的问题
编辑:我设法重复相同错误的小例子:
x = tf.constant([[3., 211., 123., 78.]])
v = tf.Variable([0.5, 0.5, 0.5, 0.5])
h_d = tf.layers.Dense(4, activation=tf.nn.leaky_relu)
h = h_d(x)
y_d = tf.layers.Dense(4, activation=tf.nn.softmax)
y = y_d(h)
d = tf.constant([[.5, .5, 0, 0]])
h_d 和 y_d 内核的梯度(使用 tf.gradients 计算)和偏差等于或接近 0
最佳答案
在极不可能的情况下,某个层中的所有激活对于所有样本都可能为负。它们被 ReLU 设置为零,并且没有学习进度,因为 ReLU 负部分的梯度为零。
导致这种情况的可能性更大的是数据集较小、输入特征的奇怪缩放、不适当的权重初始化和/或中间层中的 channel 较少。
这里您使用 random_normal_initializer
和 mean=0.1
,所以也许您的输入都是负数,因此会映射到负值。尝试mean=0
,或重新调整输入特征。
您还可以尝试 Leaky ReLU。也可能是学习率太小或太大。
关于python - Tensorflow ReLu 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50838376/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!