tf1.x和tf2.x查看TFRecord数据的方法

这篇博客介绍了Tensorflow 1.x和2.x中读取tfrecord文件的不同方法。在Tensorflow 1.x中,使用`tf.python_io.tf_record_iterator`并结合`tf.train.Example.FromString`解析数据;而在Tensorflow 2.x中,通过`tf.data.TFRecordDataset`读取数据,并利用`Example`类的`ParseFromString`方法和`MessageToJson`将protobuf消息转换为JSON。
部署运行你感兴趣的模型镜像

Tensorflow 1.x和Tensorflow 2.x读取tfrecord方法略有不同,下面分别记录两段代码:

Tensorflow 1.x:

for example in tf.python_io.tf_record_iterator(path):
    # print(tf.train.Example.FromString(example))
    jsonMessage = MessageToJson(tf.train.Example.FromString(example))

Tensorflow 2.x:

import tensorflow as tf
import json
from google.protobuf.json_format import MessageToJson

dataset = tf.data.TFRecordDataset("mydata.tfrecord")
for d in dataset:
    ex = tf.train.Example()
    ex.ParseFromString(d.numpy())
    m = json.loads(MessageToJson(ex))
    print(m['features']['feature'].keys())

您可能感兴趣的与本文相关的镜像

TensorFlow-v2.15

TensorFlow-v2.15

TensorFlow

TensorFlow 是由Google Brain 团队开发的开源机器学习框架,广泛应用于深度学习研究和生产环境。 它提供了一个灵活的平台,用于构建和训练各种机器学习模型

