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就可以,对原来的数据量没有影响的,只是扩展一个维度,没有增加数据量呀。理论上扩展维度肯定是可以的,有报错的话应该是实现的问题。

最新文章

  1. OpenCV人脸识别Eigen算法源码分析
  2. Linux:使用nohup让进程在后台可靠运行
  3. stringstream的用法【转】
  4. VirtualBox 使用技巧
  5. LeetCode 274
  6. SGU 134 Centroid
  7. 由sqlite在手机的内存位置,引起onCreate当运行总结
  8. 使用C#在VS中开发:未处理AccessViolationException “System.AccessViolationException”类型的未经处理的异常
  9. MVC查询数据接收及校验
  10. Ubuntu18下sudo apt install xxx出现问题
  11. Problem B: 平面上的点和线——Point类、Line类 (II)
  12. ReactNative学习笔记(六)集成视频播放
  13. [书摘]图解HTTP 状态码
  14. html-文件上传设置accept类型延时问题
  15. js传入和传出参数乱码
  16. Python爬虫个人记录(四)利用Python在豆瓣上写一篇日记
  17. TCP并发server模型(三)
  18. HR面 - 十大经典提问
  19. Your branch is ahead of &#39;origin/master&#39; by 1 commit.
  20. 使用docker的kms服务器激活office2016专业增强版

热门文章

  1. C#字符串(String)类型中@的用法
  2. EF自动创建数据库步骤之四(启用数据库初始器)
  3. c# 开发+MySql数据库
  4. Android 中发送邮件
  5. 设计模式:单例(Sigleton)模式
  6. day 68 作业
  7. mysql 连接数用完,root也无法登陆的处理方法
  8. lua使用ffi调用c程序的函数
  9. Nginx常见的安装方式
  10. 复数基础及其2D空间的旋转