Keras中出现错误tensorflow.python.framework.errors_impl.InvalidArgumentError等错误

2023-05-16

1.完整错误提示

tensorflow.python.framework.errors_impl.InvalidArgumentError: Input to reshape is a tensor with 100 values, but the requested shape has 200

2.错误原因

在使用keras搭建网络时出现这种错误我的理解是模型结构基本是没有问题的,这个提示一般是在输入数据训练时会出现,也就是会提示在model.fit()阶段出错。当然建议使用summary函数对模型结果进行检查一下,有可能是因为某一层在写compute_output_shape函数时返回了错误的数据shape。

3.解决方案之一

在经过一下午的反复对比和模型结构检查后,我始终觉得模型肯定是没问题的,最后经过不断测试才发现错误,因为我是使用keras的Model来建立模型,进行输入输出,因为数据量小之前对batch_size的设置一直为默认,就是None,其实就是每次输入一组数据,这次想试下新模型所以在输入层做了如下设置:

inputs = Input(shape=(100,), dtype='int32', batch_shape=(2, 100), name='inputs')

但是我的fit函数里如下写:

model.fit(train_data,train_labels, epochs=20)

所以模型一直提示我数据不对,解决办法是对fit函数作如下改变

model.fit(train_data, train_labels, epochs=20, batch_size=2)

加上batch_size就行了,默认batc_size为32,都是细节问题。

# 这里是对上面设法的修正

像上面这样对Input层和fit函数都设置batch_size在第一个epoch是有效的,但是在第二个epoch就会出错,所以这是什么原因呢?暂时知道,错误提示还是第二个epoch只传入了1个bactch_size的值,暂时不知道怎么解决这个问题。但是经过我反复测试,使用Model来建立模型喂数据需要设置batch_size的唯一正确设法如下:

inputs = Input(shape=(100,), dtype='int32', name='inputs')
model.fit(x=[train_data, train_mask_data], y=train_labels, epochs=100, batch_size=batch_size)

但是虽然这种设置方法有效,在模型里的三维数据的第一维总是None,因为在Input层未设置batch_shape,该参数表明了bacth的大小,其值为(batch_size,data_dim)。这样的话我在模型中就不能通过数据取到batch_size的值,其实有时候会用到这个值,除了自己通过参数的形式传入batch_size,就没有其他的方式了吗?求解答。