D:\Python\python.exe E:\fcdae-neural-signal-denoising\fcdae_network\fc_dae_model_train_and_test.py 2025-11-14 16:46:55.697271: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library cudart64_101.dll 2025-11-14 16:46:56.464209: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library nvcuda.dll 2025-11-14 16:46:56.479926: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1716] Found device 0 with properties: pciBusID: 0000:01:00.0 name: NVIDIA GeForce RTX 3060 computeCapability: 8.6 coreClock: 1.777GHz coreCount: 28 deviceMemorySize: 12.00GiB deviceMemoryBandwidth: 335.32GiB/s 2025-11-14 16:46:56.480072: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library cudart64_101.dll 2025-11-14 16:46:56.485816: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library cublas64_10.dll 2025-11-14 16:46:56.487589: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library cufft64_10.dll 2025-11-14 16:46:56.488374: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library curand64_10.dll 2025-11-14 16:46:56.491317: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library cusolver64_10.dll 2025-11-14 16:46:56.493004: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library cusparse64_10.dll 2025-11-14 16:46:56.497893: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library cudnn64_7.dll 2025-11-14 16:46:56.497981: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1858] Adding visible gpu devices: 0 2025-11-14 16:46:56.498514: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN)to use the following CPU instructions in performance-critical operations: AVX2 To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. 2025-11-14 16:46:56.503125: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x19df1fdffa0 initialized for platform Host (this does not guarantee that XLA will be used). Devices: 2025-11-14 16:46:56.503199: I tensorflow/compiler/xla/service/service.cc:176] StreamExecutor device (0): Host, Default Version 2025-11-14 16:46:56.503319: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1716] Found device 0 with properties: pciBusID: 0000:01:00.0 name: NVIDIA GeForce RTX 3060 computeCapability: 8.6 coreClock: 1.777GHz coreCount: 28 deviceMemorySize: 12.00GiB deviceMemoryBandwidth: 335.32GiB/s 2025-11-14 16:46:56.503427: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library cudart64_101.dll 2025-11-14 16:46:56.503483: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library cublas64_10.dll 2025-11-14 16:46:56.503537: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library cufft64_10.dll 2025-11-14 16:46:56.503591: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library curand64_10.dll 2025-11-14 16:46:56.503663: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library cusolver64_10.dll 2025-11-14 16:46:56.503717: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library cusparse64_10.dll 2025-11-14 16:46:56.503772: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library cudnn64_7.dll 2025-11-14 16:46:56.503840: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1858] Adding visible gpu devices: 0 ======= Iteration 1 ======= Train on: ../data/TFRecord/e_mix33_n7_iter5.tfrecord ../data/TFRecord/e_mix33_n7_iter4.tfrecord ../data/TFRecord/e_mix33_n7_iter1.tfrecord ../data/TFRecord/e_mix33_n7_iter2.tfrecord ../data/TFRecord/e_mix33_n7_iter7.tfrecord ../data/TFRecord/e_mix33_n7_iter9.tfrecord ../data/TFRecord/e_mix33_n7_iter8.tfrecord ../data/TFRecord/e_mix33_n7_iter3.tfrecord ../data/TFRecord/e_mix33_n7_iter6.tfrecord Test on: ['../data/TFRecord/e_mix33_n7_iter0.tfrecord'] 2025-11-14 16:48:34.836571: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1257] Device interconnect StreamExecutor with strength 1 edge matrix: 2025-11-14 16:48:34.836640: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1263] 0 2025-11-14 16:48:34.836674: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1276] 0: N 2025-11-14 16:48:34.836781: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1402] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 10466 MB memory) -> physical GPU (device: 0, name: NVIDIA GeForce RTX 3060, pci bus id: 0000:01:00.0, compute capability: 8.6) 2025-11-14 16:48:34.838074: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x19e2a08ed60 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices: 2025-11-14 16:48:34.838154: I tensorflow/compiler/xla/service/service.cc:176] StreamExecutor device (0): NVIDIA GeForce RTX 3060, Compute Capability 8.6 2025-11-14 16:48:35.347495: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library cudnn64_7.dll 2025-11-14 16:50:21.001352: W tensorflow/stream_executor/gpu/redzone_allocator.cc:314] Internal: Invoking GPU asm compilation is supported on Cuda non-Windows platforms only Relying on driver to perform ptx compilation. Modify $PATH to customize ptxas location. This message will be only logged once. 2025-11-14 16:50:21.006869: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library cublas64_10.dll Channel 0 SNR after: nan SNR improvement: nan dB | Before: 1.19 dB | RMSE: nan Channel 1 SNR after: nan SNR improvement: nan dB | Before: 1.15 dB | RMSE: nan Channel 2 SNR after: nan SNR improvement: nan dB | Before: 3.71 dB | RMSE: nan Channel 3 SNR after: nan SNR improvement: nan dB | Before: -0.36 dB | RMSE: nan ======= Iteration 2 ======= Train on: ../data/TFRecord/e_mix33_n7_iter0.tfrecord ../data/TFRecord/e_mix33_n7_iter5.tfrecord ../data/TFRecord/e_mix33_n7_iter4.tfrecord ../data/TFRecord/e_mix33_n7_iter2.tfrecord ../data/TFRecord/e_mix33_n7_iter7.tfrecord ../data/TFRecord/e_mix33_n7_iter9.tfrecord ../data/TFRecord/e_mix33_n7_iter8.tfrecord ../data/TFRecord/e_mix33_n7_iter3.tfrecord ../data/TFRecord/e_mix33_n7_iter6.tfrecord Test on: ['../data/TFRecord/e_mix33_n7_iter1.tfrecord'] Channel 0 SNR after: nan SNR improvement: nan dB | Before: 0.21 dB | RMSE: nan Channel 1 SNR after: nan SNR improvement: nan dB | Before: 0.38 dB | RMSE: nan Channel 2 SNR after: nan SNR improvement: nan dB | Before: 0.69 dB | RMSE: nan Channel 3 SNR after: nan SNR improvement: nan dB | Before: -0.84 dB | RMSE: nan ======= Iteration 3 ======= Train on: ../data/TFRecord/e_mix33_n7_iter0.tfrecord ../data/TFRecord/e_mix33_n7_iter5.tfrecord ../data/TFRecord/e_mix33_n7_iter4.tfrecord ../data/TFRecord/e_mix33_n7_iter1.tfrecord ../data/TFRecord/e_mix33_n7_iter7.tfrecord ../data/TFRecord/e_mix33_n7_iter9.tfrecord ../data/TFRecord/e_mix33_n7_iter8.tfrecord ../data/TFRecord/e_mix33_n7_iter3.tfrecord ../data/TFRecord/e_mix33_n7_iter6.tfrecord Test on: ['../data/TFRecord/e_mix33_n7_iter2.tfrecord'] Channel 0 SNR after: nan SNR improvement: nan dB | Before: -1.01 dB | RMSE: nan Channel 1 SNR after: nan SNR improvement: nan dB | Before: 1.50 dB | RMSE: nan Channel 2 SNR after: nan SNR improvement: nan dB | Before: 4.30 dB | RMSE: nan Channel 3 SNR after: nan SNR improvement: nan dB | Before: 3.25 dB | RMSE: nan ======= Iteration 4 ======= Train on: ../data/TFRecord/e_mix33_n7_iter0.tfrecord ../data/TFRecord/e_mix33_n7_iter5.tfrecord ../data/TFRecord/e_mix33_n7_iter4.tfrecord ../data/TFRecord/e_mix33_n7_iter1.tfrecord ../data/TFRecord/e_mix33_n7_iter2.tfrecord ../data/TFRecord/e_mix33_n7_iter7.tfrecord ../data/TFRecord/e_mix33_n7_iter9.tfrecord ../data/TFRecord/e_mix33_n7_iter8.tfrecord ../data/TFRecord/e_mix33_n7_iter6.tfrecord Test on: ['../data/TFRecord/e_mix33_n7_iter3.tfrecord'] Channel 0 SNR after: nan SNR improvement: nan dB | Before: 0.49 dB | RMSE: nan Channel 1 SNR after: nan SNR improvement: nan dB | Before: 0.81 dB | RMSE: nan Channel 2 SNR after: nan SNR improvement: nan dB | Before: 3.90 dB | RMSE: nan Channel 3 SNR after: nan SNR improvement: nan dB | Before: -2.15 dB | RMSE: nan ======= Iteration 5 ======= Train on: ../data/TFRecord/e_mix33_n7_iter0.tfrecord ../data/TFRecord/e_mix33_n7_iter5.tfrecord ../data/TFRecord/e_mix33_n7_iter1.tfrecord ../data/TFRecord/e_mix33_n7_iter2.tfrecord ../data/TFRecord/e_mix33_n7_iter7.tfrecord ../data/TFRecord/e_mix33_n7_iter9.tfrecord ../data/TFRecord/e_mix33_n7_iter8.tfrecord ../data/TFRecord/e_mix33_n7_iter3.tfrecord ../data/TFRecord/e_mix33_n7_iter6.tfrecord Test on: ['../data/TFRecord/e_mix33_n7_iter4.tfrecord'] Channel 0 SNR after: nan SNR improvement: nan dB | Before: 1.16 dB | RMSE: nan Channel 1 SNR after: nan SNR improvement: nan dB | Before: -0.10 dB | RMSE: nan Channel 2 SNR after: nan SNR improvement: nan dB | Before: 1.06 dB | RMSE: nan Channel 3 SNR after: nan SNR improvement: nan dB | Before: -0.54 dB | RMSE: nan ======= Iteration 6 ======= Train on: ../data/TFRecord/e_mix33_n7_iter0.tfrecord ../data/TFRecord/e_mix33_n7_iter4.tfrecord ../data/TFRecord/e_mix33_n7_iter1.tfrecord ../data/TFRecord/e_mix33_n7_iter2.tfrecord ../data/TFRecord/e_mix33_n7_iter7.tfrecord ../data/TFRecord/e_mix33_n7_iter9.tfrecord ../data/TFRecord/e_mix33_n7_iter8.tfrecord ../data/TFRecord/e_mix33_n7_iter3.tfrecord ../data/TFRecord/e_mix33_n7_iter6.tfrecord Test on: ['../data/TFRecord/e_mix33_n7_iter5.tfrecord'] Channel 0 SNR after: nan SNR improvement: nan dB | Before: 0.81 dB | RMSE: nan Channel 1 SNR after: nan SNR improvement: nan dB | Before: 2.43 dB | RMSE: nan Channel 2 SNR after: nan SNR improvement: nan dB | Before: -0.68 dB | RMSE: nan Channel 3 SNR after: nan SNR improvement: nan dB | Before: -2.73 dB | RMSE: nan ======= Iteration 7 ======= Train on: ../data/TFRecord/e_mix33_n7_iter0.tfrecord ../data/TFRecord/e_mix33_n7_iter5.tfrecord ../data/TFRecord/e_mix33_n7_iter4.tfrecord ../data/TFRecord/e_mix33_n7_iter1.tfrecord ../data/TFRecord/e_mix33_n7_iter2.tfrecord ../data/TFRecord/e_mix33_n7_iter7.tfrecord ../data/TFRecord/e_mix33_n7_iter9.tfrecord ../data/TFRecord/e_mix33_n7_iter8.tfrecord ../data/TFRecord/e_mix33_n7_iter3.tfrecord Test on: ['../data/TFRecord/e_mix33_n7_iter6.tfrecord'] Channel 0 SNR after: nan SNR improvement: nan dB | Before: 2.78 dB | RMSE: nan Channel 1 SNR after: nan SNR improvement: nan dB | Before: 5.57 dB | RMSE: nan Channel 2 SNR after: nan SNR improvement: nan dB | Before: 5.39 dB | RMSE: nan Channel 3 SNR after: nan SNR improvement: nan dB | Before: 2.99 dB | RMSE: nan ======= Iteration 8 ======= Train on: ../data/TFRecord/e_mix33_n7_iter0.tfrecord ../data/TFRecord/e_mix33_n7_iter5.tfrecord ../data/TFRecord/e_mix33_n7_iter4.tfrecord ../data/TFRecord/e_mix33_n7_iter1.tfrecord ../data/TFRecord/e_mix33_n7_iter2.tfrecord ../data/TFRecord/e_mix33_n7_iter9.tfrecord ../data/TFRecord/e_mix33_n7_iter8.tfrecord ../data/TFRecord/e_mix33_n7_iter3.tfrecord ../data/TFRecord/e_mix33_n7_iter6.tfrecord Test on: ['../data/TFRecord/e_mix33_n7_iter7.tfrecord'] 这是我代码的训练结果。我用cpu就没碰到过nan值,都是2025-11-11 16:32:39.267799: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN)to use the following CPU instructions in performance-critical operations: AVX2 To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. 2025-11-11 16:32:39.272556: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x20d9e0921d0 initialized for platform Host (this does not guarantee that XLA will be used). Devices: 2025-11-11 16:32:39.272635: I tensorflow/compiler/xla/service/service.cc:176] StreamExecutor device (0): Host, Default Version 2025-11-11 16:32:39.272717: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1257] Device interconnect StreamExecutor with strength 1 edge matrix: 2025-11-11 16:32:39.272767: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1263] Channel 0 SNR after: 8.35 SNR improvement: 10.55 dB | Before: -2.20 dB | RMSE: 0.028513879 Channel 1 SNR after: 8.05 SNR improvement: 10.49 dB | Before: -2.44 dB | RMSE: 0.029492483 Channel 2 SNR after: 8.17 SNR improvement: 5.83 dB | Before: 2.34 dB | RMSE: 0.029101308 Channel 3 SNR after: 8.30 SNR improvement: 10.17 dB | Before: -1.86 dB | RMSE: 0.028648984 ======= Iteration 2 ======= Train on: ../data/TFRecord/e_mix33_n9_iter6.tfrecord ../data/TFRecord/e_mix33_n9_iter2.tfrecord ../data/TFRecord/e_mix33_n9_iter3.tfrecord ../data/TFRecord/e_mix33_n9_iter8.tfrecord ../data/TFRecord/e_mix33_n9_iter9.tfrecord ../data/TFRecord/e_mix33_n9_iter0.tfrecord ../data/TFRecord/e_mix33_n9_iter7.tfrecord ../data/TFRecord/e_mix33_n9_iter5.tfrecord ../data/TFRecord/e_mix33_n9_iter4.tfrecord Test on: ['../data/TFRecord/e_mix33_n9_iter1.tfrecord'] Channel 0 SNR after: 6.53 SNR improvement: 8.69 dB | Before: -2.16 dB | RMSE: 0.03473803 Channel 1 SNR after: 6.49 SNR improvement: 8.61 dB | Before: -2.13 dB | RMSE: 0.034917753 Channel 2 SNR after: 6.49 SNR improvement: 8.11 dB | Before: -1.62 dB | RMSE: 0.034903593 Channel 3 SNR after: 6.40 SNR improvement: 9.10 dB | Before: -2.70 dB | RMSE: 0.03525923 ======= Iteration 3 =======
最新发布
11-15
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值