关于Tensorflow输入数据的shape确定

注意:

1.模型数据输入的shape与batch_size无关!

2.只有"单个"样本的shape有关!

3.且只与样本的"特征数据"的shape有关,与标签shape无关!

因为从框架设计上来说,每个人训练的输入batch_size不一定一样,所以模型输入shape就肯定不能带上batch_size。
只当真正训练时,自动每批次求导即可。即,你每次输入1个样本,它就计算1个样本,求一次损失;如果你输入10个,那么它就
计算10个样本,求其均值损失。

tensorflow的标准dataset格式

使用tf.data.Dataset.from_tensor_slices((特征数据列表,标签值列表))是最方便的一种方式。TF设计的数据读取方式:
每单个样本格式必须是(特征数据,标签值)这么一对。但是输入给from_tensor_slices的参数不能是[(特征数据,标签值),…],而是((特征数据列表,标签值列表)),这一点与pytorch不一样,pytorch是前一种格式即可被data.DataLoader读取。

batch_size就是这么一对一对样本组合的个数。batch_size的作用就是让模型一次一口吃多个样本。因为仅仅(特征数据,标签值)一对一口,吃的太慢。这样由batch_size个样本组合的数据叫mini_batch.

len(df)   #样本总个数
#303
train_dataset = dataset.shuffle(len(df)).batch(3)  #经过batch_size=3的划分后
len(train_dataset)
#101   每次喂给模型mini-batch后,需要喂101口。

在模型内部,模型层的直接输入数据是特征数据而不是标签数据,
标签数值仅仅只是在call函数中与模型生成的结果进行损失求值而已。所以不需要关心标签数值的shape,只需要盯着特征数据shape看就行了,并且仅看单个样本的特征数据shape无视batch_size.

如何查看Dataset单个特征数据的shape?

很简单直接打印Dataset即可,因为TF设计Dataset的打印输出仅为shape信息,不是具体数值

print(train_dataset)
#<BatchDataset shapes: ((None, 12), (None,)), types: (tf.float64, tf.int8)>

得到特征样本的shape是(None,12),其中None是占位batch_size,无视即可,本身就是(12,)

例:第一层模型的shape输入


model = tf.keras.Sequential([tf.keras.layers.Dense(16,input_shape=(12,),activation='relu',name="D1"),tf.keras.layers.Dense(32,activation='relu',name="D2"),tf.keras.layers.Dense(64,activation='relu',name="D3"),tf.keras.layers.Dense(32,activation='relu',name="D4"),tf.keras.layers.Dense(16,activation='relu',name="D5"),tf.keras.layers.Dense(1,activation='relu',name="D6")
])

关于Tensorflow输入数据的shape相关推荐

  1. TensorFlow里,shape=(?, 120)里的问号是怎么回事呢

    TensorFlow里,shape=(?, 120)里的问号是怎么回事呢   125 self.cos_sim (1024, 51) Tensor("cosine-imilarity-lay ...

  2. tensorflow.reshap(tensor,shape,name)的使用说明

    tensorflow as tf tf.reshape(tensor, shape, name=None)  reshape作用是将tensor变换为指定shape的形式.  其中shape为一个列表 ...

  3. tensorflow 基础: static shape VS Dynamic shape, get_shape VS tf.shape() , reshape VS set_shape

    ######################################################################################### 1) 概念:stat ...

  4. tensorflow中的shape函数理解

    在tensorflow中经常用到shape函数 例如 import tensorflow as tf a = tf.constant([[1.,2.,3.],[4.,5.,6.],[7.,8.,9.] ...

  5. 【TensorFlow】ValueError: Shape must be rank 1 but is rank 0 for ' ’ with input shapes: [].问题

    基于TensorFlow训练mnist数据集出现如下错误: 检测代码,发现是偏置设置格式错误导致. 1.错误代码: # 定义权重和偏置 n_input = 784 n_output = 10 weig ...

  6. tensorflow错误:Shape (10, ?) must have rank at least 3

    错误的代码 outputs, _ = tf.nn.dynamic_rnn(cell, X, dtype=tf.float32) 错误原因: 该错误的意思是传入的数据集X的维度只有二维,而tf.nn.d ...

  7. 【TensorFlow】——不同shape的tensor在神经网络中的应用(scalar,vector,matrix)

    目录 ​ 1.scalar--标量 1)在神经网络中存在的场景 2)one_hot编码 3)举例应用 2.vector--向量 ​ 3.matrixs--矩阵 4.dim=3的tensor 5.dim ...

  8. python——tensorflow——ValueError:Shape(None,1)and (None,7) are incompatible

    文章目录 异常 解决办法 异常 解决办法 更换损失函数为SparseCategoricalCrossentropy,这两个损失函数都是针对多分类,但是两者对标签的编码是不同的. categorical ...

  9. 【tensorflow】Input to reshape is a tensor with xxx values, but the requested shape requires a multipl

    今天写了一个简单的3DCNN,结果在跑的时候出现一个问题, tensorflow.python.framework.errors.InvalidArgumentError: Input to resh ...

  10. 实战:基于tensorflow 的中文语音识别模型 | CSDN博文精选

    作者 | Pelhans 来源 | CSDN博客 目前网上关于tensorflow 的中文语音识别实现较少,而且结构功能较为简单.而百度在PaddlePaddle上的 Deepspeech2 实现功能 ...

最新文章

  1. 有向图的广度优先遍历_图的两种遍历方式
  2. 客户说有了PAI-AutoML,一下子可以节约半年开发周期
  3. mysql与groupconcat相反的_MySQL中GROUP_CONCAT的反义词是什么?
  4. Linux内核网络协议栈8—socket监听
  5. javascript date utc
  6. Java多线程售票一张票多买问题
  7. 工大瑞普Cisco路由模拟器Dynamips
  8. 数字滤波算法——中值滤波
  9. gps北斗高精度卫星时间同步系统应用案例
  10. 驱动开发:BSOD 0xC4_f6 句柄问题
  11. 程序 卡塔_建筑钉卡塔
  12. mac数字键盘错乱_苹果本键盘按键错位错乱是为什么?
  13. 用qpython3写一个发送短信的程序
  14. 2022南阳理工计科ACM计科TC招新热身赛题解
  15. win7下批处理bat文件:切换网络设置
  16. [阅读体会] UNIX环境高级编程
  17. 1. 树莓派的基础配置
  18. php打印10以内减法表,10以内加减法口诀表练习题口算题可打印(附下载)
  19. Java多态1 - 引入多态,多态解决主人给不同动物喂食物的问题
  20. php水解蛋白技术,乳蛋白部分水解配方奶粉:美赞臣亲舒

热门文章

  1. 今天的两个收获--linux的特性和海森堡式错误
  2. tcl android tv系统,TCL to launch motion-controlled Android TV first in China
  3. ASP.NET学习笔记(二)——一般处理程序之图片上传
  4. Windows系统(tips)
  5. MySQL全文索引的坑 20211202
  6. 【技巧】vscode快速生成html结构
  7. Java金额转换_阿拉伯数字转换成中国大写数字
  8. 一台计算机ip地址在哪里设置密码,电脑动态IP地址怎么设置
  9. matlab 保存成csv,怎么将matlab中数据保存为csv或xls格式
  10. 计算机休眠唤醒后没声音,MacBook Pro从睡眠模式中唤醒后突然没有声音