TFRecordReader

简介:

def read_and_decode(filename):
    #根据文件名生成一个队列
    filename_queue = tf.train.string_input_producer([filename])

    reader = tf.TFRecordReader()
    _, serialized_example = reader.read(filename_queue)   #返回文件名和文件
    features = tf.parse_single_example(serialized_example,
                                       features={
                                           'label': tf.FixedLenFeature([], tf.int64),
                                           'img_raw' : tf.FixedLenFeature([], tf.string),
                                       })

    img = tf.decode_raw(features['img_raw'], tf.uint8)
    img = tf.reshape(img, [224, 224, 3])
 #    img = tf.reshape(img, [39, 39, 3])
    img = tf.cast(img, tf.float32) * (1. / 255) - 0.5
    label = tf.cast(features['label'], tf.int32)
    print img,label
    return img, label

 

这里我碰到了一个非常奇怪的问题,困扰了我大半天。百思不得其解。

问题的报错是:读入没有任何问题,在把读入的数据输入tensorflow中训练模型的时候,前50次都是好的,

然后就开始报错:

img = tf.reshape(img, [224, 224, 3])

输入的tensor是200704,而期望的tensor是150528

200704=224*224*4,

150528=224*224*3.是不是通道数不对?我用opencv读入后打印出来的通道数都是3。

真是奇怪的问题。

后来把原始图片中的png和jpeg格式的图片删除了。重新生成TFRecord。没有报错了

估计还是图片的底层属性问题


转自:https://www.cnblogs.com/whu-zeng/p/6293589.html

目录
相关文章
|
7月前
|
存储 JSON 开发框架
给开源大模型带来Function Calling、 Respond With Class
OpenAI 在他的多个版本的模型里提供了一个非常有用的功能叫 Function Calling,就是你传递一些方法的信息给到大模型,大模型根据用户的提问选择合适的方法,然后输出给你,你再来执行。
一篇文章让你搞懂浮点数在内存中的存储机制[保姆级教学]
一篇文章让你搞懂浮点数在内存中的存储机制[保姆级教学]
|
7月前
|
机器学习/深度学习 API TensorFlow
TensorFlow 2.0 的新增功能:第一、二部分
TensorFlow 2.0 的新增功能:第一、二部分
177 0
|
7月前
|
Docker 容器
Dockerfile 与 Docker Compose区别
用途: Dockerfile 用于定义单个容器的构建过程。它包含了一系列指令,每个指令都代表容器构建过程中的一个步骤。这些步骤包括从基础镜像中构建、安装依赖、拷贝文件、设置环境变量等操作。 语法: Dockerfile 是一个文本文件,其中包含一系列 Docker 指令。每个指令都会生成一个新的镜像层。常见的指令包括 FROM(指定基础镜像)、RUN(执行命令)、COPY(拷贝文件)、EXPOSE(暴露端口)、CMD(设置容器启动时执行的命令)等。 灵活性: Dockerfile 提供了灵活的方式来定义容器构建过程,允许用户精确地控制容器的组件和配置。 使用场景: Dockerfile 适用于
152 1
|
DataWorks 关系型数据库 MySQL
在尝试连接到MySQL数据库时遇到了连接超时的问题
在尝试连接到MySQL数据库时遇到了连接超时的问题
990 4
|
7月前
|
监控 数据可视化 搜索推荐
四度入选Gartner后Quick BI又有大动作 | 着重交互分析与监控告警升级,持续优化分析链路
四度入选Gartner后Quick BI又有大动作 | 着重交互分析与监控告警升级,持续优化分析链路
375 0
|
7月前
|
JavaScript 开发者
VUE指令: 请解释v-pre指令的作用。
VUE指令: 请解释v-pre指令的作用。
75 1
|
存储 Linux 开发工具
Git-LFS:大文件也有了版本管理
Git-LFS:大文件也有了版本管理
201 0
|
存储 人工智能 达摩院
贾扬清演讲实录:人工智能,当梦想走进现实丨2022云栖阿里灵杰人工智能论坛
贾扬清在阿里灵杰人工智能论坛上分享从技术,工程,产品的角度,讲述从实验室到产业的这些事情。
贾扬清演讲实录:人工智能,当梦想走进现实丨2022云栖阿里灵杰人工智能论坛
|
程序员 开发工具 git