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 ...
随机推荐
- HTML5 下拉控件绑定数据
<select id="CommunityList" class="form-control" > <option>請選擇社團</ ...
- C#安全类型转换基于convert
using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Globalization; n ...
- 深挖Jvm垃圾收集
垃圾收集(Garbage Collection,GC),它的任务是解决以下 3 件问题: 哪些内存需要回收? 什么时候回收? 如何回收? 其中第一个问题很好回答,在 Java 中,GC 主要发生在 J ...
- 将Python源程序打包成可独立执行的文件
有时候需要将编写好的脚本发送给别人,但是在没有安装运行环境或依赖库的情况下,Python脚本程序无法执行.PyInstaller工具可以快速的将python脚本打包成一个二进制可执行的exe程序,并且 ...
- Flask配置方式
目录 Flask配置方式 默认的配置参数 Flask配置方式 flask配置总共有四种方式: 第一种:直接在启动文件中进行配置 from flask import Flask app = Flask( ...
- android studio学习----偏好设置
主要找到设置的界面:Files->Settings , android studio里面没有preferences 1.字体大小设置 进入后你也许发现字体大小或者样式不符合你的习惯,比如我是觉得 ...
- javascript之BOM对象(三其他对象)
一.navigator对象 navigator使用来识别浏览器的,是所有支持javascript的浏览器所共有的.与BOM的其他对象不同,每个浏览器的navigator对象都有一套自己的属性. 常见的 ...
- Nginx 核心配置-长连接配置
Nginx 核心配置-长连接配置 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.长连接配置参数说明 keepalive_timeout number; 设定保持连接超时时长,0 ...
- LCD裸板编程_框架
lcd程序框架: 为了让程序更好的扩展,介绍面向对象编程: 比如抽象出lcd_3.5和lcd_4.3的共同点: 当我想使用3.5寸的lcd时,只需让lo指向lcd_3.5_opr即可.同样,当我想使用 ...
- 关于python中lambda 函数使用小结
例子: 如果定义普通函数,一般都是这样写: def:ds(x): return 2*x+1 调用即: ds(5) 如果用lambda函数就是这么写,就是一句话: g =lambda x:2*x+1 调 ...