python - 如何使用 tf.identity 制作张量列表的副本(而不仅仅是单个张量)?
问题描述
我试过这个
weights = {
'wc1': tf.get_variable('wc1', shape=(8,8,4,32), initializer=tf.contrib.layers.xavier_initializer()),
'wc2': tf.get_variable('wc2', shape=(4,4,32,64), initializer=tf.contrib.layers.xavier_initializer()),
'wc3': tf.get_variable('wc3', shape=(3,3,64,64), initializer=tf.contrib.layers.xavier_initializer()),
'wd1': tf.get_variable('wd1', shape=(7744,512), initializer=tf.contrib.layers.xavier_initializer()),
'wd2': tf.get_variable('wd2', shape=(512,action_size), initializer=tf.contrib.layers.xavier_initializer()),
'bc1': tf.get_variable('bc1', shape=(32), initializer=tf.contrib.layers.xavier_initializer()),
'bc2': tf.get_variable('bc2', shape=(64), initializer=tf.contrib.layers.xavier_initializer()),
'bc3': tf.get_variable('bc3', shape=(64), initializer=tf.contrib.layers.xavier_initializer()),
'bd1': tf.get_variable('bd1', shape=(512), initializer=tf.contrib.layers.xavier_initializer()),
'bd2': tf.get_variable('bd2', shape=(action_size), initializer=tf.contrib.layers.xavier_initializer()),
}
接着
weight_copies = [tf.identity(weights) for x in range(10)]
但我收到以下错误
TypeError: Expected binary or unicode string, got {'wc1': , 'wc2': , 'wc3': , 'wd1': , 'wd2': , 'bc1': , 'bc2': , 'bc3': , “bd1”:,“bd2”:}
现在我的问题是我怎样才能做到这一点而不会出错?
解决方案
weights
是一个字典,所以你需要遍历这些值。
weight_copies = [tf.identity(v) for v in weights.values()]
如果您希望您的输出也成为字典,请迭代item
s.
weight_copies = {k: tf.identity(v) for k, v in weights.items()}
推荐阅读
- sql - 需要 SQL 来选择行,直到列的总和达到最后一行不会完全消耗值的值
- nativescript - 在 Android 上获取 Mac 地址
- sql - 如何在函数中抛出异常
- google-app-maker - 检查以逗号分隔的字符串以获取绑定中的值
- regex - 正则表达式匹配字符串,中间有一个可选部分,中间用空格括起来
- jquery - 从使用ajax附加行的表中使用jquery ajax删除记录?
- python - 能够在 Local 中提取正确的 DF dtype,但是如果我在 GCP Dataproc(源输入文件)中尝试相同的方法,则面临问题
- reactjs - 使用 Stacknavigator 反应原生自定义组件
- reactjs - React Typescript:配置路由器以允许基于用户名的 URL 而不会与其他路由冲突
- spring-cloud-dataflow - 如何配置组合任务运行器