Я хочу импортировать .pb файл в C #, используя EmguCV
. Я тренировал модель, используя Keras in Python
. Я замораживаю свою модель, представленную ниже:
Слой (тип) Выходной параметр Параметр #
input_1 (InputLayer) (Нет, 120, 50, 1) 0
conv2d_1 (Conv2D) (нет, 120, 50, 64) 640
conv2d_2 (Conv2D) (нет, 120, 50, 64) 36928
batch_normalization_1(Пакет (Нет, 120, 50, 64) 256
max_pooling2d_1 (MaxPooling2 (Нет, 60, 25, 64) 0
conv2d_3 (Conv2D) (Нет,60, 25, 64) 36928
conv2d_4 (Conv2D) (Нет, 60, 25, 128) 73856
batch_normalization_2 (Пакет (нет, 60, 25, 128)) 512
max_pooling2d_2 (MaxPooling2 (Нет, 30, 12, 128) 0
conv2d_5 (Conv2D) (Нет, 30, 12, 128) 147584
conv2d_6 (Conv2D) (Нет, 30, 12, 128) 147584
batch_normalization_3 (Пакет (Нет, 30, 12, 128) 512
reshape_1 (Reshape) (Нет, 30, 1536) 0
dropout_1 (Выпадение) (Нет, 30, 1536) 0
плотность_1 (плотный) (нет, 30, 256) 393472
двунаправленный_1 (двунаправленный (нет, 30, 256) 1050624
двунаправленный_2 (двунаправленный (нет, 30, 256) 394240
dropout_2 (выбывший) (нет, 30, 256) 0
density_2 (плотный) (нет), 30, 43) 11051
Я использую класс C #, показанный ниже, для импорта .pb файла и использования UMat
изображения в нем:
public class ClassifierDnn
{
private readonly Emgu.CV.Dnn.Net _net;
private readonly string _inputName;
private readonly string _outputName;
public ClassifierDnn(
string tensorflowModelFilePath,
string inputName,
string outputName)
{
var b = File.Exists(tensorflowModelFilePath);
_net = Emgu.CV.Dnn.DnnInvoke.ReadNetFromTensorflow(tensorflowModelFilePath);
_inputName = inputName;
_outputName = outputName;
}
public int Classify(UMat umat)
{
using (var mat = umat.GetMat(Emgu.CV.CvEnum.AccessType.Fast))
{
return Classify(mat);
}
}
}
и я вызываю метод Classify
, используя этот код:
var dnn = new ClassifierDnn(
"crnn.pb",
"input_1",
"dense_2");
using (var u = new UMat(dlg.FileName, ImreadModes.Grayscale))
{
var m = dnn.Classify(u);
}
, но я получаю эту ошибку, изображенную ниже:
в чем проблема?