似乎由于许多不受支持的图层,所以无法从Box Mobilenet(以及TF OD API的其他模型)转换为uff格式,然后再转换为TensorRT格式。有什么方法可以删除\替换该图层吗?例如,使用graph_transform工具?我了解并非所有这些层的目的。如果有人想尝试,这是默认模型。
我所拥有的:Tensorflow中经过训练的递归神经网络。
我想要的是:一个可以尽快运行此网络的移动应用程序(仅推理模式,无需培训)。
我相信有多种方法可以实现我的目标,但是我想请您提供反馈/更正和补充,因为我以前从未这样做过。
有关移动应用程序的一些详细信息。该应用程序将对用户进行录音,进行一些处理(例如Speech2Text)并输出文本。我不想找到“足够快”的解决方案,而是最快的选择,因为这将在非常大的声音文件中发生。因此,几乎每个速度提高都至关重要。您有什么建议,我应该如何解决这个问题?
最后一个问题:如果我尝试雇用某个人来帮助我,我是否应该寻找Android / iOS,嵌入式或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) 如果您使用运行文件安装 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 平台上手动安装这个包?
我只是想下载,TensorRT但我看到有两个不同的版本GA和RC。它们之间有什么区别,当我将Windows 10计算机与Geforce GTX 960M图形卡一起使用时,应该选择什么版本?
我将 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 trt时graph.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) 我正在尝试使用 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)我一直在尝试按照 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) 我正在尝试使用 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) 我无法生成背景被删除的图像
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”时
tensorrt ×10
tensorflow ×7
python ×4
android ×1
c++ ×1
ios ×1
keras ×1
loadlibrary ×1
onnx ×1
performance ×1
proto ×1
python-3.6 ×1
pytorch ×1
rembg ×1