张量的形状

时间:2019-04-11 09:30:13

标签: python tensorflow machine-learning pytorch

我碰到了这段代码

$seq =~ /(AGGAGG)([ACGT]{4,12})(ATG)([ACTG]{3,3}){0,}(TAA|TAG|TGA)/ig

发现输出看起来像这样

(x_train, y_train), (x_test, y_test) = mnist.load_data() print("Shape of x_train: " + str(x_train.shape)) print("Shape of y_train: " + str(y_train.shape))

对于输出的第一行

到目前为止,我的理解是不是意味着在第一个维度上它可以容纳60k个项目,在下一维度上,它可以容纳 28 个“ 包含6万个项目的数组” 最后,在最后一个维度中,它可以容纳 28 包含28个” 60k项的数组“

我要澄清的是,这是60k的28x28数据样本还是其他?

对于第二行输出,似乎只是一个一维数组,包含60k个项目。那么它实际上代表什么呢? (我知道在x_train中是手写数字,每个数字代表该单元格中的灰色强度)

请注意,我已从一些在线示例中获取了此代码(我不记得也不会介意您是否希望将信用额添加到此示例)和公共数据集中 (60000, 28, 28) (60000,)

3 个答案:

答案 0 :(得分:1)

您对形状的理解是正确的。从上下文来看,x_train可能是60k手写数字图像(分辨率为28x28像素),而y_train只是60k真实数字,这些图像显示出来。

答案 1 :(得分:1)

您是对的,第一行给出了60K项func BenchmarkStringCheck1(b *testing.B) { s := "Hello" b.ResetTimer() for n := 0; n < b.N; n++ { if s == "" { } } } func BenchmarkStringCheck2(b *testing.B) { s := "Hello" b.ResetTimer() for n := 0; n < b.N; n++ { if len(s) == 0 { } } } 大小的数据,因此为28x28

(60000, 28, 28)y_train的标签。因此它们是一维的,数量为60k。

例如:如果x_train的第一项是手写图像3,则x_train的第一项将是'3',即标签。

答案 2 :(得分:1)

要了解这一点,让我们从形状为(8,)的一维数组开始。

[1, 2, 3, 4, 5, 6, 7, 8]

如果将其表示为2d数组,例如形状(4,2),它将变为

[
  [1, 2],
  [3, 4],
  [5, 6],
  [7, 8]
]

看到2d数组中的每个项目的形状都是(2,),总共有4个项目。

让我们以尺寸(2,2,2)的3d表示。

[
  [
    [1, 2],
    [3, 4]
  ],
  [
    [5, 6],
    [7, 8]
  ]
]

顶层数组有2个项目,即第0维。第二层又有2个项目,分别为[1, 2], [3, 4]。大小为2的最终维度表示1 & 2,即数组层次结构中的最后一项。

因此(x,y,z)形状的张量将包含x*y*z元素。