gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 09:44:21 24 4
gpt4 key购买 nike

我训练模型的时候,自定义了一个损失函数,这个函数中损失值的计算需要opencv的函数,看代码,但是报错了,不知道怎么解决,有人可以帮助我吗?非常感谢。

#这是我的损失函数
def instance_loss_function(预测,标签):
best_match_label_image=search_MaxPixelAccuracy_permutation(predict_convert_gray_image(预测),标签)
预测图像=预测
损失总和=0.0
best_match_label_image_contours_number=len(cv2.findContours( best_match_label_image.reshape(513,513), cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)[1])
Predict_image_contours_number=len(cv2.findContours( Predict_image.reshape(513,513), cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)[1])
counter_max=np.max([best_match_label_image_contours_number,predict_image_contours_number])
counter_min=np.min([best_match_label_image_contours_number,predict_image_contours_number])
对于范围内的 i(1,counter_min+1):
ith_instance_IoU=compute_oneClassIoU(预测图像,best_match_label_image,i)
如果 ith_instance_IoU!=0:
loss_sum=loss_sum+2*(1/(1+ith_instance_IoU)-1/2)
elif ith_instance_IoU==0:
损失总和=损失总和+2
如果 np.abs(counter_max-counter_min)!=0:
loss_sum=loss_sum+1*np.abs(counter_max-counter_min)
回波损耗总和
然后我这样调用损失函数:

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)

但它不起作用, enter image description here

最佳答案

为了能够训练网络 tensorflow ,需要创建可微操作图。如果你想使用 OpenCV 函数,Tensorflow 不知道如何为此构建导数。所以你不能使用不同软件包中的任意功能,将它们组合起来并希望它能起作用。

关于tensorflow - 如何在tensorflow(python)中调用opencv函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54456567/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com