windows下,Yolo_v3出现Blas SGEMM launch failed : m=1384448, n=32, k=64问题的解决办法

记录一下如何在运行Yolo_v3的时候是如何解决标题的问题:
1.打开tensorflow_backend.py文件
在Anconda的安装路径下:D:\Anaconda\envs\tensorflow-gpu\Lib\site-packages\keras\backend
如下图所示:在这里插入图片描述
2. 打开之后修改两个地方即可
①加入os.environ[“CUDA_VISIBLE_DEVICES”] = “0”

from __future__ import absolute_import
from __future__ import division
from __future__ import print_function

import tensorflow as tf
from tensorflow.python.training import moving_averages
from tensorflow.python.ops import tensor_array_ops
from tensorflow.python.ops import control_flow_ops
from tensorflow.python.ops import functional_ops
from tensorflow.python.ops import ctc_ops as ctc
from tensorflow.python.ops import variables as tf_variables
from tensorflow.python.client import device_lib

from collections import defaultdict

import numpy as np
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0"

config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.8
_SESSION = tf.Session(config = config)

from .common import floatx, epsilon
from .common import image_data_format
from ..utils.generic_utils import has_arg
  1. 修改def get_session():
    如下
def get_session():
    """Returns the TF session to be used by the backend.

    If a default TensorFlow session is available, we will return it.

    Else, we will return the global Keras session.

    If no global Keras session exists at this point:
    we will create a new global session.

    Note that you can manually set the global session
    via `K.set_session(sess)`.

    # Returns
        A TensorFlow session.
    """
    global _SESSION

    default_session = tf.get_default_session()

    if default_session is not None:
        session = default_session
    else:
        if _SESSION is None:
            # if not os.environ.get('OMP_NUM_THREADS'):
            #     config = tf.ConfigProto(allow_soft_placement=True)
            #     config = tf.ConfigProto()

            # else:
            #     num_thread = int(os.environ.get('OMP_NUM_THREADS'))
            #     config = tf.ConfigProto(intra_op_parallelism_threads=num_thread,
            #                             allow_soft_placement=True)
            config = tf.ConfigProto() 
            # config.gpu_options.allow_growth = False
            config.gpu_options.per_process_gpu_memory_fraction=0.8#程序最多只能占用指定gpu80%的显存
            _SESSION = tf.Session(config=config)
            
        session = _SESSION
    if not _MANUAL_VAR_INIT:
        with session.graph.as_default():
            variables = tf.global_variables()
            candidate_vars = []
            for v in variables:
                if not getattr(v, '_keras_initialized', False):
                    candidate_vars.append(v)
            if candidate_vars:
                # This step is expensive, so we only run it on variables
                # not already marked as initialized.
                is_initialized = session.run(
                    [tf.is_variable_initialized(v) for v in candidate_vars])
                uninitialized_vars = []
                for flag, v in zip(is_initialized, candidate_vars):
                    if not flag:
                        uninitialized_vars.append(v)
                    v._keras_initialized = True
                if uninitialized_vars:
                    session.run(tf.variables_initializer(uninitialized_vars))
    # hack for list_devices() function.
    # list_devices() function is not available under tensorflow r1.3.
    if not hasattr(session, 'list_devices'):
        session.list_devices = lambda: device_lib.list_local_devices()
    return session

主要是修改config.gpu_options部分,然后就可以正常运行啦!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值