Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在tensorflow(python)中调用opencv函数?_Tensorflow_Machine Learning_Deep Learning_Computer Vision - Fatal编程技术网

如何在tensorflow(python)中调用opencv函数?

如何在tensorflow(python)中调用opencv函数?,tensorflow,machine-learning,deep-learning,computer-vision,Tensorflow,Machine Learning,Deep Learning,Computer Vision,当我训练模型时,我定制了一个损耗函数。这个函数中损耗值的计算需要opencv的函数。看到代码了,但是我弄错了。我不知道如何解决它,有人能帮我吗?非常感谢 #这是我的损失函数 def实例损失函数(预测、标签): 最佳匹配\标签\图像=搜索\最大像素精度\排列(预测\转换\灰度\图像(预测),标签) 预测图像=预测 损失总和=0.0 最佳匹配标签图像轮廓编号=len(cv2.findContours(最佳匹配标签图像重塑(513513)、cv2.RETR树、cv2.CHAIN近似无)[1]) pre

当我训练模型时,我定制了一个损耗函数。这个函数中损耗值的计算需要opencv的函数。看到代码了,但是我弄错了。我不知道如何解决它,有人能帮我吗?非常感谢

#这是我的损失函数
def实例损失函数(预测、标签):
最佳匹配\标签\图像=搜索\最大像素精度\排列(预测\转换\灰度\图像(预测),标签)
预测图像=预测
损失总和=0.0
最佳匹配标签图像轮廓编号=len(cv2.findContours(最佳匹配标签图像重塑(513513)、cv2.RETR树、cv2.CHAIN近似无)[1])
predict_image_contours_number=len(cv2.findContours(predict_image.Restrape(513513))、cv2.RETR_树、cv2.CHAIN_近似值[1])
计数器\u max=np.max([最佳匹配\u标签\u图像\u轮廓\u编号,预测\u图像\u轮廓\u编号])
计数器\u min=np.min([最佳匹配\u标签\u图像\u轮廓\u编号,预测\u图像\u轮廓\u编号])
对于范围内的i(1,计数器最小值+1):
ith_instance_IoU=compute_oneclassiu(预测图像,最佳匹配标签图像,i)
如果我有一张借条=0:
损失总额=损失总额+2*(1/(1+i个实例欠条)-1/2)
elif ith_instance_IoU==0:
损失总和=损失总和+2
如果np.abs(计数器最大值-计数器最小值)=0:
损耗总和=损耗总和+1*np.abs(计数器最大值-计数器最小值)
退货损失总额
然后我像这样调用损失函数:

loss=tf.py_func(instance_loss_function,[valid_logits,valid_labels],tf.float32)
train_op = optimizer.minimize(loss, global_step, var_list=train_var_list)
但它不起作用,

为了能够训练你的网络tensorflow需要创建一个微分运算图。如果您想使用OpenCV函数,Tensorflow不知道如何为其构建导数。因此,您不能使用来自不同软件包的任意函数,将它们组合在一起,并希望它能够工作。

为了能够训练您的网络tensorflow需要创建一个可微分操作图。如果您想使用OpenCV函数,Tensorflow不知道如何为其构建导数。因此,您不能使用来自不同软件包的任意函数,将它们组合在一起,并希望它能工作。

谢谢,但在计算损失值时,我需要使用opencv(cv2.findContours()和cv2.drawContours())的函数。有什么可以替代这两个函数的吗?我不确定您想要实现什么。。。如果您想让您的模型进行边界预测,请进行不同的设置。我正在训练一个实例分割模型。在我们的图像数据集中,前景中只有一个类,但有多个实例。我们需要分割不同的实例,为了提高模型的性能,我们自定义了损失函数(损失值的计算需要OpenCV函数)。为了在tensorflow中调用OpenCV函数,我尝试了tf.py_func()我的理解是,当我在Python中调用OpenCV函数时,它将调用本地C++ LIBS。因此我认为TysFooSo不能为它创建一个图。如果可能的话,我想你可以尝试在NUMPY或TencoSoFrad本身中重新创建OpenCV代码。但是,再次,所有操作都需要被区分。Rentable,我不知道是否是这样。我会试试。谢谢!谢谢,但我需要使用opencv的函数(cv2.findContours()和cv2.drawContours())当计算损失值时。有什么东西可以替代这两个函数吗?我不确定你想实现什么…如果你想让你的模型做边界预测,那么就做一个不同的设置。我正在训练一个实例分割模型。在我们的图像数据集中,前景中只有一个类,但有多个实例。我们需要拆分不同的实例,为了提高模型的性能,我们定制了损耗函数(损耗值的计算需要OpenCV函数)。为了在tensorflow中调用OpenCV函数,我尝试了tf.py_func()我的理解是,当我在Python中调用OpenCV函数时,它将调用本地C++ LIBS。因此我认为TysFooSo不能为它创建一个图。如果可能的话,我想你可以尝试在NUMPY或TencoSoFrad本身中重新创建OpenCV代码。但是,再次,所有操作都需要被区分。可出租,我不知道是不是这样。我会试试。谢谢!