tensorflow版本:1.13.1

1、在padded_batch中,若函数

出现错误:TypeError: If shallow structure is a sequence, input must also be a sequence. Input has type: <class 'int'>.

案例如下,在以下案例中, 出现上述错误的原因是:在paddd_batch中的参数:padding_values, 如果不设置此参数,则没有问题,即此行代码更改为:

dataset = dataset.padded_batch(batch_size, padded_shapes=([None], [None]))

模型的padding_values为0, 对应着padded_shape中两个tensor的padding_values都为0,此时若是出现另外一种情况:某种情况下想要填充的值不为0,而是为-1,那么可以设置成如下代码即可:

dataset = dataset.padded_batch(batch_size, padded_shapes=([1501], [None]), padding_values=(tf.constant(-1, tf.int64), tf.constant(0, tf.int64)))

每个样本example返回两个tensor, 每个tensor的shape不确定(从padded_shape可以看出来是两个tensor,并且形状是变长,不确定的),那么padding_values也需要保持每个tensor的padding_values是两个(example的返回两个tensor对应一个padding_values中的tensor)

2、TypeError: Batching of padded sparse tensors is not currently supported

若是出现上述的错误,那么是由于在解析单个example时,定义的变长tensor特征,即VarLenFeature, 那么只需要针对VarLenFeature的tensor转成dense tensor 即可:

example["text_ids"] = tf.sparse_tensor_to_dense(example["text_ids"])
example["label_ids"] = tf.sparse_tensor_to_dense(example["label_ids"])
    def get_train_tfrecord(tfrecord_path=None, num_epochs=1, batch_size=16, shuffle=True):dataset = tf.data.TFRecordDataset(tfrecord_path)# feature_dict = {"text_ids": tf.FixedLenFeature([self.max_len], dtype=tf.int64), "label_ids": tf.FixedLenFeature([self.max_len], dtype=tf.int64)}def parse_one_example(example):feature_dict = {"text_ids": tf.VarLenFeature(tf.int64),"label_ids": tf.VarLenFeature(tf.int64)}example = tf.parse_single_example(example, feature_dict)example["text_ids"] = tf.sparse_tensor_to_dense(example["text_ids"])example["label_ids"] = tf.sparse_tensor_to_dense(example["label_ids"])# text_ids = tf.to_int32(example["text_ids"])# label_ids = tf.to_int32(example["label_ids"])text_ids = example["text_ids"]print("text_ids:", text_ids)label_ids = example["label_ids"]return text_ids, label_idsdataset = dataset.map(parse_one_example)if shuffle:dataset = dataset.shuffle(buffer_size=1000, reshuffle_each_iteration=True)# dataset = dataset.batch(batch_size=batch_size)# dataset = dataset.padded_batch(batch_size, padded_shapes=([None], [None]))dataset = dataset.padded_batch(batch_size, padded_shapes=([None], [None]), padding_values=(tf.constant(-1, tf.int64), tf.constant(0, tf.int64)))dataset = dataset.repeat(num_epochs)iterator = dataset.make_one_shot_iterator()batch_data = iterator.get_next()return batch_data  # batch_text_ids = batch_data[0], batch_label_ids = batch_data[1]

