标签: tensorrt

将Tensorflow模型从对象检测API转换为uff

似乎由于许多不受支持的图层所以无法从Box Mobilenet(以及TF OD API的其他模型)转换为uff格式,然后再转换为TensorRT格式。有什么方法可以删除\替换该图层吗?例如,使用graph_transform工具?我了解并非所有这些层的目的。如果有人想尝试,这是默认模型

tensorflow tensorrt

5
推荐指数
1
解决办法
1411
查看次数

在移动设备上运行递归神经网络(推理)的最快方法

我所拥有的:Tensorflow中经过训练的递归神经网络。

我想要的是:一个可以尽快运行此网络的移动应用程序(仅推理模式,无需培训)。

我相信有多种方法可以实现我的目标,但是我想请您提供反馈/更正和补充,因为我以前从未这样做过。

  1. Tensorflow Lite。专业版:直截了当,可在Android和iOS上使用。相反:可能不是最快的方法,对吗?
  2. TensorRT。Pro:非常快+我可以编写自定义C代码以使其更快。Contra:用于Nvidia设备,因此没有简单的方法可以在Android和iOS上运行,对吗?
  3. 自定义代码+库,例如openBLAS。Pro:可能非常快,并且可以在iOS的Android上链接到它(如果我没记错的话)。相反:递归神经网络有很多用途吗?在Android + iOS上真的可以很好地工作吗?
  4. 重新实现一切。我还可以用C / C ++重写整个计算,这对于递归神经网络来说应该不会太难。Pro:可能是最快的方法,因为我可以优化所有内容。相反:将花费很长时间,而且如果网络发生变化,我也必须更新代码(尽管如果它确实是最快的,我也愿意这样做)。另外,我可以在Android上以多快的速度调用库(C / C ++)?我是否受Java接口的限制?

有关移动应用程序的一些详细信息。该应用程序将对用户进行录音,进行一些处理(例如Speech2Text)并输出文本。我不想找到“足够快”的解决方案,而是最快的选择,因为这将在非常大的声音文件中发生。因此,几乎每个速度提高都至关重要。您有什么建议,我应该如何解决这个问题?

最后一个问题:如果我尝试雇用某个人来帮助我,我是否应该寻找Android / iOS,嵌入式或Tensorflow型人员?

performance android ios tensorrt tensorflow-lite

5
推荐指数
1
解决办法
1104
查看次数

训练后用占位符交换TensorFlow数据集输入管道

我正在使用新的tf.data.DatasetAPI,但似乎无法弄清楚如何执行推理。最终,我想将我的模型转换为TensorRT图并在TX2上运行它,并且我发现的所有示例都假设您tf.placeholder输入的是a 。这是我如何训练的伪代码。该[...]只是要用作占位符,因为我实际上没有运行代码。让我们不要争论该模型,因为它只是想举一个例子:

import tensorflow as tf

# Setup iterator
datain = tf.data.FixedLengthRecordDataset(datafiles, record_bytes1)
labels = tf.data.FixedLengthRecordDataset(labelfiles, record_bytes2)
dataset = tf.data.Dataset.zip((datain, labels))
dataset = dataset.prefetch(batch_size)
dataset = dataset.repeat(n_epoch)
iterator = dataset.make_initializable_iterator()

sess = tf.Session()
sess.run(iterator.initializer)
[batch_x, batch_y] = iterator.get_next()

# Define model function (let's not debate model except as relevant to question)
def model_fn(xin):
    x0 = tf.transpose(tf.reshape(xin, [...], name='input'))
    w = tf.Variable(tf.truncated_normal([...], stddev=0.1))
    x1 = tf.nn.conv2d(x0, w, strides=[...], padding='VALID')
    b = tf.Variable(tf.constant(0.0, shape=[...])) …
Run Code Online (Sandbox Code Playgroud)

python tensorflow tensorrt

5
推荐指数
1
解决办法
1035
查看次数

