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 ...
随机推荐
- C#实现outlook自动签名
Outlook下实现自动签名的方式 网上找到一篇资料是在outlook里用vba实现的,但是这样实现的方式由于数字认证的问题不便于部署 在此介绍一种C#下实现的方式,目前确定的outlook版本为 ...
- Qt 字符串截取 获取指定字符位置
获取字符在字符串中的位置 QString str = "AT+LOC+LOCATION: 115.850441,33.004833"; QString s = "LOC& ...
- windows下查看webp格式图片
关于webp 时下webp格式日渐势起,主流浏览器(IE: ???)已经开始支持webp,诸多互联网企业(Facebook 和 ebay,国内的有淘宝.腾讯和美团等)都已经在不遗余力的将webp应用到 ...
- ECharts学习指南
1.了解ECharts ECharts简单说就是互联网开发程序过程中,后台数据库用以实现数据到图形的映射的一个插件. 具体来说一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在PC和 ...
- logger(三)log4j2简介及其实现原理
一.log4j2简介 log4j2是log4j 1.x和logback的改进版,据说采用了一些新技术(无锁异步.等等),使得日志的吞吐量.性能比log4j 1.x提高10倍,并解决了一些死锁的bug, ...
- VMware vSphere API开发(一)---vSphere 体系核心概念
1.VMware SDDC VMware 软件定义数据中心(software defined dataCenter,SDDC),包括了从最底层的VMware vSphere.软件定义存储 ...
- ASP.NET----内置对象----Resuest
Request对象可以获取包含用户的计算机.页面及浏览器的请求等相关信息. Request对象的属性: ①Form----------返回有关表单变量的集合 ②QueryString--------- ...
- elastalert docker安装
基于对elasticsearch中数据监控需要,我尝试了sentinl和elastalert两款工具.虽然elastalert是纯文本,但易配置管理.elk自带的watch需要付费才可使用. 6.2x ...
- NetScaler的常用配置
CITRIX NETSCALER常用功能有:LB,CS,GSLB,SSL LB实现的功能是服务器负载均衡,CS实现基于七层(域名,IP等)的负载均衡,GSLB实现的功能是全局负载均衡,SSL实现的功能 ...
- 一个从tensorflow_1.14.0-gpu-py3-jupyter镜像生成公司实际需求的Dockerfile
外部的标准镜像,肯定满足不了公司的实际要求咯~~ 所以,根据同事的需求,重新制作了这个包. 其中可用库为tensorflow,numpy, pandas,scikit-learn,jieba,gens ...