将张量流模型转换为英特尔Movidius图的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将张量流模型转换为英特尔Movidius图的问题相关的知识,希望对你有一定的参考价值。

您好我在尝试使用具有张量流的英特尔Movidius神经棒时遇到了问题。我有keras模型,我将其转换为tensorflow模型。当我将其转换为Movidius图时,我收到错误:

Traceback (most recent call last):
File "/usr/local/bin/mvNCCompile", line 118, in
create_graph(args.network, args.inputnode, args.outputnode, args.outfile, args.nshaves, args.inputsize, args.weights)
File "/usr/local/bin/mvNCCompile", line 104, in create_graph
net = parse_tensor(args, myriad_config)
File "/usr/local/bin/ncsdk/Controllers/TensorFlowParser.py", line 290, in parse_tensor
if have_first_input(strip_tensor_id(node.outputs[0].name)):
IndexError: list index out of range

这是我的代码:

from keras.models import model_from_json
from keras.models import load_model
from keras import backend as K
import tensorflow as tf
import nn
import os

weights_file = "weights.h5"

sess = K.get_session()
K.set_learning_phase(0)
model = nn.alexnet_model() # get keras model
model.load_weights(weights_file)

saver = tf.train.Saver()
saver.save(sess, "./TF_Model/tf_model") # convert keras to tensorflow model

tf_model_path = "./TF_Model/tf_model"

fw = tf.summary.FileWriter('logs', sess.graph)
fw.close()

os.system('mvNCCompile TF_Model/tf_model.meta -in=conv2d_1_input -on=activation_7/Softmax') # get Movidius graph

Python版本:2.7 OS:Ubuntu 16.04 Tensorflow版本:1.12

答案

据我所知,ncsdk编译器无法解析普通tensorflow网络的每个部分,因此您必须修改网络并以NCS友好的方式重新保存,以便成功制作Movidius图。

有关如何修改tensorflow网络的更多信息,请查看the official guidance

希望它会对你有所帮助。

以上是关于将张量流模型转换为英特尔Movidius图的问题的主要内容,如果未能解决你的问题,请参考以下文章

是否可以将一维张量转换为列表? (张量流)

在张量流中将 SSD 转换为冻结图。必须使用哪些输出节点名称?

在 Android 上使用来自冻结的张量流图的变量

text 在张量流模型中转换keras模型

无法将 NumPy 数组转换为张量(不支持的对象类型 numpy.ndarray)错误

OpenVino的MXnet模型转换