当前位置: 首页 > 编程笔记 >

解决tensorflow/keras时出现数组维度不匹配问题

裴昕
2023-03-14
本文向大家介绍解决tensorflow/keras时出现数组维度不匹配问题,包括了解决tensorflow/keras时出现数组维度不匹配问题的使用技巧和注意事项,需要的朋友参考一下

一、环境

Ubuntu 16.04

tensorflow 1.4.0

keras 2.1.3

二、训练数据时报错:

ValueError: Error when checking target: expected model_2 to have shape (None, 3) but got array with shape (4, 1

原因:数组的维度不正确。

三、解决思路

一开始的想法:tensorflow 和 keras 的版本不兼容?

经过多次安装不同版本的tensorflow 和 keras ,发现问题依旧存在。而且在python环境下使用命令:

import tensorflow

或者

import keras

时,报错:

/home/×××/anaconda2/lib/python2.7/site-packages/h5py/__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
from ._conv import register_converters as _register_converters

经过了多个版本的搭配,发现问题的原因不是 tensorflow 和 keras 的版本不兼容,而是

/home/×××/anaconda2/lib/python2.7/site-packages/h5py

这个文件的原因。

最终解决方法:在终端中使用命令:

pip install h5py==2.8.0rc1

就可以正常使用了,不会再报数组唯独不匹配等问题了。

补充:h5py文件是存放两类对象的容器,数据集(dataset)和组(group),dataset类似数组类的数据集合,和numpy的数组差不多。

补充知识:keras 维度不对等问题

1.在windows下面找到keras的配置文件, 修改channel_last 或者channel_first

C:\Users\Administrator\.keras\keras.json

2..在linux下面找到keras的配置文件, 修改channel_last 或者channel_first

/home/.keras/keras.json

以上这篇解决tensorflow/keras时出现数组维度不匹配问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍解决Keras中CNN输入维度报错问题,包括了解决Keras中CNN输入维度报错问题的使用技巧和注意事项,需要的朋友参考一下 想要写分类器对图片进行分类,用到了CNN。然而,在运行程序时,一直报错: ValueError: Negative dimension size caused by subtracting 5 from 1 for ‘conv2d_1/convolution'

  • 本文向大家介绍tensorflow训练中出现nan问题的解决,包括了tensorflow训练中出现nan问题的解决的使用技巧和注意事项,需要的朋友参考一下 深度学习中对于网络的训练是参数更新的过程,需要注意一种情况就是输入数据未做归一化时,如果前向传播结果已经是[0,0,0,1,0,0,0,0]这种形式,而真实结果是[1,0,0,0,0,0,0,0,0],此时由于得出的结论不惧有概率性,而是错误的

  • 本文向大家介绍解决Keras 与 Tensorflow 版本之间的兼容性问题,包括了解决Keras 与 Tensorflow 版本之间的兼容性问题的使用技巧和注意事项,需要的朋友参考一下 在利用Keras进行实验的时候,后端为Tensorflow,出现了以下问题: 1. 服务器端激活Anaconda环境跑程序时,实验结果很差。 环境:tensorflow 1.4.0,keras 2.1.5 2.

  • 问题内容: 我希望获取行数以检查数据库中是否已存在相同的电子邮件。我尝试了几种机制,但没有成功。当我直接在数据库中运行查询时,它给了我行数,但是通过PDO执行它给了我0。 我已经使用了fetchAll方法来手动计数,甚至使用了行数方法也无法正常工作 这个$ email_f的问题是它包含html 这是我从$ sql打印的查询,当我在phpmyadmin中直接在数据库中执行它时,它工作正常。给我3的数

  • 本文向大家介绍解决wx.onMenuShareTimeline出现的问题,包括了解决wx.onMenuShareTimeline出现的问题的使用技巧和注意事项,需要的朋友参考一下 wx.onMenuShareTimeline使用注意事项 我在开发测试过程中,发现使用wx.onMenuShareTimeline无效果,没有显示我定义的图片、title和链接,经过调试发现原因如下: 1.图片大小要大于

  • 所以我从文件中读取信息,得到一个类型不匹配错误。我通过调试器运行了它,但我不确定是什么导致了它——因为它正在读取正确的数字(在本例中为2000),但它似乎不认为它是整数? 我的代码如下: 从这些信息中可以看出: 2014年雇员史密斯,约翰2000 2015推销员琼斯,比尔3000 100000 2014执行布什,乔治5000 55 2014年员工曼,莎拉4000 2015年销售员Marco,约旦5