首页 > 解决方案 > 下面代码中的“ t[..., :1] ”是什么意思?

问题描述

这是上下文:

def normal_scale_uncertainty(t, softplus_scale=0.05):
    """Create distribution with variable mean and variance"""
    ts = t[..., :1]
    return tfd.Normal(loc = ts,
                      scale = 1e-3 + tf.math.softplus(softplus_scale * ts))

标签: pythontensorflow

解决方案


简短的回答...替换多个:.

长答案:让我们看一个例子。

In [20]: d = np.array([[[i + 2*j + 8*k for i in range(5)] for j in range(4)] for k in range(3)])                        

In [21]: d.shape                                                                                                        
Out[21]: (3, 4, 5)

In [22]: d[:, :, 0]                                                                                                     
Out[22]: 
array([[ 0,  2,  4,  6],
       [ 8, 10, 12, 14],
       [16, 18, 20, 22]])

In [23]: d[..., 0]                                                                                                      
Out[23]: 
array([[ 0,  2,  4,  6],
       [ 8, 10, 12, 14],
       [16, 18, 20, 22]])

In [24]: d[:, :, 0] == d[..., 0]                                                                                        
Out[24]: 
array([[ True,  True,  True,  True],
       [ True,  True,  True,  True],
       [ True,  True,  True,  True]])

你可以使用d[0, ..., 0]ord[0, ...]吗?你可以。怎么样d[..., 0, ...]?你会得到一个错误:IndexError: an index can only have a single ellipsis ('...')


推荐阅读