解决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时出现数组维度不匹配问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • tensorflow 大于某个值为1,小于为0的实例

    我就废话不多说了,大家还是直接看代码吧~ one = tf.ones_like(label) zero = tf.zeros_like(label) label = tf.where(label <0.5, x=zero, y=one) 补充知识:TensorFlow中获取大于零的元素集合 a为tensor idx = tf.where(a > 0) output = tf.gather_nd(a, idx) 以上这篇tensorflow 大于某个值为1,小于为0的实例就是小编分享给大家的全部

  • 浅谈Tensorflow由于版本问题出现的几种错误及解决方法

    1.AttributeError: 'module' object has no attribute 'rnn_cell' S:将tf.nn.rnn_cell替换为tf.contrib.rnn 2.TypeError: Expected int32, got list containing Tensors of type '_Message' instead. S:由于tf.concat的问题,将tf.concat(1, [conv1, conv2]) 的格式替换为tf.concat( [con

  • tensorflow: 查看 tensor详细数值方法

    问题 tensor详细数值 不能直接print打印: import tensorflow as tf x = tf.constant(1) print x 输出: Tensor("Const:0", shape=(), dtype=int32) 原因: print只能打印输出shape的信息,而要打印输出tensor的值,需要借助 tf.Session,tf.InteractiveSession. 因为我们在建立graph的时候,只建立 tensor 的 结构形状信息 ,并没有 执行

  • TensorFlow损失函数专题详解

    一.分类问题损失函数--交叉熵(crossentropy) 交叉熵刻画了两个概率分布之间的距离,是分类问题中使用广泛的损失函数.给定两个概率分布p和q,交叉熵刻画的是两个概率分布之间的距离: 我们可以通过Softmax回归将神经网络前向传播得到的结果变成交叉熵要求的概率分布得分.在TensorFlow中,Softmax回归的参数被去掉了,只是一个额外的处理层,将神经网络的输出变成一个概率分布. 代码实现: import tensorflow as tf y_ = tf.constant([[1.

  • 解决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 和 ke

  • 使用keras时input_shape的维度表示问题说明

    Keras提供了两套后端,Theano和Tensorflow,不同的后端使用时维度顺序dim_ordering会有冲突. 对于一张224*224的彩色图片表示问题,theano使用的是th格式,维度顺序是(3,224,224),即通道维度在前,Caffe采取的也是这种方式.而Tensorflow使用的是tf格式,维度顺序是(224,224,3),即通道维度在后. Keras默认使用的是Tensorflow.我们在导入模块的时候可以进行查看,也可以切换后端. 为了代码可以在两种后端兼容,可以通过d

  • 解决tensorflow训练时内存持续增加并占满的问题

    记录一次小白的tensorflow学习过程,也为有同样困扰的小白留下点经验. 先说我出错和解决的过程.在做风格迁移实验时,使用预加载权重的VGG19网络正向提取中间层结果,结果因为代码不当,在遍历图片提取时内存持续增长,导致提取几十个图片的特征内存就满了. 原因是在对每一张图片正向传播结束后,都会在留下中间信息.具体地说是在我将正向传播的代码与模型的代码分离了,在每次遍历图片时都会正向传播,在tensorflow中新增加了很多的计算节点(如tf.matmul等等),导致内存中遗留了大量的过期信息

  • 解决feignClient调用时获取返回对象类型匹配的问题

    feignClient调用时获取返回对象类型匹配 feignClient是springCloud体系中重要的一个组件,用于微服务之间的相互调用,底层为httpClient,在之前的应用中,我一直以为A服务提供的方法返回类型为对象的话,那么调用A服务的B服务必须也用字段类型以及命名完全相同的对象来接收,为此我验证了一下,发现不是必须用完全相同的对象来接收,比如,可以用map<String,Object>或者Object来接收,然后解析. 当然,复杂对象我还是推荐用一个完全相同的对象来接收. 下面

  • 解决Keras中CNN输入维度报错问题

    想要写分类器对图片进行分类,用到了CNN.然而,在运行程序时,一直报错: ValueError: Negative dimension size caused by subtracting 5 from 1 for 'conv2d_1/convolution' (op: 'Conv2D') with input shapes: [?,1,28,28], [5,5,28,30]. 这部分提到的代码是这样的,这是我的分类器的输入层: model.add(Conv2D(30,(5, 5), input

  • 完美解决TensorFlow和Keras大数据量内存溢出的问题

    内存溢出问题是参加kaggle比赛或者做大数据量实验的第一个拦路虎. 以前做的练手小项目导致新手产生一个惯性思维--读取训练集图片的时候把所有图读到内存中,然后分批训练. 其实这是有问题的,很容易导致OOM.现在内存一般16G,而训练集图片通常是上万张,而且RGB图,还很大,VGG16的图片一般是224x224x3,上万张图片,16G内存根本不够用.这时候又会想起--设置batch,但是那个batch的输入参数却又是图片,它只是把传进去的图片分批送到显卡,而我OOM的地方恰是那个"传进去&quo

  • 解决tensorflow测试模型时NotFoundError错误的问题

    错误代码如下: NotFoundError (see above for traceback): Unsuccessful TensorSliceReader constructor: Failed to find any matching files for xxx -- 经查资料分析,错误原因可能出在加载模型时的路径问题.我采用的加载模型方法: with tf.Session() as sess: print("Reading checkpoints...") ckpt = tf.

  • 解决vue.js提交数组时出现数组下标的问题

    这是因为在vue.js 里面的ajax.js文件内对数据进行了深度解析了,我们只需要 let axios = Axios.create({ baseURL: 'http://127.0.0.1:8761/', headers: {'X-Requested-With': 'XMLHttpRequest'}, transformRequest: [function (data) { //在data当中存在数组的话需要加上{arrayFormat: 'brackets'} 否则提交时数组会显示下标 d

  • 如何解决tensorflow恢复模型的特定值时出错

    模型的恢复 对于的模型的恢复来说,需要首先恢复模型的整个图文件,之后从图文件中读取相应的节点信息. 存储的模型文件包括四个子文件,如下: 现在假如我想恢复模型中的某个节点信息: 需要注意的是在使用saver.restore恢复权值的时候,参数的设置需要万分注意: # 先加载图文件 saver = tf.train.import_meta_graph("./model/save_model.meta") graph = tf.get_default_graph() # 其中的一个节点 a

  • 解决TensorFlow调用Keras库函数存在的问题

    tensorflow在1.4版本引入了keras,封装成库.现想将keras版本的GRU代码移植到TensorFlow中,看到TensorFlow中有Keras库,大喜,故将神经网络定义部分使用Keras的Function API方式进行定义,训练部分则使用TensorFlow来进行编写.一顿操作之后,运行,没有报错,不由得一喜.但是输出结果,发现,和预期的不一样.难道是欠拟合?故采用正弦波预测余弦来验证算法模型. 部分调用keras库代码如上图所示,用正弦波预测余弦波,出现如下现象: def

随机推荐