批处理调用模型的时候,如果逐像素给tensor对象数据部分赋值的话,效率是很低的,尤其是对于一些图片数据,所以数据块直接拷贝可以大大提高效率,

先取得数据指针:

output_tensor->flat<float>().data();

再直接对象拷贝好了
std::copy(p, p + arrSize, imgTensorFlat + t * arrSize);
void CVMat_to_Tensor_Batch_BLOB(std::vector<Mat> imgs, Tensor* output_tensor, int input_rows, int input_cols)
{
float *imgTensorFlat = output_tensor->flat<float>().data();
int arrSize = input_rows * input_cols * 3;
auto output = output_tensor->shaped<float, 4>({ (long long)imgs.size(), input_rows, input_cols, 3 });
for (int t = 0; t < imgs.size(); t++)
{
Tensor tensorT(DT_FLOAT, TensorShape({ 1,input_rows,input_cols,3 }));
int imgRow = imgs[t].rows;
int imgCol = imgs[t].cols; float fScale = std::min(input_cols*1.0/ imgCol, input_rows*1.0/ imgRow); int newRow = imgRow * fScale;
int newCol = imgCol * fScale; Mat oriImg;
resize(imgs[t], oriImg, cv::Size(newCol, newRow), cv::INTER_LINEAR);
cv::Mat tmp;
int dw = (input_cols - newCol) / 2;
int dh = (input_rows - newRow) / 2;
copyMakeBorder(oriImg, tmp, dh, input_rows - newRow-dh,dw, input_cols - newCol-dw, BORDER_CONSTANT, Scalar(128.0, 128.0, 128.0)); tmp.convertTo(tmp, CV_32FC3);
tmp = tmp/255.0;
float* p = tmp.ptr<float>();
std::copy(p, p + arrSize, imgTensorFlat + t * arrSize);
} return;
}

tensorflow 模型批处理参数tensor快速赋值参考的更多相关文章

  1. 一份快速完整的Tensorflow模型保存和恢复教程(译)(转载)

    该文章转自https://blog.csdn.net/sinat_34474705/article/details/78995196 我在进行图像识别使用ckpt文件预测的时候,这个文章给我提供了极大 ...

  2. Tensorflow模型的格式

    转载:https://cloud.tencent.com/developer/article/1009979 tensorflow模型的格式通常支持多种,主要有CheckPoint(*.ckpt).G ...

  3. 构建分布式Tensorflow模型系列:CVR预估之ESMM

    https://zhuanlan.zhihu.com/p/42214716 本文是“基于Tensorflow高阶API构建大规模分布式深度学习模型系列”的第五篇,旨在通过一个完整的案例巩固一下前面几篇 ...

  4. 将TensorFlow模型变为pb——官方本身提供API,直接调用即可

    TensorFlow: How to freeze a model and serve it with a python API 参考:https://blog.metaflow.fr/tensorf ...

  5. Tensorflow模型加载与保存、Tensorboard简单使用

    先上代码: from __future__ import absolute_import from __future__ import division from __future__ import ...

  6. [翻译] Tensorflow模型的保存与恢复

    翻译自:http://cv-tricks.com/tensorflow-tutorial/save-restore-tensorflow-models-quick-complete-tutorial/ ...

  7. 移动端目标识别(1)——使用TensorFlow Lite将tensorflow模型部署到移动端(ssd)之TensorFlow Lite简介

    平时工作就是做深度学习,但是深度学习没有落地就是比较虚,目前在移动端或嵌入式端应用的比较实际,也了解到目前主要有 caffe2,腾讯ncnn,tensorflow,因为工作用tensorflow比较多 ...

  8. 移动端目标识别(2)——使用TENSORFLOW LITE将TENSORFLOW模型部署到移动端(SSD)之TF Lite Developer Guide

    TF Lite开发人员指南 目录: 1 选择一个模型 使用一个预训练模型 使用自己的数据集重新训练inception-V3,MovileNet 训练自己的模型 2 转换模型格式 转换tf.GraphD ...

  9. tensorflow 模型保存与加载 和TensorFlow serving + grpc + docker项目部署

    TensorFlow 模型保存与加载 TensorFlow中总共有两种保存和加载模型的方法.第一种是利用 tf.train.Saver() 来保存,第二种就是利用 SavedModel 来保存模型,接 ...

  10. TensorFlow模型保存和加载方法

    TensorFlow模型保存和加载方法 模型保存 import tensorflow as tf w1 = tf.Variable(tf.constant(2.0, shape=[1]), name= ...

随机推荐

  1. python 安装redis,rediscluster

    首先看下pip版本,过低版本会出问题 [root@test rpm]# pip -V pip 20.3.4 from /usr/lib/python2.7/site-packages/pip (pyt ...

  2. json类型数据取出想要的部分

    因为才疏学浅,只能用很笨的方法. 以下是我拿到的数据的json型数据. {"result":{"ingredient":{"result": ...

  3. docker简单实战

    1.为ubuntu镜像添加ssh服务 1.1查看可用的ubuntu版本 1)访问ubuntu镜像库地址:https://hub.docker.com/search?q=ubuntu&type= ...

  4. 4口高速USB 2.0 HUB控制器 DPU1.1S,兼容替代FE1.1S

    DPU1.1S是一款高性能.低功耗 4 口高速 USB2.0HUB 控制器,上行端口兼容高速 480MHz和全速 12MHz 两种模式,4个下行端口兼容高速480MHz.全速12MHz.低速 1.5M ...

  5. shell - scriptreplay timing.log output.session

    script -t 2> timing.log -a output.session cmd cmd cmd exit scriptreplay timing.log output.session ...

  6. 监控可视化nagios xi

    官网下载 https://www.nagios.com/downloads/nagios-xi/linux/ 也可以手动下载解压并安装 cd /tmp wget https://assets.nagi ...

  7. py常用模块

    02 collection模块 # 具名元组# 想表示坐标点x为1 y为2的坐标from collections import namedtuple# point = namedtuple('坐标', ...

  8. 学习高速PCB设计,这些走线方式你要知道! 高速射频百花潭 2022-01-21 08:53

    1.电源布局布线相关 数字电路很多时候需要的电流是不连续的,所以对一些高速器件就会产生浪涌电流. 如果电源走线很长,则由于浪涌电流的存在进而会导致高频噪声,而此高频噪声会引入到其他信号中去. 而在高速 ...

  9. qt 运行环境配置

    注意事项: 1 在设备上进行如下配置 root@am335x-pico:/opt# export QTDIR=/opt/qt-4.6.2-arm root@am335x-pico:/opt# expo ...

  10. Unity 读取Json文件、创建Json文件

    using System.IO; using UnityEngine; public class ReadJson:MonoBehaviour { public static TestSetting ...