python - 如果 dropout rate > 0 使用 tf.cond() 尝试仅构造 DropoutWrapper 操作时出错
问题描述
为了查看它是否使我的模型的训练更有效,我试图仅DropoutWrapper
在指定dropout_rate
大于 0 时调用 TensorFlow 的操作(而不是创建操作,但实际上并未添加任何 dropout)。我也试图通过将 L2 正则化添加到我的损失值来做同样的事情 - 如果l2_alpha
乘数值大于零,则只执行我计算 L2 惩罚的方法。
以下是我尝试实现辍学的方法:
layers = []
for layer_size in self.hidden_sizes:
cell = self.cell_type(layer_size)
cell = tf.cond(
self.dropout_rate > 0.0,
lambda: tensorflow.contrib.rnn.DropoutWrapper(cell, output_keep_prob=(1.0 - self.dropout_rate)),
lambda: cell
)
layers.append(cell)
stacked_layers = tensorflow.contrib.rnn.MultiRNNCell(layers)
这是抛出错误:
`TypeError: Failed to convert object of type <class 'tensorflow.python.ops.rnn_cell_impl.DropoutWrapper'> to Tensor. Contents: <tensorflow.python.ops.rnn_cell_impl.DropoutWrapper object at 0x7fa51b84bbe0>. Consider casting elements to a supported type.`
有没有办法可以使用tf.cond()
或任何其他方式实现这一目标?
解决方案
推荐阅读
- http - 应该如何解析 HTTP 标头字段?
- sql-server - 页面预期寿命与页面读取/秒和页面写入/秒值有何关联?
- javascript - 为什么将显示从无更改为阻止时 Google 图表的宽度不起作用?
- batch-file - 批处理文件中的颜色
- javascript - 如何使用 w3slider 在滑块图像中添加自动播放?
- javascript - HTML select 标记具有调用 java 脚本的 Onchange 函数,即使没有显式调用它也会被调用
- java - 从 Java 中的 S3 上的文件在 S3 上创建一个 zip 文件
- office365 - 为什么 Microsoft Graph API 上发生 504 网关错误?
- php - 将 JSON 添加到数据表
- redux - 在 Effect 中执行另一个动作后调度一个动作