精华内容
下载资源
问答
  • Dimension

    2021-06-26 01:11:26
    IntroAenean ornare velit lacus, ac varius enim ullamcorper eu. Proin aliquam facilisis ante interdum congue. Integer mollis, nisl amet convallis, porttitor magna ullamcorper, amet egestas mauris....

    Intro

    pic01.jpg

    Aenean ornare velit lacus, ac varius enim ullamcorper eu. Proin aliquam facilisis ante interdum congue. Integer mollis, nisl amet convallis, porttitor magna ullamcorper, amet egestas mauris. Ut magna finibus nisi nec lacinia. Nam maximus erat id euismod egestas. By the way, check out my awesome work.

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis dapibus rutrum facilisis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Etiam tristique libero eu nibh porttitor fermentum. Nullam venenatis erat id vehicula viverra. Nunc ultrices eros ut ultricies condimentum. Mauris risus lacus, blandit sit amet venenatis non, bibendum vitae dolor. Nunc lorem mauris, fringilla in aliquam at, euismod in lectus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. In non lorem sit amet elit placerat maximus. Pellentesque aliquam maximus risus, vel sed vehicula.

    展开全文
  • pytorch 中维度(Dimension)概念的理解 Dimension为0(即维度为0时) 维度为0时,即tensor(张量)为标量。例如:神经网络中损失函数的值即为标量。 接下来我们创建一个dimension为0 的tensor #导入torch import ...

    pytorch 中维度(Dimension)概念的理解

    Dimension为0(即维度为0时)

    维度为0时,即tensor(张量)为标量。例如:神经网络中损失函数的值即为标量。
    接下来我们创建一个dimension为0 的tensor

    #导入torch
    import torch
    #创建一个维度为0的tensor
    a = torch.tensor(1.)
    print(a)#输出a
    print(a.size())#表示tensor的类型,size和shape在pytorh中都表示tensor的类型
    print(a.shape)
    print(len(a.shape))
    

    其输出为:

    tensor(1.)
    torch.Size([])
    torch.Size([])
    0
    

    Dimension为1 的tensor。

    接下来我们接着创建一个维度为1的tensor,与维度为0的张量创建时相比,仅仅只多了一个[ ]。

    #导入torch
    import torch
    #创建一个维度为1的tensor
    a = torch.tensor([1.1])
    print(a)#输出a
    print(a.shape)#输出形状
    print(len(a.shape))
    

    其输出结果为:

    tensor([1.1000])#python中默认为浮点数类型
    torch.Size([1])#中括号里边的1,即代表1维
    1
    

    维度为1的tensor常用于偏置(bias)或者神经网络中线性层的输入

    Dimension为2的tensor

    首先,我们创建一个2行3列的Tensor。

    #导入torch
    import torch
    #创建一个维度为2的tensor
    b = torch.randn(2,3)#randn是正态分布,即创建一个2行3列的矩阵,矩阵内元素符合均值为0方差为1的分布
    print(b)#输出b
    print(b.size())#输出tensor的类型
    print(len(b.shape))
    

    其输出结果为:

    tensor([[-0.6245, -0.9659,  0.8636],
            [-0.9493,  0.6241, -1.5067]])
    torch.Size([2, 3])#tensor类型为2行3列的矩阵
    2
    

    那么我们如何来理解这个二维的tensor呢?实际上,这个二维的tensor就是一个二维矩阵,2维即可理解为矩阵的行和列,行即维度为0,列即维度为1。我们再来看一下:

    print(b.shape[0])
    print(b.shape[1])
    

    输出为:

    2
    3
    

    显示,我们可以更加直观的看出,2为的tensor,其索引为0和1,0代表其行数,1代表其列数。在大致了解了二维的tensor后,我们再来理解一下他的物理意义:
    一个带有batch的线性层输入,即加入一个图片的宽和高为[25,25],打平后为[625],
    则[2,625]即表示2张图片一块输入,每个图片的大小是625

    接着如果我们按照dim=0对其求和,会得到什么呢?如下代码所示:

    print(b)
    print(torch.sum(b,dim=0))
    

    输出为:

    tensor([[ 0.5664,  0.8722,  1.0401],
            [ 0.1872, -1.4659, -0.1133]])
    
    tensor([ 0.7536, -0.5937,  0.9268])
    

    从上边结果中我们可以很直观的看出,对于在dim=0上的求和,即行不变,tensor内的位置元素按列对应相加,输出的为维度为1的,长度为3的tensor,这难道不就是我们刚才创建的二维tensor的列数吗?
    我们再来看来看一下,对dim=1时的求和,或者我们会更加明白。

    print(b)
    print(torch.sum(b,dim=1))
    

    输出为:

    tensor([[ 0.5885, -0.9505, -0.3206],
            [-1.0481,  0.4318, -0.8288]])
    tensor([-0.6827, -1.4452])
    

    同样,由上述结果所示,dim=1,即列不变,按行求和,其输出结果为一个维度为1,长度为2的tensor。也即我们刚才创建的二维tensor的行数。
    总结:当我们按照某一个维度进行运算时,即该维度不变,对另一维度进行运算,且输出为另一个维度的大小。
    下面我们以一个动图来进一步深刻理解一下:如下面的动图所示, 当dim=0的时候, 按每一行的元素进行相加, 最后的结果就是和按列求和。(下面的动图中,也是一个二维tensor,但是各元素值为1、2、3、4、5、6)。大家可以看一下加深一下印象。
    在这里插入图片描述

    Dimension为3的tensor

    下面我们创建一个三维的tensor,其中的rand()表示的是以0-1之间的均值分布来进行初始化。

    #导入torch
    import torch
    #创建一个维度为3的tensor
    c = torch.rand(1,2,3)
    print(c)
    

    输出结果:

    tensor([
    		 [[0.7255, 0.9112, 0.8162],
             [0.7307, 0.3815, 0.5921]]
           ])
    

    上述的三维tensor ,其实就是一个二维矩阵外边,又套了一层中括号。即这个三维的tensor可以理解为有一个2行3列的矩阵,
    我们再来看一下他的形状

    print(c.shape)
    print(c[0])
    

    输出为:

    torch.Size([1, 2, 3])
    tensor( [[0.7255, 0.9112, 0.8162],
             [0.7307, 0.3815, 0.5921]])
    

    从上边的输出结果可以看出,size的形状为,[1,2,3];而c[0]表示的是第三维上的那个二维矩阵,且索引只为0,因为只有一个二维矩阵,若第三维上有两个二维矩阵,则索引为0,1。
    我们再来输出一下其它的:

    print(c[0,0])
    

    输出为

    tensor([0.7255, 0.9112, 0.8162])
    

    上边的输出结果表示什么?其实就是,c[0,0];第一个0表示的是第三维,也就是那个二维矩阵,而第二个0就是二维矩阵的第一行。
    总结:三维的tensor中,例如[2,3,4],第三维即这个列表中的第一个元素(在这维度上的索引为0,1),记为:dim = 0;第二维即这个这个列表中的第二个元素,记为dim = 1(其实就是表示二维数组行的维度,该维度上的索引为0,1,2),最后一个维度及这个列表中第三个元素,记为dim =2,(即二维数组中表示列的维度,该维度上的索引为0,1,2,3)。

    我们再来看一下,对于3维的Tensor在各个维度上求和是怎么样的。
    重新创建一个3维的tensor

    #导入torch
    import torch
    #创建一个维度为3的tensor
    c = torch.rand(3,2,3)
    
    print(c)
    print(c.shape)
    

    输出结果为:

    tensor([[[0.0932, 0.7748, 0.1215],
             [0.6337, 0.3522, 0.1062]],
    
            [[0.5779, 0.6993, 0.0230],
             [0.9226, 0.5299, 0.1861]],
    
            [[0.0227, 0.3016, 0.9368],
             [0.7684, 0.7787, 0.6171]]])
    torch.Size([3, 2, 3])
    

    由上述结果可知,该3维的Tensor其实就是,三个2行3列的二维数组。

    对dim=0求和

    print(torch.sum(c,dim=0))
    

    输出结果为:

    tensor([[0.6937, 1.7757, 1.0814],
            [2.3247, 1.6609, 0.9093]])
    

    在dim=0上求和,即把每个二维数据按照对应位置,相加即可,且其输出的形状为[2,3],下面我们看个动图再进一步理解一下:
    在这里插入图片描述
    对dim=1求和:

    print(torch.sum(c,dim=2))
    

    输出结果为:

    tensor([[0.7269, 1.1271, 0.2277],
            [1.5005, 1.2292, 0.2091],
            [0.7911, 1.0803, 1.5539]])
    

    在dim=1上求和,即对每个二维矩阵,行不变,按列相加,然后组合在一块,且其输出的形状为[3,3]
    我们再来看一组动图:
    在这里插入图片描述

    对dim=2求和:

    print(torch.sum(c,dim=2))
    

    输出结果为:

    tensor([[0.9896, 1.0921],
            [1.3002, 1.6386],
            [1.2611, 2.1641]])
    

    在dim=2上求和,即对每个二维矩阵,列不变,按行相加,然后组合在一块,且其输出的形状为[3,2]
    我们再来看一组动图:
    在这里插入图片描述
    注:在各个维度输出的形状,与整个tensor形状有关,各位自己再揣摩一下。

    Dimension为4的tensor

    维度为4的tensor,最常见的情况就是在卷积神经网络 中,[batch,channel,height,width]。接下来,我们创建一个四维的tensor。

    #导入torch
    import torch
    #创建一个维度为4的tensor
    c = torch.rand(2,3,25,25)
    """
    上边创建的四维tensor ,各参数的物理意义可理解为;2表示进行处理的图片batch,这里为两张;
    3表示的是该图片为彩色图片,channel数量为RGB3通道,25*25表示图片的长和宽。
    """
    print(c)
    print(c.shape)
    print(c.numel())#numel函数,及number element。即逐元素相乘。
    print(c.dim())#求tensor的维度为多少
    

    输出结果为:

    tensor([[[[0.0885, 0.7384, 0.6371,  ..., 0.3208, 0.0581, 0.7142],
              [0.8130, 0.0404, 0.7012,  ..., 0.6019, 0.1015, 0.9588],
              [0.4855, 0.6130, 0.1593,  ..., 0.1474, 0.3851, 0.5320],
              ...,
              [0.1728, 0.4715, 0.3917,  ..., 0.9605, 0.8233, 0.8145],
              [0.6379, 0.7163, 0.2047,  ..., 0.2210, 0.8876, 0.7437],
              [0.2638, 0.3275, 0.7637,  ..., 0.5851, 0.0522, 0.8435]],
    
             [[0.4587, 0.2620, 0.5742,  ..., 0.1823, 0.1100, 0.7643],
              [0.8904, 0.8908, 0.1480,  ..., 0.3918, 0.3410, 0.7371],
              [0.6350, 0.4235, 0.4947,  ..., 0.1291, 0.7077, 0.4199],
              ...,
              [0.9750, 0.9149, 0.0253,  ..., 0.7849, 0.9863, 0.4276],
              [0.4117, 0.9636, 0.2074,  ..., 0.5924, 0.8397, 0.5174],
              [0.6355, 0.9376, 0.6325,  ..., 0.5065, 0.9398, 0.4591]],
    
             [[0.7319, 0.3808, 0.3656,  ..., 0.6158, 0.8127, 0.5377],
              [0.7817, 0.5277, 0.9428,  ..., 0.0032, 0.7543, 0.2630],
              [0.3526, 0.2539, 0.6907,  ..., 0.7403, 0.6150, 0.8632],
              ...,
              [0.9896, 0.2491, 0.9341,  ..., 0.5563, 0.1472, 0.7592],
              [0.5110, 0.8409, 0.2105,  ..., 0.9475, 0.0620, 0.6796],
              [0.6519, 0.9809, 0.7917,  ..., 0.7317, 0.0315, 0.7892]]],
    
    
            [[[0.2208, 0.9637, 0.9443,  ..., 0.4771, 0.5033, 0.2917],
              [0.1701, 0.8320, 0.3640,  ..., 0.5074, 0.6219, 0.1707],
              [0.4048, 0.1494, 0.9358,  ..., 0.8532, 0.2298, 0.0691],
              ...,
              [0.2787, 0.3809, 0.9087,  ..., 0.4491, 0.4912, 0.4132],
              [0.1516, 0.4484, 0.4718,  ..., 0.9796, 0.8061, 0.4744],
              [0.6960, 0.5026, 0.5266,  ..., 0.7811, 0.4093, 0.5238]],
    
             [[0.3725, 0.7506, 0.8075,  ..., 0.9897, 0.6699, 0.3276],
              [0.3139, 0.5054, 0.3133,  ..., 0.3512, 0.1084, 0.8433],
              [0.8386, 0.3877, 0.1941,  ..., 0.0903, 0.6257, 0.2474],
              ...,
              [0.0579, 0.4931, 0.8824,  ..., 0.1812, 0.8336, 0.0030],
              [0.2589, 0.3976, 0.6554,  ..., 0.1437, 0.4533, 0.0758],
              [0.2885, 0.1804, 0.6388,  ..., 0.4709, 0.2782, 0.8804]],
    
             [[0.4836, 0.3040, 0.6066,  ..., 0.6594, 0.3668, 0.4089],
              [0.4970, 0.8915, 0.5742,  ..., 0.5544, 0.2297, 0.8319],
              [0.8399, 0.8372, 0.8259,  ..., 0.8524, 0.0242, 0.1726],
              ...,
              [0.1040, 0.3566, 0.1785,  ..., 0.4557, 0.4020, 0.7327],
              [0.0273, 0.0586, 0.4000,  ..., 0.8475, 0.2587, 0.6252],
              [0.1678, 0.0942, 0.1210,  ..., 0.1048, 0.4521, 0.5950]]]])
    torch.Size([2, 3, 25, 25])
    3750#这里即为2*3*25*25
    4
    

    由此,本篇文章对pytorch中维度的描述,做了一个简单的介绍,希望能够为大家的学习提供一点点帮助。由于本人也是刚开始进行学习,如果有什么写的不对的,敬请批评指正。

    在这里要感谢文艺数学君,王 茂南 发表于 2020年4月11日07:51:51的一篇博文

    展开全文
  • java的 Dimension问题

    2021-02-26 19:01:05
    importjava.awt.Dimension;importjava.awt.Graphics;importjava.awt.event.MouseAdapter;importjava.awt.event.MouseEvent;importjava.awt.event.MouseMotionAdapter;importjava.awt....import java.awt.Dimension;i...

    importjava.awt.Dimension;importjava.awt.Graphics;importjava.awt.event.MouseAdapter;importjava.awt.event.MouseEvent;importjava.awt.event.MouseMotionAdapter;importjava.awt....

    import java.awt.Dimension;

    import java.awt.Graphics;

    import java.awt.event.MouseAdapter;

    import java.awt.event.MouseEvent;

    import java.awt.event.MouseMotionAdapter;

    import java.awt.event.MouseMotionListener;

    import javax.swing.JPanel;

    //Fig. 14.1 SelfContainedPanel

    public class SelfContainedPanel extends JPanel {

    private int x1,x2,y1,y2;

    public SelfContainedPanel(){

    addMouseListener(

    new MouseAdapter(){

    public void mousePressed(MouseEvent event){

    x1=event.getX();

    y1=event.getY();

    }

    public void mouseReleased(MouseEvent event){

    x2=event.getX();

    y2=event.getY();

    repaint();

    }

    }

    );//ebd call to addMouseListener

    addMouseMotionListener(

    new MouseMotionAdapter(){

    public void mouseDragged(MouseEvent event) {

    // TODO 自动生成方法存根

    x2=event.getX();

    y2=event.getY();

    repaint();

    }

    public void mouseMoved(MouseEvent arg0) {

    // TODO 自动生成方法存根

    }

    }

    );//end call to addMouseMotionListener

    public Dimension getPreferredSize(){ //标记上 有语法错误,错误放置了构造。 不解?请高手指点?

    return new Dimension(150,100);

    }

    public void paintComponent(Graphics g ){ //有语法错误,系统提示应将括号改成分号。 不解?请高手指点!!

    super.paintComponent(g);

    g.drawOval(Math.min(x1,x2),Math.min(y1,y2),Math.abs(x1-x2),Math.abs(y1-y2));

    }

    }

    }

    展开

    展开全文
  • } public Dimension getPreferredSize() { return new Dimension(400,400); } } 最后的public Dimension getPreferredSize()有什么作用? 如果执行了setSize这条语句,那么画出来的图就只有四分之一,但是窗口大小...

    importjava.awt.*;importjava.awt.geom.*;importjavax.swing.*;publicclassDrawTest{publicstaticvoidmain(Stringargs[]){EventQueue.invokeLater(newRunnable(){publicvoidrun(){JFr...

    import java.awt.*;

    import java.awt.geom.*;

    import javax.swing.*;

    public class DrawTest {

    public static void main(String args[])

    {

    EventQueue.invokeLater(new Runnable()

    {

    public void run()

    {

    JFrame frame = new DrawFrame();

    frame.setTitle("DrawTest");

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);;

    frame.setVisible(true);

    }

    });

    }

    }

    class DrawFrame extends JFrame

    {

    public DrawFrame()

    {

    add(new DrawComponent());

    pack();

    }

    }

    class DrawComponent extends JComponent

    {

    public void paintComponent(Graphics g)

    {

    Graphics2D g2 = (Graphics2D) g;

    Rectangle2D rect = new Rectangle2D.Double(100,100,200,150);

    g2.draw(rect);

    Ellipse2D ellipse = new Ellipse2D.Double();

    ellipse.setFrame(rect);

    g2.draw(ellipse);

    g2.draw(new Line2D.Double(100,100,300,250));

    double centerX = rect.getCenterX();

    double centerY = rect.getCenterY();

    double radius = 150;

    Ellipse2D circle = new Ellipse2D.Double();

    circle.setFrameFromCenter(centerX,centerY,centerX + radius,centerY + radius);

    g2.draw(circle);

    //setSize(200,200);

    }

    public Dimension getPreferredSize()

    {

    return new Dimension(400,400);

    }

    }

    最后的public Dimension getPreferredSize()有什么作用?

    如果执行了setSize这条语句,那么画出来的图就只有四分之一,但是窗口大小还是没有什么变化.

    解释下setSize和Dimension getPreferredSize的关系。

    展开

    展开全文
  • Deep Neural Networks for High Dimension, Low Sample Size DatacodedatasetIntroductionRelated WorkDNP ModelDNP for High DimensionalityDNP for Small Sample SizeStagewise vs StepwiseTime ...
  • ),一直报错: ValueError: Invalid reduction dimension 2 for input with 2 dimensions. for 'metrics/sparse_accuracy/All' (op: 'All') with input shapes: [?,7], [] and with computed input tensors: input...
  • Error details: model expected the shape of dimension 0 to be between 8 and 8 but received 2 Thread [1] had error: request specifies invalid shape for input 'input' for resnet152_0_1_gpu0. Error ...
  • oracle dimension的探究

    2021-05-07 13:22:53
    今天看concept,看到dimension时候,看的不太懂,后来去网上百度了一下,在asktom上看到了实验,就去实际做了一下,做后,终于明白了之前看到的query rewrite的意思和dimension配合物化视图的巨大作用,可以很大程度...
  • 问题:IndexError: boolean index did not match indexed array along dimension 0; dimension is 0 but corresponding boolean dimension is 1 在用mask_rcnn做目标检测,训练模型时,报错如下图所示,model.py里...
  • Android Dimension

    2021-06-02 22:41:58
    1、Android中单位介绍根据官网介绍(https://developer.android.com/guide/topics/resources/more-resources.html#Dimension),Android中可用单位有:dp(Density-independent-Pixels);An abstract unit that is based...
  • 我一直在修改Leaflet TimeDimension示例9中的代码:http://apps.socib.es/Leaflet.TimeDimension/examples/example9.html尝试在Leaflet中创建的 Map 上显示动物随时间的移动 .我有一个自编写的GPX文件和KML轨道,...
  • Learning in High Dimension Always Amounts to Extrapolation论文地址:主要工作:研究背景:具体实验:The Role of the Intrinsic, Ambient and Convex Hull Dimensions:Real Datasets and Embeddings are no ...
  • in dimension 0. Got 1 and 3 in dimension 1 at /opt/conda/conda-bld/pytorch_1579040055865/work/aten/src/TH/generic/THTensor.cpp:612 通常在pytorch环境中,DataLoader加载图像时,用的是 Image库读取图像,...
  • 今天写代码的时候发现一次...y_pred1) return loss 结果这里的内容报错 logits and labels must have the same first dimension, got logits shape [1,3] and labels shape [48] [[node crossentropy_with_rdrop_1/...
  • 如何使用poi ppt中的java.awt.Dimension中的getImageDimensionInPixels()来获取图像大小?(How to get image size using getImageDimensionInPixels() from java.awt.Dimension in poi ppt?)我使用以下方法迭代ppt中...
  • 概念二:Dimension(又称维度) 超市小票的Cube里隐含着很多信息,如: 哪些商品呈现出季节性消费规律?不同区域店铺的顾客购买力如何?哪几个店铺的顾客平均购买力最强?不同年龄段消费者最爱购买的商品有没有差别...
  • RuntimeError: split_size can only be 0 if dimension size is 0, but got dimension size of 2 原因: 训练的batch size 比使用的GPU数量少,导致上述问题。 解决办法 增加batch size数值,保证为GPU数量...
  • index 5 is out of bounds for dimension 0 with size 5 # 上面是我的报错:输出的信息是print(images.size(), labels.size()) # 我发现最后的一个 batch_size 不是我设置的 batch_size 的大小, # 然后经过思考我...
  • tensorflow original:value = tf.maximum(img.shape[1], img.shape[2]) get the error like the title. change to value = tf.maximum(tf.shape(img)[1], tf.shape(img)[2])
  • RuntimeError: Sizes of tensors must match except in dimension 1. Got 61 and 60 in dimension 2
  • All flavors must now belong to a named flavor dimension. Learn more at https://d.android.com/r/tools/flavorDimensions-missing-error-message.html
  • 错误提示:Sizes of tensors must match except in dimension 1. Got 85 and 6 in dimension 2 该错误主要是由于cfg文件内容配置错误 cfg文件当中的classes的默认值为80,filters初始值为255。 当中的classes数目...
  • Dimension too large. 试了一些网上搜到的办法: 用画图软件、PS之类的修改另存jpg或者png; 调整图片大小、分辨率、尺寸。。 并没有解决我的问题,大家可以试一下; 解决办法:打开图片用电脑自带或者qq、vx的...
  • 通过打印labels和predicted的数据发现,是因为batchsize分批不平均,导致predicted最后有一组只有16个数据。 而range()超过了16,所以报错。 解决办法:1.改变batchsize,使数据集分组刚刚好 2.......
  • 遂报错“RuntimeError: Trying to create tensor with negative dimension” 解决 百度上面看不到几条信息(英文渣),不负有心人,找到一个能稍微看明白的,链接 程序中报错在这个地方: s_q = torch.cat((s_q, ...
  • A01M0097 ERROR (online-wav-gmm-decode-faster[5.5]:LogLikelihoods():diag-gmm.cc:533) DiagGmm::LogLikelihoods, dimension mismatch 39 vs. 40 核心问题是GMM模型的维数不匹配 原因分析 我这里用的是CSJ日语...
  • 仅仅出现在tf2.1中,在tf2.4中已经不存在该问题。...ValueError: The last dimension of the inputs to Dense should be defined. Found None. ppp2.shape: (10, ?) 这种情况是由于 tf.reshape ()时,设
  • Numpy库的核心是ndarray,实际上就是N维数组(N-...言归正传,在Numpy中维度dimension被称为轴axis(复数为axes)。对于一维数组,如a = np.array([1, 2, 3]),a.shape 等于(3, )。 由于广播机制的存在,一维数组会被
  • VC维(VC Dimension

    千次阅读 2020-12-25 17:44:15
    VC Dimension:全称是Vapnik-Chervonenkis dimension。其用来衡量一个模型的复杂度,定义为:在该模型对应的空间中随机撒x点,然后对其中的每个点随机分配一个2类标签,使用你的模型来分类,并且要分对,请问x至多是...
  • logits and labels must have the same first dimension, got logits shape [12,737] and labels shape [14] 这种情况下,有可能是前面某一步的tf.reshape上的维度出错。特别是reshape里面用了“-1”的时候。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 118,567
精华内容 47,426
关键字:

dimension