Debug 路漫漫-09:构建CNN时维度不一致问题
Build CNN Network 之后,运行,但是报错:
ValueError: Input 0 is incompatible with layer predict_vector_conv1: expected ndim=3, found ndim=2
原因:
对于lexicographic,先element wise 点积(user*item),这样维度只能是2维的。而Convolutional操作和maxpooling 操作都需要3D,缺少的那一维好像没办法给出来。
<0723好傻好傻,点乘怎么会降维呢!!原来是我在merge点乘前面做了 Flatten操作,被自己蠢哭了5555>
那么,如何再增加一个维度呢??
即在CNN中,如果是对矩阵做操作的话(不是图像)。maxpooling需要3dim,而我的矩阵只有2dim,这种情况可操作吗?或者说有什么办法可以额外增加一个维度吗
法一:
【TensorFlow用expand_dim()来增加维度:https://blog.csdn.net/jasonzzj/article/details/60811035 】
one_img = tf.expand_dims(one_img, -1) #-1表示最后一维 ——好像可以解决问题。
底下的评论:
这里是维度上的1,理解成增加维度就够了,至于数值,其实本质是不影响的。着重理解:维度的增加。例如一个二维数据shape=(1,2),我们理解的是一行两列的数据,它所代表的是一个二维矩阵,如果shape=(3,2),其所代表的意义一样是一个二维矩阵,只是矩阵中的数据量变成了三行两列。而当我们使用这里的exped_dims(t,1)之后,那么原来的二维矩阵就变成了三维了,也就是shape=(1,1,2),第二个位置的1,可以将其理解为占位符,至于里面的数据量大小(是1或者2、3)其实并无太大意义,主要意义就是原来的数据,增加了一个维度。
——
但是会出现这个问题:
法二:
YS:可以用 reshape 。比如数据集是N张4096的图片,就可以把它 reshape 成 N*64*64*1的维度,就是后面再多个维度长度为1的一个维度。
法三:
Dr.PH: 2dim也是属于3dim一种,你把2dim转化成3dim。
XD:扩展一个维度为1就可以,对原来的数据量没有影响的,只是扩展一个维度,没有增加数据量呀。理论上扩展维度肯定是可以的,有报错的话应该是实现的问题。
Debug 路漫漫-09:构建CNN时维度不一致问题的更多相关文章
- Debug 路漫漫-05
Debug 路漫漫-05: 1.使用这种方式计算 AUC 指标,结果出来居然是 NAN, —— 分母为(M*N),M或者N必有一个为0 了.(nan出现的情况绝大部分是分母出现0了) 若分子为0的 ...
- Debug 路漫漫-03
Debug 路漫漫-03:SVD++的 Matlab 版本 SVD++ 的 pu 这一项: 圈圈中的这一项,它既然要和pu 相加 的话 ,那么,它的维度也应该是 m*K.(就是维度和Pu一致的 . 而 ...
- Debug 路漫漫-04
1.错误使用 cat 要串联的数组的维度不一致. ——前面给个初始化即可: D = cell(length(trainIdx),1); user_itemData = cell(length(trai ...
- Debug 路漫漫-02
重现标准 BTL Model ,using MATLAB: 1. 错误使用 cat要串联的数组的维度不一致.出错 cell2mat (line 83) m{n} = cat(1,c{:,n}); —— ...
- Debug 路漫漫-01
运行到子函数时提示报错: === 这个断点一步步debug下来是顺利的,但是咋就超出数组范围了呢,这会是什么问题. ——sess肯定超过索引了,那个sess(:,2)的值肯定超过V的行数了. ——由 ...
- Debug 路漫漫-15:Python: NameError:name 'dataset' is not defined
在调试 <Outer Product-based Neural Collaborative Filtering>论文的源码(https://github.com/duxy-me/ConvN ...
- Debug 路漫漫-14:Python: AttributeError: module 'tensorflow' has no attribute 'sub'
在调试 <Neural Factorization Machines for Sparse Predictive Analytics>论文的源码(https://github.com/he ...
- Debug 路漫漫-13:Python: pandas IndexError: single positional indexer is out-of-bounds
在数据预处理过程中,出现:IndexError: single positional indexer is out-of-bounds 原因是在使用 Pandas 读取 dataframe 的时候,分 ...
- Debug 路漫漫-10:AttributeError: 'Embedding' object has no attribute 'get_shape'
CNN的Embedding层报错: 报错:AttributeError: 'Embedding' object has no attribute 'get_shape' 查了下是这个问题: https ...
随机推荐
- Common Lisp : Symbol到底是什么
主要参考: <Emacs之魂>(四) 包:
- tengine 基于权重负载均衡的简单配置
环境如下: 资源服务器_1:192.168.10.10 centos 7 tengine 2.3.0 资源服务器_2:192.168.10.129 centos 7 tengine 2.3. ...
- Linux进程管理(11)
进程介绍: 1.在Linux中,每个执行的程序(代码)都称为一个进程.每一个进程都分配一个ID号. 2.每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程. 3.每个进程都有两种方式存在: ...
- ES6的常见语法!!
let : 声明变量 不存在变量提前 拥有局部作用域 (只要有{}出现 则只在该{}范围内生效) (而var只在函数内会产生作用域范围) 不能重复声明 const : 声明常量(常量名从规范上来将 最 ...
- JS基石之-----常用方法封装的js库
解析 URL Params 为对象 let url = 'http://www.domain.com/?user=anonymous&id=123&id=456&city=%E ...
- 【学习笔记】大数据技术原理与应用(MOOC视频、厦门大学林子雨)
1 大数据概述 大数据特性:4v volume velocity variety value 即大量化.快速化.多样化.价值密度低 数据量大:大数据摩尔定律 快速化:从数据的生成到消耗,时间窗口小,可 ...
- linux Yum相关
python编写,是centos 和 redhat的包管理工具,类似于 pip 常用的yum命令 Yum list 查看所有的包 Yum list python 列出所有python包 yum sea ...
- Redis内存模型(1):内存统计及划分
1. 内存统计 查看命令:info memory 示例: 部分含义: used_memory: Redis分配器分配的内存总量(单位是字节),包括使用的虚拟内存. used_memory_rss: R ...
- (原+修改)ubuntu上离线安装pytorch
转载请注明出处: https://www.cnblogs.com/darkknightzh/p/12000809.html 参考网址: https://blog.csdn.net/qq_4193655 ...
- JMETER 使用断言
断言概念 断言就是在执行某个请求后,根据返回的结果,判断返回是否正确,如果不正确,则表示事务失败. 添加断言 启动流程时返回的数据是一个 json对象,结构为 {success:true,msg:&q ...