Tensorflow2.* Keras 视频5维输入 shape调整 tf.reshape()

使用 Colab 在 tf.keras 中训练模型,并使用 TensorFlow.js 在浏览器中运行 文 / Zaid Alyafeai 我们将创建一个简单的工具来识别图纸并输出当前图纸的名称。 此应用程序将直接在浏览器上运行,无需任何安装。我们会使用 Google Colab 来训练模型,并使用 TensorFlow.js 在浏览器上部署它。 【想获取 TensorFlow js. 视频教程,请前往 Bilibili,TensorFlow 渠道查看:https://www.bilibili.com/video/BV1D54y1p7PQ】 代码和演示 在 GitHub 上找到现场演示和代码. 阅读详情

视频输入问题

传统的图像网络的输入数据格式input_shape =(batch, h, w, c),但对于视频输入(batch, number_frames, h, w, c)。我们在keras建模的时候batch_size默认为input_shape[0],无法改变,同时keras.layers.Conv2d等层操作也是按照4维张量处理输入输入。

解决方案一:维度切片堆叠(不推荐)

在模型搭建的过程中,在number_frames维度进行堆叠,即在喂给keras.layers.Conv2d前将数据按number_frames维切片,输出后再进行堆叠。

    for ii in range (input_shape[0]):
        if ii==0:
            coarse_out=coarse_model(videoclip_cropped[:,ii])
        else:
            coarse_out=concatenate([coarse_out,coarse_model(videoclip_cropped[:,ii])], axis=1)

问题:当number_frames较大时,需要使用for循环建模时长异常的增加,在模型训练的时候发现重复堆叠操作会占用GPU,出现内存不足的错误提示,进而无法进行正常训练。

解决方案二:reshape(推荐)

先了解数据在内存中的存储形式,以及维度的定义:

存储数据时,内存并不支持这个维度层级概念,只能以平铺方式按序写入内存,因此这种层级关系需要人为管理,也就是说,每个张量的存储顺序需要人为跟踪。为了方便表达,我们把张量shape 中相对靠左侧的维度叫做大维度,shape 中相对靠右侧的维度叫做小维度,比如[2,4,4,3]的张量中,图片数量维度与通道数量相比,图片数量叫做大维度,通道数叫做小维度。

我们以一个(2,2,224,224,3)的五维输入数据为例:

import  tensorflow as tf
from    tensorflow import keras
from tensorflow.keras import Input, Model
from tensorflow.keras.applications.mobilenet_v2 import preprocess_input, decode_predictions

def prepocess(x):
    x = tf.io.read_file(x)
    x = tf.image.decode_jpeg(x, channels=3)
    x = tf.image.resize(x, [224,224])
    x =tf.expand_dims(x, 0) # 扩维
    x = preprocess_input(x)
    return x


img_cat = prepocess('cat.jpg')
img_cow = prepocess('cow.jpg')
img_dog = prepocess('dog.jpg')
img_pig = prepocess('pig.jpg')

batch1 = tf.expand_dims(tf.concat([img_cat, img_cow], axis=0), axis=0)
batch2 = tf.expand_dims(tf.concat([img_dog, img_pig], axis=0), axis=0)
imgs = tf.concat([batch1, batch2], axis=0)

在正式输入网络前使用tf.reshape(imgs, [-1, 224,224,3]),将数据前两维展平为(4,224,224,3)喂给网络

inputs = tf.reshape(imgs, [-1, 224,224,3])

model = keras.applications.MobileNetV2(weights='imagenet')

Predictions = model.predict(inputs)
print('Predicted:', decode_predictions(Predictions, top=1))

结果如下:

Predicted: [[(‘n02124075’, ‘Egyptian_cat’, 0.41475537)], [(‘n02403003’, ‘ox’, 0.6601001)], [(‘n02108089’, ‘boxer’, 0.9366902)], [(‘n02395406’, ‘hog’, 0.75869286)]]

保持了原有的数据顺序
存在的问题:
由于存在batchnumber_frames输入,GPU会配置对应的2D卷积网络,导致计算的时候等于同时进行了batchnumber_frames个batch,计算内存不足,batch量减少,解决的方案是先提取特征,存储在本地。

