关于Tensorflow输入数据的shape
关于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相关推荐
- TensorFlow里,shape=(?, 120)里的问号是怎么回事呢
TensorFlow里,shape=(?, 120)里的问号是怎么回事呢 125 self.cos_sim (1024, 51) Tensor("cosine-imilarity-lay ...
- tensorflow.reshap(tensor,shape,name)的使用说明
tensorflow as tf tf.reshape(tensor, shape, name=None) reshape作用是将tensor变换为指定shape的形式. 其中shape为一个列表 ...
- tensorflow 基础: static shape VS Dynamic shape, get_shape VS tf.shape() , reshape VS set_shape
######################################################################################### 1) 概念:stat ...
- tensorflow中的shape函数理解
在tensorflow中经常用到shape函数 例如 import tensorflow as tf a = tf.constant([[1.,2.,3.],[4.,5.,6.],[7.,8.,9.] ...
- 【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 ...
- tensorflow错误:Shape (10, ?) must have rank at least 3
错误的代码 outputs, _ = tf.nn.dynamic_rnn(cell, X, dtype=tf.float32) 错误原因: 该错误的意思是传入的数据集X的维度只有二维,而tf.nn.d ...
- 【TensorFlow】——不同shape的tensor在神经网络中的应用(scalar,vector,matrix)
目录 1.scalar--标量 1)在神经网络中存在的场景 2)one_hot编码 3)举例应用 2.vector--向量 3.matrixs--矩阵 4.dim=3的tensor 5.dim ...
- python——tensorflow——ValueError:Shape(None,1)and (None,7) are incompatible
文章目录 异常 解决办法 异常 解决办法 更换损失函数为SparseCategoricalCrossentropy,这两个损失函数都是针对多分类,但是两者对标签的编码是不同的. categorical ...
- 【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 ...
- 实战:基于tensorflow 的中文语音识别模型 | CSDN博文精选
作者 | Pelhans 来源 | CSDN博客 目前网上关于tensorflow 的中文语音识别实现较少,而且结构功能较为简单.而百度在PaddlePaddle上的 Deepspeech2 实现功能 ...
最新文章
- 有向图的广度优先遍历_图的两种遍历方式
- 客户说有了PAI-AutoML,一下子可以节约半年开发周期
- mysql与groupconcat相反的_MySQL中GROUP_CONCAT的反义词是什么?
- Linux内核网络协议栈8—socket监听
- javascript date utc
- Java多线程售票一张票多买问题
- 工大瑞普Cisco路由模拟器Dynamips
- 数字滤波算法——中值滤波
- gps北斗高精度卫星时间同步系统应用案例
- 驱动开发:BSOD 0xC4_f6 句柄问题
- 程序 卡塔_建筑钉卡塔
- mac数字键盘错乱_苹果本键盘按键错位错乱是为什么?
- 用qpython3写一个发送短信的程序
- 2022南阳理工计科ACM计科TC招新热身赛题解
- win7下批处理bat文件:切换网络设置
- [阅读体会] UNIX环境高级编程
- 1. 树莓派的基础配置
- php打印10以内减法表,10以内加减法口诀表练习题口算题可打印(附下载)
- Java多态1 - 引入多态,多态解决主人给不同动物喂食物的问题
- php水解蛋白技术,乳蛋白部分水解配方奶粉:美赞臣亲舒
热门文章
- 今天的两个收获--linux的特性和海森堡式错误
- tcl android tv系统,TCL to launch motion-controlled Android TV first in China
- ASP.NET学习笔记(二)——一般处理程序之图片上传
- Windows系统(tips)
- MySQL全文索引的坑 20211202
- 【技巧】vscode快速生成html结构
- Java金额转换_阿拉伯数字转换成中国大写数字
- 一台计算机ip地址在哪里设置密码,电脑动态IP地址怎么设置
- matlab 保存成csv,怎么将matlab中数据保存为csv或xls格式
- 计算机休眠唤醒后没声音,MacBook Pro从睡眠模式中唤醒后突然没有声音