zoukankan      html  css  js  c++  java
  • 用tensorflow.keras写神经网络处理nlp遇到的问题

    陷入了一个僵局,有关于张量的维度问题,因为学tensorflow的时候是从图像入手的,理解tensorflow的时候结合了图像这个特例,脑子中就形成了思维定式,然后现在用来做自然语言处理,发现脑子一直转不过弯来,一个普通的关于词嵌入的维度问题困扰了一周多....然后今天突然get到了一点点。

    一、张量的维度

    在tensorflow的高级keras工具包中,数据是以张量的形式表示的,张量的形状称之为shape,表示从最外层向量逐步到达最底层向量的降维解包过程。之前我是在脑子里构建了一个立体的三维RGB图像,确实学卷积的时候也是这样想:一个彩色图像,就是三层R,G,B的像素长方形叠加而成的,所以图像张量的大小就是(图像长度,图像宽度,通道数=3)。这个是很自然的事情,但是人脑又不能想象大于3维的四维空间具体是怎么样的,然后我就很难以理解张量的维度。

    比如,一个一阶的张量[1,2,3]的shape是(3,);一个二阶的张量[[1,2,3],[4,5,6]]的shape是(2,3);一个三阶的张量[[[1],[2],[3]],[[4],[5],[6]]]的shape是(2,3,1)。看了这些例子后,才理解什么叫做从最外层向量逐步到达最底层向量的降维。[[1,2,3],[4,5,6]]的shape是(2,3)还可以这么表达:这个张量中,有2个大小为3的一阶张量。[[[1],[2],[3]],[[4],[5],[6]]]的shape是(2,3,1),还可以表达成:有2个大小为3的二阶张量,每个二阶张量中3个大小为1的一阶张量。似乎有点那个意思了,原来这个张量的shape表示形式有点嵌套的意思。

    现在给一个张量的shape为(1,2,3,4),我们看看能不能写出它的一个特例来:

    首先,最后一个维度为4,说明有大小为4的1阶张量,先写出来,:[0,1,2,3]

    其次,倒数第二个维度为3,说明二阶张量的大小是3,然后二阶张量中还套着大小为4的一阶张量,那也就是说3个大小为4的一阶张量构成了一个二阶张量,那就先写3个1阶张量吧:[0,1,2,3],[4,5,6,7],[8,9,10,11],好现在3个一阶张量写完了,再加一个中括号组合起来,就构成了一个我们想要的二阶张量:[[0,1,2,3],[4,5,6,7],[8,9,10,11]]

    然后,倒数第三个维度是2,说明有2个如上的2阶张量构成了一个三阶张量,也就是说三阶张量的大小为2,好,现在我们要写2个如上的二阶张量[[0,1,2,3],[4,5,6,7],[8,9,10,11]],[[12,13,14,15],[16,17,18,19],[20,21,22,23]],现在再加一个中括号组合一下,得到:[[[0,1,2,3],[4,5,6,7],[8,9,10,11]],[[12,13,14,15],[16,17,18,19],[20,21,22,23]]]

    最后,维度为1,说明有1个大小为2的三阶张量构成了四阶张量,加一个中括号就行:[[[[0,1,2,3],[4,5,6,7],[8,9,10,11]],[[12,13,14,15],[16,17,18,19],[20,21,22,23]]]]

    其实这样写还是很麻烦,不好理解,上面是从后往前数,现在我们从前往后数,依然是写一个张量,它的shape为(1,2,3,4):

    我们先写最外层的括号,用红色表示第一个维度1:[ ]

    现在逐个往里面添加括号,第二个维度为2,所以在红色括号中添加2个括号,用绿色表示:[[],[] ]

    第三个维度为3,所以在绿色括号里添加3个括号,注意每次添加括号,都要在上一层的所有括号内进行,用紫色表示:[[[],[],[]],[[],[],[]] ]

    第四个维度为4,所以在紫色括号里添加4个括号,用蓝色表示:[[[[],[],[],[]],[[],[],[],[]],[[],[],[],[]]],[[[],[],[],[]],[[],[],[],[]],[[],[],[],[]]] ]

    二、问题

  • 相关阅读:
    设计模式
    TCP拥塞控制
    TCP 连接建立和断开,以及状态转换
    python unicode字符串
    python语法笔记(七)
    python语法笔记(六)
    python语法笔记(五)
    python语法笔记(四)
    python语法笔记(三)
    【密码学】公钥与私钥
  • 原文地址:https://www.cnblogs.com/liuxiangyan/p/12613576.html
Copyright © 2011-2022 走看看