zoukankan      html  css  js  c++  java
  • tensorflow错误:Shape (10, ?) must have rank at least 3

      错误的代码

     outputs, _ = tf.nn.dynamic_rnn(cell, X, dtype=tf.float32)

      错误原因:

      该错误的意思是传入的数据集X的维度只有二维,而tf.nn.dynamic_rnn()要求传入的数据集的维度是三维(batch_size, squence_length, num_features)。在这里因为特征是一维,因此没有显示。

      解决方案:

    X = tf.expand_dims(X, axis=2)

      类似的错误:

      ValueError: Shapes (?, 1) and (?,) are incompatible

      错误代码:

    loss = tf.losses.mean_squared_error(labels=y, predictions=predictions)

      错误原因:

      和上面的一致

      解决方案:

    y = tf.expand_dims(y, axis=1)

      一个代码里面碰到两个这样的问题,之后碰到维度不匹配的感觉都可以用这个方法去解决,那就来看下这个方法吧。

    tf.expand_dims(input, axis=None, name=None, dim=None)

      方法的目的:

      插入一个维度到tensor中,主要是处理维度不匹配的现象 

      参数详解:

      input:输入的张量

      axis:指定插入张量的维度的索引,可以理解为一个四维张量的索引为(0,1,2,3),如果该值为负,则从末尾开始计数

      name:输出的张量的名称

      dim:等同于axis,不推荐使用     

      拓展:

    tf.suqeeze(input, squeeze_dims=None, name=None)

      该方法用于压缩维度的,也就是删除所有大小为1的维度,类似的方法还要np.squeeze()

  • 相关阅读:
    深度学习--文本摘要生成简介
    hive进阶 技巧
    python 库 imgaug数据增强
    评分卡模型
    spark-submit 参数总结
    H2O中的随机森林算法介绍及其项目实战(python实现)
    kafka 基本原理简介
    Xshell 服务器配置
    yapi内网部署 centos
    pm2使用 node 进程管理
  • 原文地址:https://www.cnblogs.com/jiangxinyang/p/9390355.html
Copyright © 2011-2022 走看看