TensorRT python 包与 python 3.6 不兼容

如果您使用运行文件安装 CUDA,则从其 tar 文件安装TensorRT 4是唯一可用的选项。但是,tar 文件仅包含 python 2.7 和 3.5 的 python TensorRT 轮文件。未提供 python 3.6 轮文件。

我无法在 python 3.6 系统上强制安装 python 3.5 轮文件:

$ pip install tensorrt-4.0.0.3-cp35-cp35m-linux_x86_64.whl 
tensorrt-4.0.0.3-cp35-cp35m-linux_x86_64.whl is not a supported wheel on this platform.
Run Code Online (Sandbox Code Playgroud)

另外,我无法创建一个新的 python 3.5 virtualenv 只是为了使用 TensorRT。

有没有办法通过手动复制文件来在我的 python 3.6 平台上手动安装这个包?

tensorflow python-3.6 tensorrt

4
推荐指数
1
解决办法
3348
查看次数

TensorRT GA和RC有什么区别?

我只是想下载,TensorRT但我看到有两个不同的版本GARC。它们之间有什么区别,当我将Windows 10计算机与Geforce GTX 960M图形卡一起使用时,应该选择什么版本?

tensorflow tensorrt

4
推荐指数
1
解决办法
536
查看次数

类型错误:graph_def 必须是 GraphDef 原型

我将 keras model.h5 转换为 freeze_graph.pb 以优化并在 jetson 上运行。但是优化frozen_graph.pb会出现错误。

raise TypeError('graph_def 必须是 GraphDef 原型。') TypeError: graph_def 必须是 GraphDef 原型。

代码 :

import tensorflow.contrib.tensorrt as trt

frozen_graph = './model/frozen_model.pb'
output_names = ['conv2d_59','conv2d_67','conv2d_75']

trt_graph = trt.create_inference_graph(
    input_graph_def=frozen_graph,
    outputs=output_names,
    max_batch_size=1,
    max_workspace_size_bytes=1 << 25,
    precision_mode='FP16',
    minimum_segment_size=50
)

graph_io.write_graph(trt_graph, "./model/",
                     "trt_graph.pb", as_text=False)
Run Code Online (Sandbox Code Playgroud)

注意:导入import tensorflow.contrib.tensorrt as trtgraph.io遇到一些问题。

参考链接:https://www.dlology.com/blog/how-to-run-keras-model-on-jetson-nano/

错误日志:

import tensorflow.contrib.tensorrt as trt

frozen_graph = './model/frozen_model.pb'
output_names = ['conv2d_59','conv2d_67','conv2d_75']

trt_graph = trt.create_inference_graph(
    input_graph_def=frozen_graph,
    outputs=output_names,
    max_batch_size=1,
    max_workspace_size_bytes=1 << 25,
    precision_mode='FP16',
    minimum_segment_size=50
)

graph_io.write_graph(trt_graph, …
Run Code Online (Sandbox Code Playgroud)

python proto keras tensorflow tensorrt

4
推荐指数
1
解决办法
2289
查看次数

TensorRT 和 Tensorflow 2

我正在尝试使用 TensorRT 加速 yolov3 TF2 的推理。我在 tensorflow 2 中使用了 TrtGraphConverter 函数。

我的代码基本上是这样的:

from tensorflow.python.compiler.tensorrt import trt_convert as trt

tf.keras.backend.set_learning_phase(0)
converter = trt.TrtGraphConverter(
    input_saved_model_dir="./tmp/yolosaved/",
    precision_mode="FP16",
    is_dynamic_op=True)
converter.convert()


saved_model_dir_trt = "./tmp/yolov3.trt"
converter.save(saved_model_dir_trt)
Run Code Online (Sandbox Code Playgroud)

这会产生以下错误:

Traceback (most recent call last):
  File "/home/pierre/Programs/anaconda3/envs/Deep2/lib/python3.6/site-packages/tensorflow/python/framework/importer.py", line 427, in import_graph_def
    graph._c_graph, serialized, options)  # pylint: disable=protected-access
