python - tf.eye 的参数 batch_shape 取决于占位符变量 shape
问题描述
我的最终目标是通过将默认协方差乘以 0.01 来减小它。为了做到这一点,我决定创建一个简单的协方差(单位矩阵),然后将该矩阵乘以 0.01,最终将其提供给 tf.contrib.distributions.MultivariateNormalFullCovariance 函数。问题是当我事先不知道形状时,我无法初始化参数batch_shape。我该如何解决这个问题?
我有以下代码:
self.state_in= tf.placeholder(shape=[None,s_size],dtype=tf.float32)
self.hidden = slim.fully_connected(self.state_in,h_size,biases_initializer=None,activation_fn=tf.nn.relu)
self.output = slim.fully_connected(self.hidden,a_size,activation_fn=None,biases_initializer=None)
mean= self.output
cov =tf.eye(4,batch_shape=[mean.shape[0]])
normal = tf.contrib.distributions.MultivariateNormalFullCovariance(
loc=mean,
covariance_matrix=cov*0.01)
这是它失败的行:cov =tf.eye(4,batch_shape=[mean.shape[0]])
TypeError:int返回非int(类型NoneType)
提前致谢。
解决方案
答:Omitbatch_shape=[mean.shape[0]]
tf.contrib.distributions.MultivariateNormalFullCovariance
足够聪明,可以处理批次。
我打算删除这个问题,但也许有人会发现它很有用。
谢谢。
推荐阅读
- javascript - 验证空单元格Angular Xlsx文件
- python - Webdriver 无法通过 xpath 或 ID 找到元素
- javascript - 使用 django-include-by-ajax 需要帮助
- rust - 结构示例中的 Serde JSON 不起作用
- node.js - 使用快速服务器部署反应应用程序会出现空白屏幕,但该应用程序与 serve -s build 一起工作正常
- vim - Neovim 在输入 %s 命令时不突出显示搜索?
- struts2 - 替换 Struts 2 中的 actionmessages 类
- php - Laravel - ToDateString() 在 Live Server 上表现异常
- amazon-web-services - 在 AWS 中使用 step 函数创建 EMR 集群时如何指定时区和其他配置?
- sql - 从 rowtype 参数分配给变量值