备注:
以上是我个人的尝试后觉得可行的方案,如果有其他方式比如,自定义layers输入格式的方式也希望各位给出示例,非常需要与各位大佬交流

TensorFlow工业级计算机视觉实战:数据治理、模型演进与边缘部署 计算机视觉(CV)不仅是算法问题,更是端到端工程系统问题。其核心在于如何将原始图像数据可靠地转化为可部署、可维护、可验证的推理服务。TensorFlow凭借tf.data的数据图编译能力、tf.keras.Model子类化的架构可演进性、tf.function+XLA的确定性高性能编译、SavedModel的契约式交付标准,以及TFLite对边缘设备的深度优化支持,构成了面向真实产线的全栈CV工程底座。尤其在数据质量不可控、模型需渐进升级、部署环境受限(如CPU/嵌入式/低温工况)等工业场景中,Tensor 阅读详情

相关推荐

VR视频Tile权重预测实战:基于TensorFlow 2.x的4层CNN模型,皮尔逊系数提升0.3

本文详细介绍了基于TensorFlow 2.x的4层CNN模型在VR视频Tile权重预测中的优化策略。通过创新的混合损失函数和动态学习率调度,模型在皮尔逊相关系数上实现了0.3的提升,显著提高了预测精度。文章还探讨了数据预处理、模型轻量化及部署优化等关键技术,为360度视频流媒体服务的带宽优化提供了实用解决方案。

weixin_30527323的博客 294

tf.keras.layers.Reshape 示例