当然,这只是出现这种错误的一直解决办法,如果不是我这种错误,可能该方法就不会有效。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Keras中出现错误tensorflow.python.framework.errors_impl.InvalidArgumentError等错误 的相关文章

  • 类与对象

    1 编写一个代表三角形的类 xff0c 其中三条边为三角形的属性 xff0c 并且封装有求三角形的面积和周长的方法 分别针对三条边为3 4 5 和7 8 9的两个三角形进行测试 程序代码 xff1a package ex5 public c
  • 抽象类与接口

    1 定义一个接口 xff0c 其中包含一个displa 方法用于显示信息 xff1a 通知类 xff0c 汽车类 xff0c 广告类 xff0c 均要实现该接口显示 通知内容 xff0c 汽车油量 和 广告信息 程序代码 xff1a pub
  • ArduSub SITL Ubuntu mavros环境搭建

    第一章 ArduSub SITL Ubuntu环境搭建 作者 xff1a 张玉梅 zhangym 64 pcl ac cn 1 1 安装过程 第一步 xff1a http ardupilot org dev docs building se
  • 继承与多态

    1 给Point类添加一下几个求两点间距离的多态方法 xff1a public double distance Point p public double distance int x int y public static double
  • css+js制作一个简易的播放器

    lt doctype html gt lt html gt lt head gt lt meta charset 61 34 UTF 8 34 gt lt meta name 61 34 Keywords 34 content 61 34
  • 图片轮播

    lt DOCTYPE HTML gt lt HTML gt lt HEAD gt lt META name 61 34 Generator 34 content 61 34 EditPlus 34 gt lt META name 61 34
  • 3d盒子

    lt DOCTYPE HTML gt lt HTML gt lt HEAD gt lt TITLE gt 旋转盒 lt TITLE gt lt meta charset 61 34 UTF 8 34 gt lt META name 61 3
  • 基于JavaScript之碰撞的小球

    lt DOCTYPE HTML gt lt HTML gt lt HEAD gt lt META name 61 34 Generator 34 content 61 34 EditPlus 34 gt lt META name 61 34
  • 排序、查找、链表、栈、队列等常见数据结构算法代码实现(C语言版)

    列举了一些数据结构常用算法的代码实现及注释讲解 xff0c 所有代码都自己进行过测试 xff0c 如有疑问请留言 插入排序 include lt stdio h gt typedef struct int key datatype void
  • Java分治法实现日程表

    算法描述 xff1a 设有n 61 2的k次个运动员要进行网球比赛 xff0c 现在要设计一个满足一下要求的比赛日程表 xff1a 每个选手必须要与其他n 1个选手各赛一次每个选手一天只能赛一次循环赛一共进行n 1天 日程表 1234567
  • Struts-标签使用

    1 form标签 表格标签 xff0c f可以用于提交数据 示例 xff1a lt 64 taglib prefix 61 34 s 34 uri 61 34 struts tags 34 gt lt html gt lt body gt
  • Struts-拦截器+通配符+客户端跳转

    1 通配符匹配 Product 表示所有以Product结尾的路径 xff0c 都会匹配在这个Action上 method 61 1 表示第一个通配符 如果访问的是addProduct就会调用add方法 如果访问的是listProduct就
  • Hibernate-基本操作

    1 数据插入 Hibernate可以使用for循环插入多个数据到数据库 示例 xff1a public class TestHibernate public static void main String args SessionFacto
  • 将视觉信息转换为mavros

    https github com thien94 vision to mavros blob master src vision to mavros cpp rosmsg show mavros msgs LandingTarget MAV
  • 分蛋糕+中间数

    问题描述 小明今天生日 xff0c 他有n块蛋糕要分给朋友们吃 xff0c 这n块蛋糕 xff08 编号为1到n xff09 的重量分别为a1 a2 an 小明想分给每个朋友至少重量为k的蛋糕 小明的朋友们已经排好队准备领蛋糕 xff0c
  • 基于键盘与扬声器的电子琴设计

    1 功能需求 开发一个基于键盘和主机扬声器 xff08 小喇叭 xff09 的简易电子琴工具 xff0c 同时它也可以自动的演奏指定的简谱文件 通过调用计算机系统的API接口 xff0c 导入kernel32 dll xff0c 调用相关的
  • 最大波动+数位之和

    问题描述 小明正在利用股票的波动程度来研究股票 小明拿到了一只股票每天收盘时的价格 xff0c 他想知道 xff0c 这只股票连续几天的最大波动值是多少 xff0c 即在这几天中某天收盘价格与前一天收盘价格之差的绝对值最大是多少 输入格式
  • 折点计数

    问题描述 给定n个整数表示一个商店连续n天的销售量 如果某天之前销售量在增长 xff0c 而后一天销售量减少 xff0c 则称这一天为折点 xff0c 反过来如果之前销售量减少而后一天销售量增长 xff0c 也称这一天为折点 其他的天都不是
  • 动态规划+贪心算法实现背包问题

    动规背包问题实现 xff1a import java util Scanner public class PackDynamic public static void main String args TODO Auto generated
  • 图像旋转

    问题描述 旋转是图像处理的基本操作 xff0c 在这个问题中 xff0c 你需要将一个图像逆时针旋转90度 计算机中的图像表示可以用一个矩阵来表示 xff0c 为了旋转一个图像 xff0c 只需要将对应的矩阵旋转即可 输入格式 输入的第一行

随机推荐