如何解决无法获得卷积算法这可能是因为cuDNN无法初始化,
我遇到了此错误,并通过从系统中卸载所有CUDA和cuDNN版本修复了该错误。然后,我为 安装了 (没有任何补丁)和 。
解决方法
在Tensorflow /Keras中,从https://github.com/pierluigiferrari/ssd_keras运行代码时,请使用估算器:ssd300_evaluation。我收到此错误。
无法获得卷积算法。这可能是因为cuDNN无法初始化,所以请尝试查看上面是否打印了警告日志消息。
我正在运行的问题:
的Python:3.6.4。
Tensorflow版本:1.12.0。
Keras版本:2.2.4。
CUDA:V10.0。
cuDNN:V7.4.1.5。
NVIDIA GeForce GTX 1080。
我也跑了:
import tensorflow as tf
with tf.device('/gpu:0'):
a = tf.constant([1.0,2.0,3.0,4.0,5.0,6.0],shape=[2,3],name='a')
b = tf.constant([1.0,shape=[3,2],name='b')
c = tf.matmul(a,b)
with tf.Session() as sess:
print (sess.run(c))
没有错误或问题。
极简示例是:
from keras import backend as K
from keras.models import load_model
from keras.optimizers import Adam
from scipy.misc import imread
import numpy as np
from matplotlib import pyplot as plt
from models.keras_ssd300 import ssd_300
from keras_loss_function.keras_ssd_loss import SSDLoss
from keras_layers.keras_layer_AnchorBoxes import AnchorBoxes
from keras_layers.keras_layer_DecodeDetections import DecodeDetections
from keras_layers.keras_layer_DecodeDetectionsFast import DecodeDetectionsFast
from keras_layers.keras_layer_L2Normalization import L2Normalization
from data_generator.object_detection_2d_data_generator import DataGenerator
from eval_utils.average_precision_evaluator import Evaluator
import tensorflow as tf
%matplotlib inline
import keras
keras.__version__
# Set a few configuration parameters.
img_height = 300
img_width = 300
n_classes = 20
model_mode = 'inference'
K.clear_session() # Clear previous models from memory.
model = ssd_300(image_size=(img_height,img_width,3),n_classes=n_classes,mode=model_mode,l2_regularization=0.0005,scales=[0.1,0.2,0.37,0.54,0.71,0.88,1.05],# The scales
for MS COCO [0.07,0.15,0.33,0.51,0.69,0.87,1.05]
aspect_ratios_per_layer=[[1.0,0.5],[1.0,0.5,1.0/3.0],0.5]],two_boxes_for_ar1=True,steps=[8,16,32,64,100,300],offsets=[0.5,clip_boxes=False,variances=[0.1,0.1,0.2],normalize_coords=True,subtract_mean=[123,117,104],swap_channels=[2,1,0],confidence_thresh=0.01,iou_threshold=0.45,top_k=200,nms_max_output_size=400)
# 2: Load the trained weights into the model.
# TODO: Set the path of the trained weights.
weights_path = 'C:/Users/USAgData/TF SSD
Keras/weights/VGG_VOC0712Plus_SSD_300x300_iter_240000.h5'
model.load_weights(weights_path,by_name=True)
# 3: Compile the model so that Keras won't complain the next time you load it.
adam = Adam(lr=0.001,beta_1=0.9,beta_2=0.999,epsilon=1e-08,decay=0.0)
ssd_loss = SSDLoss(neg_pos_ratio=3,alpha=1.0)
model.compile(optimizer=adam,loss=ssd_loss.compute_loss)
dataset = DataGenerator()
# TODO: Set the paths to the dataset here.
dir= "C:/Users/USAgData/TF SSD Keras/VOC/VOCtest_06-Nov-2007/VOCdevkit/VOC2007/"
Pascal_VOC_dataset_images_dir = dir+ 'JPEGImages'
Pascal_VOC_dataset_annotations_dir = dir + 'Annotations/'
Pascal_VOC_dataset_image_set_filename = dir+'ImageSets/Main/test.txt'
# The XML parser needs to now what object class names to look for and in which order to map them to integers.
classes = ['background','aeroplane','bicycle','bird','boat','bottle','bus','car','cat','chair','cow','diningtable','dog','horse','motorbike','person','pottedplant','sheep','sofa','train','tvmonitor']
dataset.parse_xml(images_dirs=[Pascal_VOC_dataset_images_dir],image_set_filenames=[Pascal_VOC_dataset_image_set_filename],annotations_dirs=[Pascal_VOC_dataset_annotations_dir],classes=classes,include_classes='all',exclude_truncated=False,exclude_difficult=False,ret=False)
evaluator = Evaluator(model=model,data_generator=dataset,model_mode=model_mode)
results = evaluator(img_height=img_height,img_width=img_width,batch_size=8,data_generator_mode='resize',round_confidences=False,matching_iou_threshold=0.5,border_pixels='include',sorting_algorithm='quicksort',average_precision_mode='sample',num_recall_points=11,ignore_neutral_boxes=True,return_precisions=True,return_recalls=True,return_average_precisions=True,verbose=True)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。