tensorflow padded_batch的注意事项相关推荐

  1. tensorflow 的输入层和输出层维度注意事项

    模型输入层和输出层的维度一定要对住,否则会报错. 模型中间层只用给定输出维度 import numpy as np import tensorflow as tf print(tf.__version ...

  2. 使用PaddleFluid和TensorFlow训练序列标注模型

    专栏介绍:Paddle Fluid 是用来让用户像 PyTorch 和 Tensorflow Eager Execution 一样执行程序.在这些系统中,不再有模型这个概念,应用也不再包含一个用于描述 ...

  3. 使用TensorFlow进行机器学习即服务

    by Kirill Dubovikov 通过基里尔·杜博维科夫(Kirill Dubovikov) 使用TensorFlow进行机器学习即服务 (Machine Learning as a Servi ...

  4. 赠书 | JavaScript 武力值飙升!用 TensorFlow.js 轻松在浏览器里搞深度学习

    近年来,AI 与人类的生活越来越紧密,慢慢变得无处不在.那么提到 AI ,我们会想到什么?小编最先想到的是机器人.早在小学作文中,我就写到 2021 年到处都是机器人,机器人汽车到处飞.结果 2021 ...

  5. Tensorflow |(1)初识Tensorflow

    Tensorflow |(1)初识Tensorflow 关于 TensorFlow TensorFlow是一个采用数据流图(data flow graphs),用于数值计算的开源软件库.节点(Node ...

  6. JavaScript武力值飙升!用TensorFlow.js轻松实现在浏览器里搞深度学习......

    近年来,AI 与人类的生活越来越紧密,慢慢变得无处不在.那么提到 AI ,我们会想到什么?小编最先想到的是机器人.早在小学作文中,我就写到 2021 年到处都是机器人,机器人汽车到处飞.结果 2021 ...

  7. TensorFlow高效读取数据的方法

    概述 最新上传的mcnn中有完整的数据读写示例,可以参考. 关于Tensorflow读取数据,官网给出了三种方法: 供给数据(Feeding): 在TensorFlow程序运行的每一步, 让Pytho ...

  8. 教你用TensorFlow实现神经网络(附代码)

    来源:云栖社区 作者:Pavel Surmenok 本文长度为2600字,建议阅读5分钟 本文帮助你理解神经网络的应用,并使用TensorFlow解决现实生活中的问题. 如果你一直关注数据科学/机器学 ...

  9. 两个月不到,我是如何从Python新手成长为谷歌认证TensorFlow开发者的?

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 来自:机器之心 因为新冠疫情宅家无事可做,印度尼西亚一位应用数学学生 Grady Ma ...

  10. 跨年之际,中文版畅销书《TensorFlow深度学习实战大全》分享,直接送!

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 跨年之际,给大家一份福利,赠书抽奖,一共4本!感兴趣的同学可以参与一下,奖品是新书&l ...

最新文章

  1. 使用 LSTM 进行多变量时间序列预测的保姆级教程
  2. js array push 添加内容
  3. VC中使用Unicode的一些列问题
  4. SAP打补丁时需要注意的地方
  5. python的数字比较好_说说 Python3 中的数字处理
  6. Caching和Purgeable Memory (译)
  7. 让你的Tex代码更加美观就这么简单----Tex代码的自动格式化
  8. C#调用API弹出打印机属性对话框
  9. 两表格合并_六个高效办公Excel小技巧,让你提前下班两小时!
  10. ZZULIOJ21级新生周赛(1)——命题人:朱会东老师--2824: 探姬同学@出题人
  11. 双目摄像头和单目摄像头_挑战激光雷达,MAXIEYE要重新定义单目摄像头?
  12. 用python简单查找大文件
  13. Cloudflare配置网站免费CDN加速使用教程
  14. 20165333 2017-2018-2《Java程序设计》课程总结
  15. 集合类接口和类层次关系图
  16. vue请求axio的使用详解
  17. 腾讯微云 for Mac v
  18. LayIM 3.9.1与ASP.NET SignalR实现Web聊天室快速入门(三)之LayIM初始化数据
  19. DTC品牌如何冷启动?
  20. 2018-12-24:企业微信分享功能

热门文章

  1. C语言及程序设计初级—分离整数与小数部分
  2. 瑞芯微rv1126/1109软硬件解压缩对比---附:关于内存对齐的那些事
  3. 误码率与信噪比的关系matlab,误码率BER与信噪比SNR的关系解析
  4. golang的json的时间格式化解决方案
  5. 暴力解题之公务员行测资料分析技巧
  6. 【119天】尚学堂高琪Java300集视频精华笔记(24-30)
  7. WINDOWS 7 X64专业版SP1后续补丁包20150901(微软官方下载地址列表)
  8. 动态规划经典例题——最长公共子序列和最长公共子串(python)
  9. 万字文肝Python基础知识
  10. C/C++游戏项目教程:《雷霆战机》