(n,)在纽比和向量的上下文中是什么意思?

2024-10-02 02:25:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试过搜索StackOverflow、google,甚至使用symbolhound进行字符搜索,但都找不到答案。具体地说,我对尼尔森神经网络和深度学习的第1章感到困惑,他说“假设输入(n, 1) Numpy ndarray,而不是(n,) vector。”

一开始我以为(n,)指的是数组的方向,所以它可能指的是一列向量,而不是只有一行的向量。但我不明白为什么我们需要(n,)和{}两者似乎都在说同样的话。我知道我误会了什么,但我不确定。在

作为参考,a是指将被输入到神经网络的给定层的激活向量,然后被权重和偏差变换以产生下一层激活的输出向量。在

编辑:这个问题在“单列向量”(没有这样的东西)和“单列矩阵”(确实存在)之间模棱两可。“单行向量”和“单行矩阵”也是一样的。在

向量只是一个数字的列表,或者(等价地)在向量空间的基向量上的一系列标量变换。如果一个向量只有一行(或一列),当我们写出它时,它可能看起来像一个矩阵。令人困惑的是,我们有时会提到一个“激活向量”,但实际上是指“单个行矩阵的激活值转置,因此它是一个单一的列。”

请注意,在这两种情况下,我们都没有讨论一维向量,它将是一个仅由一个数字定义的向量(除非n==1,在这种情况下,“列”或“行”区别的概念将毫无意义)。在


Tags: 答案numpygoogle情况矩阵数字神经网络数组
2条回答

{cd1>数组中可以有不同的维数

典型的2d数组具有(n,m)(这是一个Python元组)。我们倾向于将其描述为有n行,m列。因此,(n,1)数组只有1列,(1,m)有1行。在

但是因为数组可能只有一维,所以有可能有一个形状(n,)(对于1元素元组的Python表示法:请参见here了解更多信息)。在

出于许多目的,(n,)(1,n)(n,1)数组是等价的(也是(1,n,1,1)(4d))。它们都有n项,并且可以相互重塑。在

但有时额外的1维度很重要。(1,m)数组可以将(n,1)数组相乘生成(n,m)数组。(n,1)数组可以像(n,m)一样被索引,有2个索引,x[:,0]其中A(n,)只接受x[0]。在

MATLAB矩阵总是2d(或更高)。因此,从MATLAB中传递思想的人倾向于期望二维。有一个np.matrix子类应该模仿它。在

对于numpy程序员来说,向量、行向量、列向量、矩阵之间的区别是松散的,相对来说并不重要。或者该用法是从应用程序而不是从numpy本身派生的。我想这就是这本网络书所发生的事情——符号和期望来自numpy之外。在

有关如何根据ndarrays中存储的数据解释形状,请参见此答案。它还提供了关于如何使用.reshape:https://stackoverflow.com/a/22074424/3277902的见解

(n,)是长度为1的元组,其唯一的元素是n。(语法不是(n),因为这只是n,而不是生成元组。)

如果一个数组的形状是(n,),这意味着它是一个一维数组,其唯一维度上的长度为n。它不是行向量或列向量;它没有行或列。它只是一个向量。在

相关问题 更多 >

    热门问题