tensorflow.python.framework.errors_impl.InvalidArgumentError: Input 1 of node StatefulPartitionedCall was passed float from conv2d/kernel:0 incompatible with expected resource.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/pierre/Documents/GitHub/yolov3-tf2/tensorrt.py", line …
Run Code Online (Sandbox Code Playgroud)

tensorflow tensorrt

3
推荐指数
1
解决办法
3886
查看次数

在 Tensorflow 2.1 中转换后无法加载 Tensor RT SavedModel

我一直在尝试按照 NVIDIA 网站上的教程(https://docs.nvidia.com/deeplearning/frameworks/tf-trt-user-guide/index.html )将Tensorflow 2 中实现的 YOLOv3 模型转换为 Tensor RT #worflow-with-savedmodel)。

我使用 SavedModel 方法进行转换,并成功将原始模型转换为 FP16 并将结果保存为新的 SavedModel。当新的 SavedModel 在进行转换的同一进程中加载​​时,它会正确加载,并且我能够对图像运行推理,但是当我尝试将 FP16 保存的模型加载到新流程。当我尝试执行此操作时,出现以下错误:

2020-04-01 10:39:42.428094: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libnvinfer.so.6
2020-04-01 10:39:42.447415: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libnvinfer_plugin.so.6
Coco names not found, class labels will be empty
2020-04-01 10:39:53.892453: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcuda.so.1
2020-04-01 10:39:53.920870: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1555] Found device 0 with properties: 
pciBusID: 0000:01:00.0 name: TITAN Xp computeCapability: 6.1
coreClock: 1.582GHz coreCount: 30 …
Run Code Online (Sandbox Code Playgroud)

python tensorflow tensorrt

3
推荐指数
1
解决办法
3873
查看次数

TensorRT(C++ API)未定义对“createNvOnnxParser_INTERNAL”的引用

我正在尝试使用 TensorRT C++ API 从 ONNX 模型创建一个tensorrt 引擎。我已经根据文档编写了代码来读取、序列化张量引擎并将其写入磁盘。我已经使用debian 安装说明在 colab 上安装了tensorrt7 。

这是我正在编译的 C++ 代码g++ rnxt.cpp -o rnxt

#include <cuda_runtime_api.h>
#include <NvOnnxParser.h>
#include <NvInfer.h>

#include <cstdlib>
#include <fstream>
#include <iostream>
#include <sstream>
#include <iterator>
#include <algorithm>

class Logger : public nvinfer1::ILogger           
 {
     void log(Severity severity, const char* msg) override
     {
         // suppress info-level messages
         if (severity != Severity::kINFO)
             std::cout << msg << std::endl;
     }
 } gLogger;


int main(){

    int maxBatchSize = 32;

    nvinfer1::IBuilder* builder = …
Run Code Online (Sandbox Code Playgroud)

c++ pytorch tensorrt google-colaboratory

3
推荐指数
1
解决办法
3761
查看次数

rembg 抛出运行时错误:LoadLibrary 失败:onnxruntime_providers_tensorrt.dll

我无法生成背景被删除的图像

from rembg import remove
from PIL import Image

input_path = "crop.jpeg"
output_path = 'crop1.png'

input = Image.open(input_path)
output = remove(input)
output.save(output_path)
Run Code Online (Sandbox Code Playgroud)

我的错误为: RuntimeError: D:\a_work\1\s\onnxruntime\core\session\provider_bridge_ort.cc:1069 onnxruntime::ProviderLibrary::Get [ONNXRuntimeError] : 1 : FAIL : LoadLibrary 失败,错误 126 ""当尝试加载“C:\users\lib\site-packages\onnxruntime\capi\onnxruntime_providers_tensorrt.dll”时

python loadlibrary tensorrt onnx rembg

3
推荐指数
1
解决办法
3388
查看次数