24

我明白了。尝试使用 joblib 缓存结果时的用户警告:

from tempfile import mkdtemp
cachedir = mkdtemp()
from joblib import Memory
memory = Memory(cachedir=cachedir, verbose=0)

@memory.cache
def get_nc_var3d(path_nc, var, year):
    """
    Get value from netcdf for variable var for year
    :param path_nc:
    :param var:
    :param year:
    :return:
    """
    try:
        hndl_nc = open_or_die(path_nc)
        val = hndl_nc.variables[var][int(year), :, :]
    except:
        val = numpy.nan
        logger.info('Error in getting var ' + var + ' for year ' + str(year) + ' from netcdf ')

    hndl_nc.close()
    return val

我明白了。使用 foll 调用此函数时发出警告。参数:

UserWarning: Persisting input arguments took 0.58s to run.
If this happens often in your code, it can cause performance problems 
(results will be correct in all cases). 
The reason for this is probably some large input arguments for a wrapped
 function (e.g. large strings).
THIS IS A JOBLIB ISSUE. If you can, kindly provide the joblib's team with an
 example so that they can fix the problem.

输入参数: C:/Users/rit/Documents/PhD/Projects/\GLA/Input/LUWH/\LUWLAN_v1.0h\transit_model.nc range_to_large 1150

如何摆脱警告?以及为什么会发生,因为输入参数不会太长。

4

0 回答 0