zoukankan      html  css  js  c++  java
  • 完美解决ImportError: cannot import name '_validate_lengths'报错问题

    欢迎关注WX公众号:【程序员管小亮】

    最近在运行代码的时候出现了错误——ImportError: cannot import name '_validate_lengths'

    经过查询和尝试,发现下面的这个方法可以完美运行。

    找到:C:UsersAdministratAnaconda3Libsite-packages umpylibarraypad .py,打开.py文件,找到第954行,添加下面两个函数保存,重新加载即可消除错误,亲测有效。

    在这里插入图片描述

    def _normalize_shape(ndarray, shape, cast_to_int=True):
        """
        Private function which does some checks and normalizes the possibly
        much simpler representations of ‘pad_width‘, ‘stat_length‘,
        ‘constant_values‘, ‘end_values‘.
        Parameters
        ----------
        narray : ndarray
            Input ndarray
        shape : {sequence, array_like, float, int}, optional
            The width of padding (pad_width), the number of elements on the
            edge of the narray used for statistics (stat_length), the constant
            value(s) to use when filling padded regions (constant_values), or the
            endpoint target(s) for linear ramps (end_values).
            ((before_1, after_1), ... (before_N, after_N)) unique number of
            elements for each axis where `N` is rank of `narray`.
            ((before, after),) yields same before and after constants for each
            axis.
            (constant,) or val is a shortcut for before = after = constant for
            all axes.
        cast_to_int : bool, optional
            Controls if values in ``shape`` will be rounded and cast to int
            before being returned.
        Returns
        -------
        normalized_shape : tuple of tuples
            val                               => ((val, val), (val, val), ...)
            [[val1, val2], [val3, val4], ...] => ((val1, val2), (val3, val4), ...)
            ((val1, val2), (val3, val4), ...) => no change
            [[val1, val2], ]                  => ((val1, val2), (val1, val2), ...)
            ((val1, val2), )                  => ((val1, val2), (val1, val2), ...)
            [[val ,     ], ]                  => ((val, val), (val, val), ...)
            ((val ,     ), )                  => ((val, val), (val, val), ...)
        """
        ndims = ndarray.ndim
        # Shortcut shape=None
        if shape is None:
            return ((None, None), ) * ndims
        # Convert any input `info` to a NumPy array
        shape_arr = np.asarray(shape)
        try:
            shape_arr = np.broadcast_to(shape_arr, (ndims, 2))
        except ValueError:
            fmt = "Unable to create correctly shaped tuple from %s"
            raise ValueError(fmt % (shape,))
        # Cast if necessary
        if cast_to_int is True:
            shape_arr = np.round(shape_arr).astype(int)
        # Convert list of lists to tuple of tuples
        return tuple(tuple(axis) for axis in shape_arr.tolist())
     
    def _validate_lengths(narray, number_elements):
        """
        Private function which does some checks and reformats pad_width and
        stat_length using _normalize_shape.
        Parameters
        ----------
        narray : ndarray
            Input ndarray
        number_elements : {sequence, int}, optional
            The width of padding (pad_width) or the number of elements on the edge
            of the narray used for statistics (stat_length).
            ((before_1, after_1), ... (before_N, after_N)) unique number of
            elements for each axis.
            ((before, after),) yields same before and after constants for each
            axis.
            (constant,) or int is a shortcut for before = after = constant for all
            axes.
        Returns
        -------
        _validate_lengths : tuple of tuples
            int                               => ((int, int), (int, int), ...)
            [[int1, int2], [int3, int4], ...] => ((int1, int2), (int3, int4), ...)
            ((int1, int2), (int3, int4), ...) => no change
            [[int1, int2], ]                  => ((int1, int2), (int1, int2), ...)
            ((int1, int2), )                  => ((int1, int2), (int1, int2), ...)
            [[int ,     ], ]                  => ((int, int), (int, int), ...)
            ((int ,     ), )                  => ((int, int), (int, int), ...)
        """
        normshp = _normalize_shape(narray, number_elements)
        for i in normshp:
            chk = [1 if x is None else x for x in i]
            chk = [1 if x >= 0 else -1 for x in chk]
            if (chk[0] < 0) or (chk[1] < 0):
                fmt = "%s cannot contain negative values."
                raise ValueError(fmt % (number_elements,))
        return normshp
    ###############################################################################
    # Public functions​
    

    python课程推荐。
    在这里插入图片描述

  • 相关阅读:
    Sharepoint 2013默认dll部署位置
    Sharepoint 2010 Form认证自定义登录页面,总是自动登录问题
    cocos打包后页面在ios浏览器、安卓钉钉等部分app中横竖屏问题
    cocos构建出来的 Web Mobile 项目在微信开发者工具里面无法点击
    git 合并某个提交commit到指定的分支上
    cc.sys.localStorage存储和读取用户数据
    cocos creater关于blend,关于预乘premultiply alpha,关于图片白边灰边的问题
    cocos遮罩层点击穿透问题解决
    postman中 form-data、x-www-form-urlencoded、raw、binary操作
    ‘webpack-dev-server' 不是内部或外部命令,也不是可运行的程序
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13302767.html
Copyright © 2011-2022 走看看