碧空尽513 2020-09-03 14:56 采纳率: 0%
浏览 887

在refinedet(pytorch)的demo运行时报错ImportError: cannot import name 'build_ssd' from 'ssd' (E:\Anaconda\Anaconda\lib\site-packages\ssd.py),求教怎么解决?

在refinedet(pytorch)的demo运行时报错ImportError: cannot import name 'build_ssd' from 'ssd' (E:\Anaconda\Anaconda\lib\site-packages\ssd.py)。
我打开ssd.py看了一下里面没有build_ssd这个东西。

下面是ssd.py的内容

# -*- coding: utf-8 -*-

from __future__ import absolute_import

import os
import sys

from os.path import dirname, expanduser, ismount, realpath, splitdrive


def _fullpath(path):
    return realpath(expanduser(path))


def _mountpoint(path):
    head = dirname(_fullpath(path))
    while not ismount(head):
        head = dirname(head)
    return head


def _blkdevice(path):
    import psutil

    partitions = psutil.disk_partitions()
    mount = _mountpoint(path)

    # if os.name == 'nt':
        # mount = mount.upper()

    device = next(dp.device for dp in partitions if dp.mountpoin == mount)
    block = device.rsplit('/', 1)[-1]

    return block


def is_nt_ssd(path):
    import win32file

    flag = False

    path = _fullpath(path)
    drive = splitdrive(path)[0].upper()

    drivetype = win32file.GetDriveType(drive)

    if drivetype == win32file.DRIVE_RAMDISK:
        flag = True

    elif drivetype in (win32file.DRIVE_FIXED, win32file.DRIVE_REMOVABLE):
        import wmi

        c = wmi.WMI()
        phy_to_part = 'Win32_DiskDriveToDiskPartition'
        log_to_part = 'Win32_LogicalDiskToPartition'
        index = dict((log_disk.Caption, phy_disk.Index)
                     for phy_disk in c.Win32_DiskDrive()
                     for partition in phy_disk.associators(phy_to_part)
                     for log_disk in partition.associators(log_to_part))

        c = wmi.WMI(moniker='//./ROOT/Microsoft/Windows/Storage')
        flag = bool(c.MSFT_PhysicalDisk(DeviceId=str(index[drive]),
                                        MediaType=4))

    return flag


def is_osx_ssd(path):
    import subprocess

    block = _blkdevice(path)
    cmd = 'diskutil info {0} | grep "Solid State"'.format(block)
    try:
        out = subprocess.check_output(cmd)
        flag = 'y' in out.lower()

    except subprocess.CalledProcessError:
        flag = False

    return flag


def is_posix_ssd(path):
    block = _blkdevice(path)
    path = '/sys/block/{0}/queue/rotational'.format(block)
    try:
        with open(path) as fp:
            flag = bool(fp.read().strip())

    except (IOError, OSError):
        flag = False

    return flag


def is_ssd(path):
    if os.name == 'nt':
        _is_ssd = is_nt_ssd
    elif sys.platform == 'darwin':
        _is_ssd = is_osx_ssd
    else:
        _is_ssd = is_posix_ssd

    return _is_ssd(path)

另外在的描述中ssd可调用的函数为is_ssd.
Import in your script the module sdd and call its function is_ssd.

  • 写回答

4条回答 默认 最新

  • pzzhouziao 2022-03-30 20:27
    关注

    这里的build_ssd在自己安装的ssd库中是没有的,是作者自己加上去的
    https://github.com/amdegroot/ssd.pytorch
    源代码在这里,将库替换一下就可以了

    评论

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?