最近,我尝试重复学习Nvidia在GitHub上发布的代码-progressive_growing_of_gans。但是,我发现以下几种基于官方API找不到的操作。
feed_dict = {}
setter = tf.assign(var, tf.placeholder(var.dtype, var.shape, 'new_value'),name='setter')
feed_dict[setter.op.inputs[1]] = value
setter.op.inputs是什么意思?
v = tf.cast(value_expr, tf.float32)
v.shape.ndims
v.shape.ndims是什么意思?
顺便问一下,如何获得此类方法的参考?似乎它们没有包含在官方API中。
谢谢大家!
答案 0 :(得分:0)
shape
对象的tf.Tensor
属性是tf.TensorShape
对象。如您在文档中所见,ndims
是张量的维数或“等级”(如果形状是完全动态的,则为None
)。
op
属性是产生张量的tf.Operation
。在此,inputs
是该操作接收的张量的列表。所以:
feed_dict[setter.op.inputs[1]] = value
表示“采用产生setter
的操作(tf.assign
操作),并从中获得其第一个输入(用作新变量值的tf.placeholder
)并将其关联与value
中的feed_dict
”。