Keras入门笔记 1:解读K.batch_dot源码并比较其点积功能
发布时间
阅读量:
阅读量
动机
矩阵与向量相乘的操作在不同情境下拥有多种称呼,甚至存在混淆现象,各个框架中的命名方式也各不相同,常常让人误入这些看似神秘的陷阱。例如,同样是dot函数,在处理形状为shape=(n,)的向量和形状为shape=(n,1)的一维张量时,其行为也存在差异。无论总结过多少次相关规则,像我们这类在torch、tensowflow以及matlab之间切换编写代码的人,总会不经意间出现错误。
幸运的是,keras提供了更为高级的接口设计,至少在tensorflow、theano以及未来可能支持的mxnet中能够保持一致的表现。
各种向量乘法的命名
我对诸如“点积、外积、内积、点乘、叉乘、直积、向量积、张量积”这类术语的表述方式感到十分困扰,因为这些名称混乱不堪。我认为有必要对这些概念进行统一规范,避免在不同场合下交替使用“点积”与“点乘”等类似术语,同时也不应忽视一维与二维之间的区别,否则极易造成理解上的混淆。鉴于中文教材中存在多种不同的翻译方式,因此建议以wiki作为主要参考标准,实现术语表达的统一性。
一维向量特征分析
需要特别指出的是,唯有shape=(n, )形式的数据才属于一维向量,而shape(n,1)则已转变为张量结构。
- [Dot product](https://en.wikipedia.org/wi
全部评论 (0)
还没有任何评论哟~
