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 ...
随机推荐
- 脱离Office约束,C#结合Mpxj组件完美解析MSProject(.mpp)文件
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- Bootstrap3-导航
Bootstrap 导航 1. 定义导航组件 基本结构: <!-- 基本导航组件 --> <ul class="nav"> <li class=&qu ...
- 1-RocketMq 学习 中文文档(一)
原文:https://blog.csdn.net/weixin_40533111/article/details/84451096 1.基本概念及优势 rocketmq是一个基于发布订阅队列模型的消息 ...
- qt 操作串口
第三方类下载 https://sourceforge.net/projects/qextserialport/files/ 目录介绍 搭建工程 拷贝qextserialbase.cpp.qextser ...
- Android源码分析(十六)----adb shell 命令进行OTA升级
一: 进入shell命令界面 adb shell 二:创建目录/cache/recovery mkdir /cache/recovery 如果系统中已有此目录,则会提示已存在. 三: 修改文件夹权限 ...
- 3 Linux文件基本属性
Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限.为保护系统的安全性,Linux系统对不同的用访问的同意文件(包括目录文件)的权限做了不同的规定eg: [root@www ...
- 分布式系统原理之cap理论
1.1 CAP理论的含义 Cap理论表示在分布式系统中一致性(C).可用性(A)和分区容错性(P)最多只能同时满足两个. 一致性:客户端更新数据成功后,在任意时刻,在系统任意对外提供服务的节点,读取 ...
- 第11节-BLE协议HCI层的硬件接口
本篇博客由韦东山视频整理所得 如何控制链路层让其发出广播包.数据包?通过HCI层向它发出命令,也可以通过ATT层.L2CAP层向LL层发出数据. 学习资料: 蓝牙协议core_v5.0.pdf < ...
- Latex使用过程中的一些总结
本文主要总结在使用Latex过程中遇到的一些问题及解决方案. 一:关于参考文献 1.如何在paper同一处用\cite命令同时引用多篇文献? 用\cite{bibtex1}\cite{bibtex2} ...
- linux虚拟机获取不到ip的解决方法 --
问题描述: 在win10操作系统上,安装了centos7 虚拟机,安装后,用wifi网络可以获取ip,但是切换到手机热点或有线网络就获取不到ip 解决办法: 按照一般的修改ONBOOT =yes, 然 ...