import tensorflow as tf 除第一维外的维度改变 reshape = tf.keras.layers.Reshape( (5, 16), # 输出的维度,输出维度乘积 = 输入维度的乘积 ) print(reshape) <tensorflow.python.keras.layers.core.Reshape object at 0x0000020D524E59D0> input的维度必须是大于1维,因为第1维是样本个数 inputs = tf.rando

weixin_44493841的博客 2466

TensorFlow速查表:面向新手的深度学习工程实践指南

张量(Tensor)是深度学习的核心数据结构,其形状、设备放置与广播规则直接决定模型能否正确运行;TensorFlow作为主流深度学习框架,其Keras API封装虽简化开发,却隐藏了张量操作、数据管道、训练调试等关键断层。理解张量维度对齐、错误驱动的调试逻辑与SavedModel部署规范,是跨越从Hello World到生产级模型的关键。本文聚焦TensorFlow实战中高频报错场景与工程化解决方案,覆盖环境配置、数据加载、模型构建、训练监控及模型保存五大环节,特别强化张量操作与模型构建两大热词所对应的底

weixin_34195364的博客 395

如何利用K-Means将文件夹中图像进行分类?

点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达 K-Means聚类是最常用的无监督机器学习算法之一。顾名思义,它可用于创建数据集群,从本质上将它们隔...

小白学视觉 1万+

TensorFlow本质是可编程计算图编译器,不是AI工具箱

TensorFlow本质上是一个面向高性能数值计算的图编译器与运行时调度系统,其核心在于将Python描述的计算逻辑静态编译为跨平台优化指令(如XLA融合内核),再由底层Runtime调度至CPU/GPU/TPU执行。这一‘图优先’设计源于GPU显存管理刚性需求,通过Placer算法实现张量生命周期规划与内存复用,显著降低显存碎片和同步开销。相比直译式框架,它在工业级训练吞吐、边缘部署确定性及SavedModel跨语言兼容性上具备不可替代的技术价值。尤其在需要稳定低延迟、高资源利用率与生产可追溯性的场景——

weixin_30268071的博客 314

TensorFlow从零实现服饰图像分类模型

图像分类是计算机视觉最基础且工程落地最广泛的任务之一,其核心在于通过卷积神经网络(CNN)自动学习图像的层次化特征表示。原理上,模型利用卷积提取局部纹理与边缘,池化压缩空间维度,全连接层完成语义聚合;技术价值体现在可解释性强、训练门槛低、部署灵活,特别适合教学验证与原型开发。典型应用场景包括电商商品识别、智能相册标签、工业质检等。本文以Fashion-MNIST为数据集,基于TensorFlow构建轻量三层CNN,聚焦数据加载、归一化、通道扩展、模型结构设计及训练监控等关键实操细节,全程本地运行、代码开箱即

张沈鹏,在路上 ... 504

Intel Movidius Neural Computer Stick 2使用(PC-Based Ubuntu)

接着博主前面的系列博客继续讲,这篇来介绍上Intel的第二代加速神经棒的使用,主要还是参考官网来配置。前面很多博客也都访问过多家公司的官网,比较下来,Intel的真的很强大,满满的技术感。 Intel® Neural Compute Stick 2Learn AI programming at the edge with the newest generation of this tiny, fanless deep learning device.https://www.intel.com/conten

jiugeshao的专栏 4049

TensorFlow手写数字识别实战:全连接网络从零跑通指南

神经网络是深度学习的核心数学模型,通过多层非线性变换实现特征抽象与模式识别;其训练依赖于数据标准化、损失函数优化与梯度更新等基础机制。TensorFlow作为主流工业级框架,提供了高封装API与灵活底层控制的统一接口,显著降低工程落地门槛。在图像分类任务中,MNIST手写数字数据集因其结构规整、标注纯净,成为验证模型逻辑与调试流程的理想起点。本文聚焦TensorFlow 2.x环境下的全连接网络实现,覆盖Python环境配置、像素归一化、Dense层参数设计、sparse_categorical_cross

weixin_30727835的博客 440

Deep Learning---caffe模型参数量(weights)计算

Draw_convnet 这幅图是通过开源的工具draw_convnet(https://github.com/gwding/draw_convnet)生成的。在清楚整个前向计算网络中的每一个层的输入输出以及参数设置后可以自己手动画出计算图出来,对于参数量计算就很直观了。 feature map大小计算 输入:N0*C0*H0*W0 输出:N1*C1*H1*W1 输出的featur...

浩瀚之水的专栏 3430

基于YOLOv3与TensorFlow的铁路异物检测系统实战指南

目标检测是计算机视觉的核心技术之一,其原理是通过深度学习模型在图像或视频中定位并识别出特定目标。这项技术为自动化监控、智能安防等领域带来了巨大价值,尤其在需要实时预警的工业场景中应用广泛。铁路安全作为典型的应用场景,对异物侵入的实时检测有迫切需求。本文聚焦于使用经典的YOLOv3模型与TensorFlow框架,从零构建一个面向铁路场景的异物检测系统原型。文章深入探讨了模型选型、数据增强、训练调优等关键技术环节,并详细介绍了如何利用TensorRT等工具进行模型优化,以实现模型在边缘计算设备上的高效部署,为相

weixin_30654419的博客 412

车载以太网SOMEIP入门必看:从服务发现到事件订阅,一次搞懂三种核心通信模式(附报文实例)

本文深入解析车载以太网SOME/IP的三种核心通信模式:服务发现、方法调用和事件订阅,通过真实报文实例和仿真工具演示,帮助开发者快速掌握这一关键技术。文章特别强调服务发现机制的基础作用,并详细介绍了Request/Response与Fire&Forget两种方法调用模式的应用场景,为智能汽车网络通信开发提供实用指南。

weixin_30955617的博客 112

tensorflow 载入resnet报错记录

一.参数模型不匹配。 在载入resnet预训练模型的时候,出现了以下报错提醒,查了一下原因发现是由于自己构建的模型与载入的模型参数不一致导致的。   [[Node: save/Assign_265 = Assign[T=DT_FLOAT, _class=["loc:@resnet_v2_50/conv1/weights"], use_locking=true,validate_shape=...

ymznice的博客 698

FPGA时钟设计陷阱:为什么你的MRCC引脚总触发Place 30-675错误?

本文深入解析FPGA开发中常见的Place 30-675错误,揭示MRCC引脚与时钟资源分配的关键问题。通过对比MRCC与普通IO引脚特性,分析错误根源,并提供时钟约束优化、IP核重配置和手动布局三套解决方案,帮助工程师规避时钟设计陷阱,提升FPGA系统稳定性。

potato的博客 693

TensorFlow

TensorFlow 是一个,专门为机器学习任务而设计,让开发者能够轻松地构建从简单线性回归到复杂神经网络的各种模型。TensorFlow 是由 Google 开发的开源机器学习框架,用于构建和训练各种机器学习和深度学习模型。和,表示数据以张量的形式在计算图中流动。核心概念。

qq_32381773的博客 194

告别JTAG!用Artix-7和SPI Flash实现FPGA远程升级的保姆级教程

本文详细介绍了如何利用Artix-7 FPGA和SPI Flash实现FPGA远程升级(OTA)的完整方案。通过硬件连接、Vivado工程配置和STM32模拟更新等步骤,帮助开发者告别传统的JTAG烧录方式,实现高效、安全的远程固件更新,特别适用于嵌入式系统开发中的现场维护场景。

weixin_33964987的博客 364

【数字IC基础】DFT(Design For Test)可测性设计

【数字IC基础】DFT(Design For Test)可测性设计

努力,加油每一天鸭~ 3466

Keras for R:R语言深度学习实战指南

深度学习是现代AI工程的核心范式,其本质是通过多层非线性变换实现高维特征的自动表示学习。Keras作为高层神经网络API,以模块化、可复用和声明式语法显著降低建模门槛;而R语言凭借其在统计建模、数据清洗(tidyverse)与科研复现(Bioconductor)中的深厚生态,成为数据分析人员转向AI的关键入口。将Keras与R结合,不仅解决了传统R包(如nnet、caret)在复杂模型表达力与GPU加速上的局限,更实现了‘统计思维’与‘深度学习能力’的无缝衔接——例如直接使用data.frame输入、dpl

weixin_33713350的博客 520

基于ESP32的智能车载环境监测系统开发

随着智能汽车技术的飞速发展,车载系统的功能越来越多样化,除了基本的行驶控制和娱乐功能外,车载环境监测系统也成为了一项重要的功能。通过实时监测车内环境数据,例如温度、湿度、空气质量、气体浓度等,智能车载环境监测系统能够提供更为舒适和安全的驾驶体验,同时增强车辆的智能化程度,提升用户的整体体验。ESP32作为一种集成了Wi-Fi和蓝牙功能的高效能低功耗嵌入式开发平台,成为了设计车载环境监测系统的理想选择。它不仅具备丰富的接口和处理能力,还能够实现与云平台、手机应用等系统的远程数据传输和控制。

2201_76125393的博客 715

TensorFlow二值图像分类工业实践:数据管道、模型泛化与推理优化

二值图像分类是计算机视觉中最基础也最常落地的监督学习任务,其核心在于将输入图像映射为两个互斥类别。它依赖深度神经网络提取判别性特征,并通过损失函数驱动决策边界学习;技术价值体现在高精度、强鲁棒性与低延迟推理的统一,尤其在医疗影像筛查、工业缺陷检测等对可靠性要求严苛的场景中不可替代。典型应用涵盖X光片阴/阳性判断、PCB焊点OK/NG识别、活体检测(真脸vs照片)等。本文聚焦TensorFlow生态下的工程化实现,深入解析tf.data数据管道设计、预训练模型适配策略、Focal Loss定制、AUC导向评估

weixin_30700977的博客 659

华为OD新系统机试真题 - 配置操作失败数量统计

华为OD机试新系统 4月8号【配置操作失败数量统计】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【配置操作失败数量统计】。

qq_45776114的博客 1163

Python爬虫实战:高德地图POI信息爬取(餐馆/加油站等),附选址分析技巧

高德API配置AMAP_KEY = "你的高德API Key" # 替换成自己的Key# 爬取参数CITY = "成都" # 城市DISTRICTS = ["锦江区"] # 区域,可添加多个(比如["锦江区", "武侯区"])KEYWORDS_LIST = ["川菜馆", "加油站"] # 要爬取的POI类型TYPES = {"川菜馆": "050101", # 餐饮服务→中餐→川菜馆(高德POI分类编码)"加油站": "110100" # 交通设施→加油站。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 2472

非科班工程师的TensorFlow认证实战路径

TensorFlow开发者认证本质上是一场面向工程实践的深度学习应用能力考核,核心考察数据预处理、模型构建、调试优化与端到端交付能力。其底层逻辑并非数学推导,而是系统化的问题拆解与快速验证——这正契合具备嵌入式、后端或运维经验的工程师所擅长的‘定义问题边界’和‘日志驱动排查’思维。通过迁移已有工程直觉,聚焦图像分类、NLP与时间序列三大考纲任务,并采用最小可行知识策略与多源印证学习法,可高效跨越AI入门门槛。本文以真实备考战地笔记为蓝本,详解从环境配置、脏数据治理到五小时极限提交的全链路避坑方案。

weixin_33912453的博客 332

让 ABAP Screen Variant 安稳上车:SHD0 与 SHD0_MANDT 的 Transport 全攻略

摘要: SAP项目常需优化交易码界面,通过SHD0的Transaction Variant和Screen Variant可实现字段精简、默认值预设及权限控制,避免修改标准代码。但跨系统迁移时易出现变式丢失或版本兼容问题。核心概念包括: Screen Variant:针对单个屏幕的字段属性配置(跨Client); Transaction Variant:串联多屏幕变式(分跨Client和Client-specific); 版本差异:4.70/6.x后需区分SHD0(跨Client)与SHD0_MANDT(Cl

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 230

Tribuo:Java-first的TensorFlow-Spark互操作框架

在AI工程化落地中,模型训练(TensorFlow)与数据生产(Spark)长期存在语义割裂、特征不一致、跨语言调用低效等核心挑战。其本质是缺乏统一的特征抽象层与JVM原生推理能力。Tribuo作为LinkedIn开源的Java优先框架,通过‘特征即对象’元模型、SavedModel原生加载、零Python进程推理等设计,系统性解决TensorFlow与Spark之间的互操作性难题。它不替代任一生态,而是构建可移植、可调试、可观测的中间语义层,显著提升MLOps流水线稳定性与迭代效率,适用于推荐、风控、搜索

congdi7904的博客 451

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

基于最近邻与TensorFlow的可解释电影推荐系统

推荐系统本质上是将用户与物品映射到共享语义空间后进行相似性检索的技术范式;其核心原理在于构建稠密向量表征,并通过余弦相似度等可微度量实现高效匹配;技术价值体现在低延迟、高可解释性与强冷启动鲁棒性,显著优于传统协同过滤与黑盒深度模型;典型应用场景覆盖影视平台首屏召回、个人影单智能拓展及无注册轻量推荐服务;本文聚焦Nearest Neighbours在真实工业场景中的工程化落地,结合TensorFlow作为高性能向量计算与服务封装引擎,详解从特征融合、AutoEncoder降维到FAISS索引加速的完整流水线。

cuanjingyue4687的博客 339

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

用Python和TensorFlow复现Gatys经典论文:手把手教你实现自己的艺术风格迁移

艺术风格迁移技术自2015年Gatys等人提出以来,已经成为计算机视觉领域最具创意和应用价值的技术之一。这项技术能够将一幅艺术作品的风格转移到另一幅照片上,创造出令人惊叹的视觉效果。对于硬件,虽然可以在CPU上运行,但强烈建议使用支持CUDA的NVIDIA GPU,这将显著加快训练速度。通过调整参数和尝试不同的风格内容组合,你可以创造出无限多样的视觉效果。注意:原始论文使用平均池化而非最大池化,这会产生更平滑的风格迁移效果。艺术风格迁移的核心思想是将图像的内容和风格分离,然后重新组合。

weixin_30873847的博客 389
上一篇: Tensorflow2.1.0或2.2.0 Pytorch1.x GPU版本安装 Windows10环境配置 ImportError: DLL load failed解决方案
下一篇: python tensorflow 多进程或多线程批量读取图像 数据读取加速 multiprocessing.pool concurrent.futures
老光头_ME2CS
博客等级 码龄8年 396粉丝 97原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值