如果一个元素的维数是已知的,那么我就可以调用tf.expand_dims
。如何将tf.expand_dims
放入循环中?下面的代码可以在eager模式下工作,但不能在graph模式下工作。
# @tf.function
def broadcast_multiply(x, y):
print(tf.shape(x)) # [2, 2, ?, ?, ... ?]
print(tf.shape(y)) # [2, 2]
# Doesnt work in graph mode but works in eager
rank_diff = tf.rank(x) - tf.rank(y)
for _ in tf.range(rank_diff):
y = tf.expand_dims(y, -1)
return x * y
4条答案
按热度按时间5m1hhzi41#
你应该看看
tf.broadcast_to
zzlelutf2#
经过多次的头部撞击,这就是我想出的。不是最好的性能,但它做的工作。我希望tensorflow有内置的支持这一点。Numpy已经这样做了。
结果
dsf9zpds3#
我遇到了类似的问题,下面的解决方案对我很有效:
3zwjbxry4#
您还可以使用整形: