/* Generated by Cython 3.0.0a10 */ /* BEGIN: Cython Metadata { "distutils": { "name": "pdf_toolbox.lib.dia_yolov5.utils.torch_utils", "sources": [ "pdf_toolbox\\lib\\dia_yolov5\\utils\\torch_utils.py" ] }, "module_name": "pdf_toolbox.lib.dia_yolov5.utils.torch_utils" } END: Cython Metadata */ #ifndef PY_SSIZE_T_CLEAN #define PY_SSIZE_T_CLEAN #endif /* PY_SSIZE_T_CLEAN */ #if defined(CYTHON_LIMITED_API) && 0 #ifndef Py_LIMITED_API #if CYTHON_LIMITED_API+0 > 0x03030000 #define Py_LIMITED_API CYTHON_LIMITED_API #else #define Py_LIMITED_API 0x03030000 #endif #endif #endif #include "Python.h" #ifndef Py_PYTHON_H #error Python headers needed to compile C extensions, please install development version of Python. #elif PY_VERSION_HEX < 0x02070000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000) #error Cython requires Python 2.7+ or Python 3.3+. #else #define CYTHON_ABI "3_0_0a10" #define __PYX_ABI_MODULE_NAME "_cython_" CYTHON_ABI #define __PYX_TYPE_MODULE_PREFIX __PYX_ABI_MODULE_NAME "." #define CYTHON_HEX_VERSION 0x030000AA #define CYTHON_FUTURE_DIVISION 1 #include #ifndef offsetof #define offsetof(type, member) ( (size_t) & ((type*)0) -> member ) #endif #if !defined(_WIN32) && !defined(WIN32) && !defined(MS_WINDOWS) #ifndef __stdcall #define __stdcall #endif #ifndef __cdecl #define __cdecl #endif #ifndef __fastcall #define __fastcall #endif #endif #ifndef DL_IMPORT #define DL_IMPORT(t) t #endif #ifndef DL_EXPORT #define DL_EXPORT(t) t #endif #define __PYX_COMMA , #ifndef HAVE_LONG_LONG #define HAVE_LONG_LONG #endif #ifndef PY_LONG_LONG #define PY_LONG_LONG LONG_LONG #endif #ifndef Py_HUGE_VAL #define Py_HUGE_VAL HUGE_VAL #endif #if defined(GRAALVM_PYTHON) /* For very preliminary testing purposes. Most variables are set the same as PyPy. The existence of this section does not imply that anything works or is even tested */ #define CYTHON_COMPILING_IN_PYPY 0 #define CYTHON_COMPILING_IN_CPYTHON 0 #define CYTHON_COMPILING_IN_LIMITED_API 0 #define CYTHON_COMPILING_IN_GRAAL 1 #undef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 0 #undef CYTHON_USE_TYPE_SPECS #define CYTHON_USE_TYPE_SPECS 0 #undef CYTHON_USE_PYTYPE_LOOKUP #define CYTHON_USE_PYTYPE_LOOKUP 0 #if PY_VERSION_HEX < 0x03050000 #undef CYTHON_USE_ASYNC_SLOTS #define CYTHON_USE_ASYNC_SLOTS 0 #elif !defined(CYTHON_USE_ASYNC_SLOTS) #define CYTHON_USE_ASYNC_SLOTS 1 #endif #undef CYTHON_USE_PYLIST_INTERNALS #define CYTHON_USE_PYLIST_INTERNALS 0 #undef CYTHON_USE_UNICODE_INTERNALS #define CYTHON_USE_UNICODE_INTERNALS 0 #undef CYTHON_USE_UNICODE_WRITER #define CYTHON_USE_UNICODE_WRITER 0 #undef CYTHON_USE_PYLONG_INTERNALS #define CYTHON_USE_PYLONG_INTERNALS 0 #undef CYTHON_AVOID_BORROWED_REFS #define CYTHON_AVOID_BORROWED_REFS 1 #undef CYTHON_ASSUME_SAFE_MACROS #define CYTHON_ASSUME_SAFE_MACROS 0 #undef CYTHON_UNPACK_METHODS #define CYTHON_UNPACK_METHODS 0 #undef CYTHON_FAST_THREAD_STATE #define CYTHON_FAST_THREAD_STATE 0 #undef CYTHON_FAST_GIL #define CYTHON_FAST_GIL 0 #undef CYTHON_METH_FASTCALL #define CYTHON_METH_FASTCALL 0 #undef CYTHON_FAST_PYCALL #define CYTHON_FAST_PYCALL 0 #ifndef CYTHON_PEP487_INIT_SUBCLASS #define CYTHON_PEP487_INIT_SUBCLASS (PY_MAJOR_VERSION >= 3) #endif #undef CYTHON_PEP489_MULTI_PHASE_INIT #define CYTHON_PEP489_MULTI_PHASE_INIT 1 #undef CYTHON_USE_MODULE_STATE #define CYTHON_USE_MODULE_STATE 0 #undef CYTHON_USE_TP_FINALIZE #define CYTHON_USE_TP_FINALIZE 0 #undef CYTHON_USE_DICT_VERSIONS #define CYTHON_USE_DICT_VERSIONS 0 #undef CYTHON_USE_EXC_INFO_STACK #define CYTHON_USE_EXC_INFO_STACK 0 #elif defined(PYPY_VERSION) #define CYTHON_COMPILING_IN_PYPY 1 #define CYTHON_COMPILING_IN_CPYTHON 0 #define CYTHON_COMPILING_IN_LIMITED_API 0 #define CYTHON_COMPILING_IN_GRAAL 0 #undef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 0 #undef CYTHON_USE_TYPE_SPECS #define CYTHON_USE_TYPE_SPECS 0 #undef CYTHON_USE_PYTYPE_LOOKUP #define CYTHON_USE_PYTYPE_LOOKUP 0 #if PY_VERSION_HEX < 0x03050000 #undef CYTHON_USE_ASYNC_SLOTS #define CYTHON_USE_ASYNC_SLOTS 0 #elif !defined(CYTHON_USE_ASYNC_SLOTS) #define CYTHON_USE_ASYNC_SLOTS 1 #endif #undef CYTHON_USE_PYLIST_INTERNALS #define CYTHON_USE_PYLIST_INTERNALS 0 #undef CYTHON_USE_UNICODE_INTERNALS #define CYTHON_USE_UNICODE_INTERNALS 0 #undef CYTHON_USE_UNICODE_WRITER #define CYTHON_USE_UNICODE_WRITER 0 #undef CYTHON_USE_PYLONG_INTERNALS #define CYTHON_USE_PYLONG_INTERNALS 0 #undef CYTHON_AVOID_BORROWED_REFS #define CYTHON_AVOID_BORROWED_REFS 1 #undef CYTHON_ASSUME_SAFE_MACROS #define CYTHON_ASSUME_SAFE_MACROS 0 #undef CYTHON_UNPACK_METHODS #define CYTHON_UNPACK_METHODS 0 #undef CYTHON_FAST_THREAD_STATE #define CYTHON_FAST_THREAD_STATE 0 #undef CYTHON_FAST_GIL #define CYTHON_FAST_GIL 0 #undef CYTHON_METH_FASTCALL #define CYTHON_METH_FASTCALL 0 #undef CYTHON_FAST_PYCALL #define CYTHON_FAST_PYCALL 0 #ifndef CYTHON_PEP487_INIT_SUBCLASS #define CYTHON_PEP487_INIT_SUBCLASS (PY_MAJOR_VERSION >= 3) #endif #undef CYTHON_PEP489_MULTI_PHASE_INIT #define CYTHON_PEP489_MULTI_PHASE_INIT 0 #undef CYTHON_USE_MODULE_STATE #define CYTHON_USE_MODULE_STATE 0 #undef CYTHON_USE_TP_FINALIZE #define CYTHON_USE_TP_FINALIZE 0 #undef CYTHON_USE_DICT_VERSIONS #define CYTHON_USE_DICT_VERSIONS 0 #undef CYTHON_USE_EXC_INFO_STACK #define CYTHON_USE_EXC_INFO_STACK 0 #elif defined(CYTHON_LIMITED_API) #define CYTHON_COMPILING_IN_PYPY 0 #define CYTHON_COMPILING_IN_CPYTHON 0 #define CYTHON_COMPILING_IN_LIMITED_API 1 #define CYTHON_COMPILING_IN_GRAAL 0 #undef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 0 #undef CYTHON_USE_TYPE_SPECS #define CYTHON_USE_TYPE_SPECS 1 #undef CYTHON_USE_PYTYPE_LOOKUP #define CYTHON_USE_PYTYPE_LOOKUP 0 #undef CYTHON_USE_ASYNC_SLOTS #define CYTHON_USE_ASYNC_SLOTS 0 #undef CYTHON_USE_PYLIST_INTERNALS #define CYTHON_USE_PYLIST_INTERNALS 0 #undef CYTHON_USE_UNICODE_INTERNALS #define CYTHON_USE_UNICODE_INTERNALS 0 #ifndef CYTHON_USE_UNICODE_WRITER #define CYTHON_USE_UNICODE_WRITER 0 #endif #undef CYTHON_USE_PYLONG_INTERNALS #define CYTHON_USE_PYLONG_INTERNALS 0 #ifndef CYTHON_AVOID_BORROWED_REFS #define CYTHON_AVOID_BORROWED_REFS 0 #endif #undef CYTHON_ASSUME_SAFE_MACROS #define CYTHON_ASSUME_SAFE_MACROS 0 #undef CYTHON_UNPACK_METHODS #define CYTHON_UNPACK_METHODS 0 #undef CYTHON_FAST_THREAD_STATE #define CYTHON_FAST_THREAD_STATE 0 #undef CYTHON_FAST_GIL #define CYTHON_FAST_GIL 0 #undef CYTHON_METH_FASTCALL #define CYTHON_METH_FASTCALL 0 #undef CYTHON_FAST_PYCALL #define CYTHON_FAST_PYCALL 0 #ifndef CYTHON_PEP487_INIT_SUBCLASS #define CYTHON_PEP487_INIT_SUBCLASS 1 #endif #undef CYTHON_PEP489_MULTI_PHASE_INIT #define CYTHON_PEP489_MULTI_PHASE_INIT 0 #undef CYTHON_USE_MODULE_STATE #define CYTHON_USE_MODULE_STATE 1 #ifndef CYTHON_USE_TP_FINALIZE #define CYTHON_USE_TP_FINALIZE 1 #endif #undef CYTHON_USE_DICT_VERSIONS #define CYTHON_USE_DICT_VERSIONS 0 #undef CYTHON_USE_EXC_INFO_STACK #define CYTHON_USE_EXC_INFO_STACK 0 #else #define CYTHON_COMPILING_IN_PYPY 0 #define CYTHON_COMPILING_IN_CPYTHON 1 #define CYTHON_COMPILING_IN_LIMITED_API 0 #define CYTHON_COMPILING_IN_GRAAL 0 #ifndef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 1 #endif #ifndef CYTHON_USE_TYPE_SPECS #define CYTHON_USE_TYPE_SPECS 0 #endif #ifndef CYTHON_USE_PYTYPE_LOOKUP #define CYTHON_USE_PYTYPE_LOOKUP 1 #endif #if PY_MAJOR_VERSION < 3 #undef CYTHON_USE_ASYNC_SLOTS #define CYTHON_USE_ASYNC_SLOTS 0 #elif !defined(CYTHON_USE_ASYNC_SLOTS) #define CYTHON_USE_ASYNC_SLOTS 1 #endif #ifndef CYTHON_USE_PYLONG_INTERNALS #define CYTHON_USE_PYLONG_INTERNALS 1 #endif #ifndef CYTHON_USE_PYLIST_INTERNALS #define CYTHON_USE_PYLIST_INTERNALS 1 #endif #ifndef CYTHON_USE_UNICODE_INTERNALS #define CYTHON_USE_UNICODE_INTERNALS 1 #endif #if PY_VERSION_HEX < 0x030300F0 || PY_VERSION_HEX >= 0x030B00A2 #undef CYTHON_USE_UNICODE_WRITER #define CYTHON_USE_UNICODE_WRITER 0 #elif !defined(CYTHON_USE_UNICODE_WRITER) #define CYTHON_USE_UNICODE_WRITER 1 #endif #ifndef CYTHON_AVOID_BORROWED_REFS #define CYTHON_AVOID_BORROWED_REFS 0 #endif #ifndef CYTHON_ASSUME_SAFE_MACROS #define CYTHON_ASSUME_SAFE_MACROS 1 #endif #ifndef CYTHON_UNPACK_METHODS #define CYTHON_UNPACK_METHODS 1 #endif #ifndef CYTHON_FAST_THREAD_STATE #define CYTHON_FAST_THREAD_STATE 1 #endif #ifndef CYTHON_FAST_GIL #define CYTHON_FAST_GIL (PY_MAJOR_VERSION < 3 || PY_VERSION_HEX >= 0x03060000) #endif #ifndef CYTHON_METH_FASTCALL #define CYTHON_METH_FASTCALL (PY_VERSION_HEX >= 0x030700A1) #endif #ifndef CYTHON_FAST_PYCALL #define CYTHON_FAST_PYCALL 1 #endif #ifndef CYTHON_PEP487_INIT_SUBCLASS #define CYTHON_PEP487_INIT_SUBCLASS 1 #endif #if PY_VERSION_HEX < 0x03050000 #undef CYTHON_PEP489_MULTI_PHASE_INIT #define CYTHON_PEP489_MULTI_PHASE_INIT 0 #elif !defined(CYTHON_PEP489_MULTI_PHASE_INIT) #define CYTHON_PEP489_MULTI_PHASE_INIT 1 #endif #ifndef CYTHON_USE_MODULE_STATE #define CYTHON_USE_MODULE_STATE 0 #endif #if PY_VERSION_HEX < 0x030400a1 #undef CYTHON_USE_TP_FINALIZE #define CYTHON_USE_TP_FINALIZE 0 #elif !defined(CYTHON_USE_TP_FINALIZE) #define CYTHON_USE_TP_FINALIZE 1 #endif #if PY_VERSION_HEX < 0x030600B1 #undef CYTHON_USE_DICT_VERSIONS #define CYTHON_USE_DICT_VERSIONS 0 #elif !defined(CYTHON_USE_DICT_VERSIONS) #define CYTHON_USE_DICT_VERSIONS 1 #endif #if PY_VERSION_HEX < 0x030700A3 #undef CYTHON_USE_EXC_INFO_STACK #define CYTHON_USE_EXC_INFO_STACK 0 #elif !defined(CYTHON_USE_EXC_INFO_STACK) #define CYTHON_USE_EXC_INFO_STACK 1 #endif #endif #if !defined(CYTHON_FAST_PYCCALL) #define CYTHON_FAST_PYCCALL (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1) #endif #if !defined(CYTHON_VECTORCALL) #define CYTHON_VECTORCALL (CYTHON_FAST_PYCCALL && PY_VERSION_HEX >= 0x030800B1) #endif #define CYTHON_BACKPORT_VECTORCALL (CYTHON_METH_FASTCALL && PY_VERSION_HEX < 0x030800B1) #if CYTHON_USE_PYLONG_INTERNALS #if PY_MAJOR_VERSION < 3 #include "longintrepr.h" #endif #undef SHIFT #undef BASE #undef MASK #ifdef SIZEOF_VOID_P enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) }; #endif #endif #ifndef __has_attribute #define __has_attribute(x) 0 #endif #ifndef __has_cpp_attribute #define __has_cpp_attribute(x) 0 #endif #ifndef CYTHON_RESTRICT #if defined(__GNUC__) #define CYTHON_RESTRICT __restrict__ #elif defined(_MSC_VER) && _MSC_VER >= 1400 #define CYTHON_RESTRICT __restrict #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #define CYTHON_RESTRICT restrict #else #define CYTHON_RESTRICT #endif #endif #ifndef CYTHON_UNUSED # if defined(__GNUC__) # if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) # define CYTHON_UNUSED __attribute__ ((__unused__)) # else # define CYTHON_UNUSED # endif # elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER)) # define CYTHON_UNUSED __attribute__ ((__unused__)) # else # define CYTHON_UNUSED # endif #endif #ifndef CYTHON_UNUSED_VAR # if defined(__cplusplus) template void CYTHON_UNUSED_VAR( const T& ) { } # else # define CYTHON_UNUSED_VAR(x) (void)(x) # endif #endif #ifndef CYTHON_MAYBE_UNUSED_VAR #define CYTHON_MAYBE_UNUSED_VAR(x) CYTHON_UNUSED_VAR(x) #endif #ifndef CYTHON_NCP_UNUSED # if CYTHON_COMPILING_IN_CPYTHON # define CYTHON_NCP_UNUSED # else # define CYTHON_NCP_UNUSED CYTHON_UNUSED # endif #endif #define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None) #ifdef _MSC_VER #ifndef _MSC_STDINT_H_ #if _MSC_VER < 1300 typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned int uint32_t; #else typedef unsigned __int8 uint8_t; typedef unsigned __int16 uint16_t; typedef unsigned __int32 uint32_t; #endif #endif #if _MSC_VER < 1300 #ifdef _WIN64 typedef unsigned long long __pyx_uintptr_t; #else typedef unsigned int __pyx_uintptr_t; #endif #else #ifdef _WIN64 typedef unsigned __int64 __pyx_uintptr_t; #else typedef unsigned __int32 __pyx_uintptr_t; #endif #endif #else #include typedef uintptr_t __pyx_uintptr_t; #endif #ifndef CYTHON_FALLTHROUGH #if defined(__cplusplus) && __cplusplus >= 201103L #if __has_cpp_attribute(fallthrough) #define CYTHON_FALLTHROUGH [[fallthrough]] #elif __has_cpp_attribute(clang::fallthrough) #define CYTHON_FALLTHROUGH [[clang::fallthrough]] #elif __has_cpp_attribute(gnu::fallthrough) #define CYTHON_FALLTHROUGH [[gnu::fallthrough]] #endif #endif #ifndef CYTHON_FALLTHROUGH #if __has_attribute(fallthrough) #define CYTHON_FALLTHROUGH __attribute__((fallthrough)) #else #define CYTHON_FALLTHROUGH #endif #endif #if defined(__clang__ ) && defined(__apple_build_version__) #if __apple_build_version__ < 7000000 #undef CYTHON_FALLTHROUGH #define CYTHON_FALLTHROUGH #endif #endif #endif #ifndef CYTHON_INLINE #if defined(__clang__) #define CYTHON_INLINE __inline__ __attribute__ ((__unused__)) #elif defined(__GNUC__) #define CYTHON_INLINE __inline__ #elif defined(_MSC_VER) #define CYTHON_INLINE __inline #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #define CYTHON_INLINE inline #else #define CYTHON_INLINE #endif #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x02070600 && !defined(Py_OptimizeFlag) #define Py_OptimizeFlag 0 #endif #define __PYX_BUILD_PY_SSIZE_T "n" #define CYTHON_FORMAT_SSIZE_T "z" #if PY_MAJOR_VERSION < 3 #define __Pyx_BUILTIN_MODULE_NAME "__builtin__" #define __Pyx_DefaultClassType PyClass_Type #define __Pyx_PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) #else #define __Pyx_BUILTIN_MODULE_NAME "builtins" #define __Pyx_DefaultClassType PyType_Type #if PY_VERSION_HEX >= 0x030B00A1 static CYTHON_INLINE PyCodeObject* __Pyx_PyCode_New(int a, int p, int k, int l, int s, int f, PyObject *code, PyObject *c, PyObject* n, PyObject *v, PyObject *fv, PyObject *cell, PyObject* fn, PyObject *name, int fline, PyObject *lnos) { PyObject *kwds=NULL, *argcount=NULL, *posonlyargcount=NULL, *kwonlyargcount=NULL; PyObject *nlocals=NULL, *stacksize=NULL, *flags=NULL, *replace=NULL, *call_result=NULL, *empty=NULL; const char *fn_cstr=NULL; const char *name_cstr=NULL; PyCodeObject* co=NULL; PyObject *type, *value, *traceback; PyErr_Fetch(&type, &value, &traceback); if (!(kwds=PyDict_New())) goto end; if (!(argcount=PyLong_FromLong(a))) goto end; if (PyDict_SetItemString(kwds, "co_argcount", argcount) != 0) goto end; if (!(posonlyargcount=PyLong_FromLong(p))) goto end; if (PyDict_SetItemString(kwds, "co_posonlyargcount", posonlyargcount) != 0) goto end; if (!(kwonlyargcount=PyLong_FromLong(k))) goto end; if (PyDict_SetItemString(kwds, "co_kwonlyargcount", kwonlyargcount) != 0) goto end; if (!(nlocals=PyLong_FromLong(l))) goto end; if (PyDict_SetItemString(kwds, "co_nlocals", nlocals) != 0) goto end; if (!(stacksize=PyLong_FromLong(s))) goto end; if (PyDict_SetItemString(kwds, "co_stacksize", stacksize) != 0) goto end; if (!(flags=PyLong_FromLong(f))) goto end; if (PyDict_SetItemString(kwds, "co_flags", flags) != 0) goto end; if (PyDict_SetItemString(kwds, "co_code", code) != 0) goto end; if (PyDict_SetItemString(kwds, "co_consts", c) != 0) goto end; if (PyDict_SetItemString(kwds, "co_names", n) != 0) goto end; if (PyDict_SetItemString(kwds, "co_varnames", v) != 0) goto end; if (PyDict_SetItemString(kwds, "co_freevars", fv) != 0) goto end; if (PyDict_SetItemString(kwds, "co_cellvars", cell) != 0) goto end; if (PyDict_SetItemString(kwds, "co_linetable", lnos) != 0) goto end; if (!(fn_cstr=PyUnicode_AsUTF8AndSize(fn, NULL))) goto end; if (!(name_cstr=PyUnicode_AsUTF8AndSize(name, NULL))) goto end; if (!(co = PyCode_NewEmpty(fn_cstr, name_cstr, fline))) goto end; if (!(replace = PyObject_GetAttrString((PyObject*)co, "replace"))) goto cleanup_code_too; if (!(empty = PyTuple_New(0))) goto cleanup_code_too; // unfortunately __pyx_empty_tuple isn't available here if (!(call_result = PyObject_Call(replace, empty, kwds))) goto cleanup_code_too; Py_XDECREF((PyObject*)co); co = (PyCodeObject*)call_result; call_result = NULL; if (0) { cleanup_code_too: Py_XDECREF((PyObject*)co); co = NULL; } end: Py_XDECREF(kwds); Py_XDECREF(argcount); Py_XDECREF(posonlyargcount); Py_XDECREF(kwonlyargcount); Py_XDECREF(nlocals); Py_XDECREF(stacksize); Py_XDECREF(replace); Py_XDECREF(call_result); Py_XDECREF(empty); if (type) { PyErr_Restore(type, value, traceback); } return co; } #elif PY_VERSION_HEX >= 0x030800B2 && !CYTHON_COMPILING_IN_PYPY #define __Pyx_PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ PyCode_NewWithPosOnlyArgs(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) #else #define __Pyx_PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) #endif #endif #if PY_VERSION_HEX >= 0x030900A4 || defined(Py_IS_TYPE) #define __Pyx_IS_TYPE(ob, type) Py_IS_TYPE(ob, type) #else #define __Pyx_IS_TYPE(ob, type) (((const PyObject*)ob)->ob_type == (type)) #endif #ifndef Py_TPFLAGS_CHECKTYPES #define Py_TPFLAGS_CHECKTYPES 0 #endif #ifndef Py_TPFLAGS_HAVE_INDEX #define Py_TPFLAGS_HAVE_INDEX 0 #endif #ifndef Py_TPFLAGS_HAVE_NEWBUFFER #define Py_TPFLAGS_HAVE_NEWBUFFER 0 #endif #ifndef Py_TPFLAGS_HAVE_FINALIZE #define Py_TPFLAGS_HAVE_FINALIZE 0 #endif #ifndef METH_STACKLESS #define METH_STACKLESS 0 #endif #if PY_VERSION_HEX <= 0x030700A3 || !defined(METH_FASTCALL) #ifndef METH_FASTCALL #define METH_FASTCALL 0x80 #endif typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs); typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames); #else #define __Pyx_PyCFunctionFast _PyCFunctionFast #define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords #endif #if CYTHON_METH_FASTCALL #define __Pyx_METH_FASTCALL METH_FASTCALL #define __Pyx_PyCFunction_FastCall __Pyx_PyCFunctionFast #define __Pyx_PyCFunction_FastCallWithKeywords __Pyx_PyCFunctionFastWithKeywords #else #define __Pyx_METH_FASTCALL METH_VARARGS #define __Pyx_PyCFunction_FastCall PyCFunction #define __Pyx_PyCFunction_FastCallWithKeywords PyCFunctionWithKeywords #endif #if CYTHON_VECTORCALL #define __pyx_vectorcallfunc vectorcallfunc #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET PY_VECTORCALL_ARGUMENTS_OFFSET #define __Pyx_PyVectorcall_NARGS(n) PyVectorcall_NARGS((size_t)(n)) #elif CYTHON_BACKPORT_VECTORCALL typedef PyObject *(*__pyx_vectorcallfunc)(PyObject *callable, PyObject *const *args, size_t nargsf, PyObject *kwnames); #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET ((size_t)1 << (8 * sizeof(size_t) - 1)) #define __Pyx_PyVectorcall_NARGS(n) ((Py_ssize_t)(((size_t)(n)) & ~__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)) #else #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET 0 #define __Pyx_PyVectorcall_NARGS(n) ((Py_ssize_t)(n)) #endif #if PY_VERSION_HEX < 0x030900B1 #define __Pyx_PyType_FromModuleAndSpec(m, s, b) ((void)m, PyType_FromSpecWithBases(s, b)) typedef PyObject *(*__Pyx_PyCMethod)(PyObject *, PyTypeObject *, PyObject *const *, size_t, PyObject *); #else #define __Pyx_PyType_FromModuleAndSpec(m, s, b) PyType_FromModuleAndSpec(m, s, b) #define __Pyx_PyCMethod PyCMethod #endif #ifndef METH_METHOD #define METH_METHOD 0x200 #endif #if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc) #define PyObject_Malloc(s) PyMem_Malloc(s) #define PyObject_Free(p) PyMem_Free(p) #define PyObject_Realloc(p) PyMem_Realloc(p) #endif #if CYTHON_COMPILING_IN_LIMITED_API #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0) #define __Pyx_PyFrame_SetLineNumber(frame, lineno) #else #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0) #define __Pyx_PyFrame_SetLineNumber(frame, lineno) (frame)->f_lineno = (lineno) #endif #if CYTHON_COMPILING_IN_LIMITED_API #define __Pyx_PyThreadState_Current PyThreadState_Get() #elif !CYTHON_FAST_THREAD_STATE #define __Pyx_PyThreadState_Current PyThreadState_GET() #elif PY_VERSION_HEX >= 0x03060000 #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet() #elif PY_VERSION_HEX >= 0x03000000 #define __Pyx_PyThreadState_Current PyThreadState_GET() #else #define __Pyx_PyThreadState_Current _PyThreadState_Current #endif #if CYTHON_COMPILING_IN_LIMITED_API static CYTHON_INLINE void *__Pyx_PyModule_GetState(PyObject *op) { void *result; result = PyModule_GetState(op); if (!result) Py_FatalError("Couldn't find the module state"); return result; } #endif #define __Pyx_PyObject_GetSlot(obj, name, func_ctype) __Pyx_PyType_GetSlot(Py_TYPE(obj), name, func_ctype) #if CYTHON_COMPILING_IN_LIMITED_API #define __Pyx_PyType_GetSlot(type, name, func_ctype) ((func_ctype) PyType_GetSlot((type), Py_##name)) #else #define __Pyx_PyType_GetSlot(type, name, func_ctype) ((type)->name) #endif #if PY_VERSION_HEX < 0x030700A2 && !defined(PyThread_tss_create) && !defined(Py_tss_NEEDS_INIT) #include "pythread.h" #define Py_tss_NEEDS_INIT 0 typedef int Py_tss_t; static CYTHON_INLINE int PyThread_tss_create(Py_tss_t *key) { *key = PyThread_create_key(); return 0; } static CYTHON_INLINE Py_tss_t * PyThread_tss_alloc(void) { Py_tss_t *key = (Py_tss_t *)PyObject_Malloc(sizeof(Py_tss_t)); *key = Py_tss_NEEDS_INIT; return key; } static CYTHON_INLINE void PyThread_tss_free(Py_tss_t *key) { PyObject_Free(key); } static CYTHON_INLINE int PyThread_tss_is_created(Py_tss_t *key) { return *key != Py_tss_NEEDS_INIT; } static CYTHON_INLINE void PyThread_tss_delete(Py_tss_t *key) { PyThread_delete_key(*key); *key = Py_tss_NEEDS_INIT; } static CYTHON_INLINE int PyThread_tss_set(Py_tss_t *key, void *value) { return PyThread_set_key_value(*key, value); } static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { return PyThread_get_key_value(*key); } #endif #if PY_MAJOR_VERSION < 3 #if CYTHON_COMPILING_IN_PYPY #if PYPY_VERSION_NUM < 0x07030600 #if defined(__cplusplus) && __cplusplus >= 201402L [[deprecated("`with nogil:` inside a nogil function will not release the GIL in PyPy2 < 7.3.6")]] #elif defined(__GNUC__) || defined(__clang__) __attribute__ ((__deprecated__("`with nogil:` inside a nogil function will not release the GIL in PyPy2 < 7.3.6"))) #elif defined(_MSC_VER) __declspec(deprecated("`with nogil:` inside a nogil function will not release the GIL in PyPy2 < 7.3.6")) #endif static CYTHON_INLINE int PyGILState_Check(void) { return 0; } #else // PYPY_VERSION_NUM < 0x07030600 #endif // PYPY_VERSION_NUM < 0x07030600 #else static CYTHON_INLINE int PyGILState_Check(void) { PyThreadState * tstate = _PyThreadState_Current; return tstate && (tstate == PyGILState_GetThisThreadState()); } #endif #endif #if CYTHON_COMPILING_IN_CPYTHON || defined(_PyDict_NewPresized) #define __Pyx_PyDict_NewPresized(n) ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n)) #else #define __Pyx_PyDict_NewPresized(n) PyDict_New() #endif #if PY_MAJOR_VERSION >= 3 || CYTHON_FUTURE_DIVISION #define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y) #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y) #else #define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y) #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX > 0x030600B4 && CYTHON_USE_UNICODE_INTERNALS #define __Pyx_PyDict_GetItemStrWithError(dict, name) _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash) static CYTHON_INLINE PyObject * __Pyx_PyDict_GetItemStr(PyObject *dict, PyObject *name) { PyObject *res = __Pyx_PyDict_GetItemStrWithError(dict, name); if (res == NULL) PyErr_Clear(); return res; } #elif PY_MAJOR_VERSION >= 3 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07020000) #define __Pyx_PyDict_GetItemStrWithError PyDict_GetItemWithError #define __Pyx_PyDict_GetItemStr PyDict_GetItem #else static CYTHON_INLINE PyObject * __Pyx_PyDict_GetItemStrWithError(PyObject *dict, PyObject *name) { #if CYTHON_COMPILING_IN_PYPY return PyDict_GetItem(dict, name); #else PyDictEntry *ep; PyDictObject *mp = (PyDictObject*) dict; long hash = ((PyStringObject *) name)->ob_shash; assert(hash != -1); ep = (mp->ma_lookup)(mp, name, hash); if (ep == NULL) { return NULL; } return ep->me_value; #endif } #define __Pyx_PyDict_GetItemStr PyDict_GetItem #endif #if CYTHON_USE_TYPE_SLOTS #define __Pyx_PyType_GetFlags(tp) (((PyTypeObject *)tp)->tp_flags) #define __Pyx_PyType_HasFeature(type, feature) ((__Pyx_PyType_GetFlags(type) & (feature)) != 0) #define __Pyx_PyObject_GetIterNextFunc(obj) (Py_TYPE(obj)->tp_iternext) #else #define __Pyx_PyType_GetFlags(tp) (PyType_GetFlags((PyTypeObject *)tp)) #define __Pyx_PyType_HasFeature(type, feature) PyType_HasFeature(type, feature) #define __Pyx_PyObject_GetIterNextFunc(obj) PyIter_Next #endif #if CYTHON_USE_TYPE_SPECS && PY_VERSION_HEX >= 0x03080000 #define __Pyx_PyHeapTypeObject_GC_Del(obj) {\ PyTypeObject *type = Py_TYPE(obj);\ assert(__Pyx_PyType_HasFeature(type, Py_TPFLAGS_HEAPTYPE));\ PyObject_GC_Del(obj);\ Py_DECREF(type);\ } #else #define __Pyx_PyHeapTypeObject_GC_Del(obj) PyObject_GC_Del(obj) #endif #if CYTHON_COMPILING_IN_LIMITED_API #define CYTHON_PEP393_ENABLED 1 #define __Pyx_PyUnicode_READY(op) (0) #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GetLength(u) #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_ReadChar(u, i) #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) ((void)u, 1114111) #define __Pyx_PyUnicode_KIND(u) ((void)u, (0)) #define __Pyx_PyUnicode_DATA(u) ((void*)u) #define __Pyx_PyUnicode_READ(k, d, i) ((void)k, PyUnicode_ReadChar((PyObject*)(d), i)) #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GetLength(u)) #elif PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND) #define CYTHON_PEP393_ENABLED 1 #if defined(PyUnicode_IS_READY) #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ?\ 0 : _PyUnicode_Ready((PyObject *)(op))) #else #define __Pyx_PyUnicode_READY(op) (0) #endif #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u) #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i) #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) PyUnicode_MAX_CHAR_VALUE(u) #define __Pyx_PyUnicode_KIND(u) ((int)PyUnicode_KIND(u)) #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u) #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch) #if defined(PyUnicode_IS_READY) && defined(PyUnicode_GET_SIZE) #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03090000 #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : ((PyCompactUnicodeObject *)(u))->wstr_length)) #else #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u))) #endif #else #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_LENGTH(u)) #endif #else #define CYTHON_PEP393_ENABLED 0 #define PyUnicode_1BYTE_KIND 1 #define PyUnicode_2BYTE_KIND 2 #define PyUnicode_4BYTE_KIND 4 #define __Pyx_PyUnicode_READY(op) (0) #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_SIZE(u) #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i])) #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) ((sizeof(Py_UNICODE) == 2) ? 65535 : 1114111) #define __Pyx_PyUnicode_KIND(u) ((int)sizeof(Py_UNICODE)) #define __Pyx_PyUnicode_DATA(u) ((void*)PyUnicode_AS_UNICODE(u)) #define __Pyx_PyUnicode_READ(k, d, i) ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i])) #define __Pyx_PyUnicode_WRITE(k, d, i, ch) (((void)(k)), ((Py_UNICODE*)d)[i] = ch) #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_SIZE(u)) #endif #if CYTHON_COMPILING_IN_PYPY #define __Pyx_PyUnicode_Concat(a, b) PyNumber_Add(a, b) #define __Pyx_PyUnicode_ConcatSafe(a, b) PyNumber_Add(a, b) #else #define __Pyx_PyUnicode_Concat(a, b) PyUnicode_Concat(a, b) #define __Pyx_PyUnicode_ConcatSafe(a, b) ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\ PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b)) #endif #if CYTHON_COMPILING_IN_PYPY #if !defined(PyUnicode_DecodeUnicodeEscape) #define PyUnicode_DecodeUnicodeEscape(s, size, errors) PyUnicode_Decode(s, size, "unicode_escape", errors) #endif #if !defined(PyUnicode_Contains) || (PY_MAJOR_VERSION == 2 && PYPY_VERSION_NUM < 0x07030500) #undef PyUnicode_Contains #define PyUnicode_Contains(u, s) PySequence_Contains(u, s) #endif #if !defined(PyByteArray_Check) #define PyByteArray_Check(obj) PyObject_TypeCheck(obj, &PyByteArray_Type) #endif #if !defined(PyObject_Format) #define PyObject_Format(obj, fmt) PyObject_CallMethod(obj, "__format__", "O", fmt) #endif #endif #define __Pyx_PyString_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyString_Check(b) && !PyString_CheckExact(b)))) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b)) #define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyUnicode_Check(b) && !PyUnicode_CheckExact(b)))) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b)) #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyString_Format(a, b) PyUnicode_Format(a, b) #else #define __Pyx_PyString_Format(a, b) PyString_Format(a, b) #endif #if PY_MAJOR_VERSION < 3 && !defined(PyObject_ASCII) #define PyObject_ASCII(o) PyObject_Repr(o) #endif #if PY_MAJOR_VERSION >= 3 #define PyBaseString_Type PyUnicode_Type #define PyStringObject PyUnicodeObject #define PyString_Type PyUnicode_Type #define PyString_Check PyUnicode_Check #define PyString_CheckExact PyUnicode_CheckExact #ifndef PyObject_Unicode #define PyObject_Unicode PyObject_Str #endif #endif #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj) #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj) #else #define __Pyx_PyBaseString_Check(obj) (PyString_Check(obj) || PyUnicode_Check(obj)) #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj)) #endif #if CYTHON_COMPILING_IN_CPYTHON #define __Pyx_PySequence_ListKeepNew(obj)\ (likely(PyList_CheckExact(obj) && Py_REFCNT(obj) == 1) ? __Pyx_NewRef(obj) : PySequence_List(obj)) #else #define __Pyx_PySequence_ListKeepNew(obj) PySequence_List(obj) #endif #ifndef PySet_CheckExact #define PySet_CheckExact(obj) __Pyx_IS_TYPE(obj, &PySet_Type) #endif #if PY_VERSION_HEX >= 0x030900A4 #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt) #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size) #else #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt) #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size) #endif #if CYTHON_ASSUME_SAFE_MACROS #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq) #else #define __Pyx_PySequence_SIZE(seq) PySequence_Size(seq) #endif #if PY_MAJOR_VERSION >= 3 #define PyIntObject PyLongObject #define PyInt_Type PyLong_Type #define PyInt_Check(op) PyLong_Check(op) #define PyInt_CheckExact(op) PyLong_CheckExact(op) #define PyInt_FromString PyLong_FromString #define PyInt_FromUnicode PyLong_FromUnicode #define PyInt_FromLong PyLong_FromLong #define PyInt_FromSize_t PyLong_FromSize_t #define PyInt_FromSsize_t PyLong_FromSsize_t #define PyInt_AsLong PyLong_AsLong #define PyInt_AS_LONG PyLong_AS_LONG #define PyInt_AsSsize_t PyLong_AsSsize_t #define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask #define PyNumber_Int PyNumber_Long #endif #if PY_MAJOR_VERSION >= 3 #define PyBoolObject PyLongObject #endif #if PY_MAJOR_VERSION >= 3 && CYTHON_COMPILING_IN_PYPY #ifndef PyUnicode_InternFromString #define PyUnicode_InternFromString(s) PyUnicode_FromString(s) #endif #endif #if PY_VERSION_HEX < 0x030200A4 typedef long Py_hash_t; #define __Pyx_PyInt_FromHash_t PyInt_FromLong #define __Pyx_PyInt_AsHash_t __Pyx_PyIndex_AsHash_t #else #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t #define __Pyx_PyInt_AsHash_t __Pyx_PyIndex_AsSsize_t #endif #if CYTHON_USE_ASYNC_SLOTS #if PY_VERSION_HEX >= 0x030500B1 #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods #define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async) #else #define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved)) #endif #else #define __Pyx_PyType_AsAsync(obj) NULL #endif #ifndef __Pyx_PyAsyncMethodsStruct typedef struct { unaryfunc am_await; unaryfunc am_aiter; unaryfunc am_anext; } __Pyx_PyAsyncMethodsStruct; #endif #if defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS) #define _USE_MATH_DEFINES #endif #include #ifdef NAN #define __PYX_NAN() ((float) NAN) #else static CYTHON_INLINE float __PYX_NAN() { float value; memset(&value, 0xFF, sizeof(value)); return value; } #endif #if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL) #define __Pyx_truncl trunc #else #define __Pyx_truncl truncl #endif #define __PYX_MARK_ERR_POS(f_index, lineno) \ { __pyx_filename = __pyx_f[f_index]; (void)__pyx_filename; __pyx_lineno = lineno; (void)__pyx_lineno; __pyx_clineno = __LINE__; (void)__pyx_clineno; } #define __PYX_ERR(f_index, lineno, Ln_error) \ { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; } #ifndef __PYX_EXTERN_C #ifdef __cplusplus #define __PYX_EXTERN_C extern "C" #else #define __PYX_EXTERN_C extern #endif #endif #define __PYX_HAVE__pdf_toolbox__lib__dia_yolov5__utils__torch_utils #define __PYX_HAVE_API__pdf_toolbox__lib__dia_yolov5__utils__torch_utils /* Early includes */ #ifdef _OPENMP #include #endif /* _OPENMP */ #if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS) #define CYTHON_WITHOUT_ASSERTIONS #endif typedef struct {PyObject **p; const char *s; const Py_ssize_t n; const char* encoding; const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; #define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0 #define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0 #define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT (PY_MAJOR_VERSION >= 3 && __PYX_DEFAULT_STRING_ENCODING_IS_UTF8) #define __PYX_DEFAULT_STRING_ENCODING "" #define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString #define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize #define __Pyx_uchar_cast(c) ((unsigned char)c) #define __Pyx_long_cast(x) ((long)x) #define __Pyx_fits_Py_ssize_t(v, type, is_signed) (\ (sizeof(type) < sizeof(Py_ssize_t)) ||\ (sizeof(type) > sizeof(Py_ssize_t) &&\ likely(v < (type)PY_SSIZE_T_MAX ||\ v == (type)PY_SSIZE_T_MAX) &&\ (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\ v == (type)PY_SSIZE_T_MIN))) ||\ (sizeof(type) == sizeof(Py_ssize_t) &&\ (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\ v == (type)PY_SSIZE_T_MAX))) ) static CYTHON_INLINE int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) { return (size_t) i < (size_t) limit; } #if defined (__cplusplus) && __cplusplus >= 201103L #include #define __Pyx_sst_abs(value) std::abs(value) #elif SIZEOF_INT >= SIZEOF_SIZE_T #define __Pyx_sst_abs(value) abs(value) #elif SIZEOF_LONG >= SIZEOF_SIZE_T #define __Pyx_sst_abs(value) labs(value) #elif defined (_MSC_VER) #define __Pyx_sst_abs(value) ((Py_ssize_t)_abs64(value)) #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #define __Pyx_sst_abs(value) llabs(value) #elif defined (__GNUC__) #define __Pyx_sst_abs(value) __builtin_llabs(value) #else #define __Pyx_sst_abs(value) ((value<0) ? -value : value) #endif static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*); static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length); #define __Pyx_PyByteArray_FromString(s) PyByteArray_FromStringAndSize((const char*)s, strlen((const char*)s)) #define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l) #define __Pyx_PyBytes_FromString PyBytes_FromString #define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*); #if PY_MAJOR_VERSION < 3 #define __Pyx_PyStr_FromString __Pyx_PyBytes_FromString #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize #else #define __Pyx_PyStr_FromString __Pyx_PyUnicode_FromString #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize #endif #define __Pyx_PyBytes_AsWritableString(s) ((char*) PyBytes_AS_STRING(s)) #define __Pyx_PyBytes_AsWritableSString(s) ((signed char*) PyBytes_AS_STRING(s)) #define __Pyx_PyBytes_AsWritableUString(s) ((unsigned char*) PyBytes_AS_STRING(s)) #define __Pyx_PyBytes_AsString(s) ((const char*) PyBytes_AS_STRING(s)) #define __Pyx_PyBytes_AsSString(s) ((const signed char*) PyBytes_AS_STRING(s)) #define __Pyx_PyBytes_AsUString(s) ((const unsigned char*) PyBytes_AS_STRING(s)) #define __Pyx_PyObject_AsWritableString(s) ((char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s)) #define __Pyx_PyObject_AsWritableSString(s) ((signed char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s)) #define __Pyx_PyObject_AsWritableUString(s) ((unsigned char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s)) #define __Pyx_PyObject_AsSString(s) ((const signed char*) __Pyx_PyObject_AsString(s)) #define __Pyx_PyObject_AsUString(s) ((const unsigned char*) __Pyx_PyObject_AsString(s)) #define __Pyx_PyObject_FromCString(s) __Pyx_PyObject_FromString((const char*)s) #define __Pyx_PyBytes_FromCString(s) __Pyx_PyBytes_FromString((const char*)s) #define __Pyx_PyByteArray_FromCString(s) __Pyx_PyByteArray_FromString((const char*)s) #define __Pyx_PyStr_FromCString(s) __Pyx_PyStr_FromString((const char*)s) #define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s) #if CYTHON_COMPILING_IN_LIMITED_API static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const wchar_t *u) { const wchar_t *u_end = u; while (*u_end++) ; return (size_t)(u_end - u - 1); } #else static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u) { const Py_UNICODE *u_end = u; while (*u_end++) ; return (size_t)(u_end - u - 1); } #endif #define __Pyx_PyUnicode_FromUnicode(u) PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u)) #define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode #define __Pyx_PyUnicode_AsUnicode PyUnicode_AsUnicode #define __Pyx_NewRef(obj) (Py_INCREF(obj), obj) #define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None) static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b); static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*); static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject*); static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x); #define __Pyx_PySequence_Tuple(obj)\ (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj)) static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*); static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t); static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject*); #if CYTHON_ASSUME_SAFE_MACROS #define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x)) #else #define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x) #endif #define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x)) #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x)) #else #define __Pyx_PyNumber_Int(x) (PyInt_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Int(x)) #endif #if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII static int __Pyx_sys_getdefaultencoding_not_ascii; static int __Pyx_init_sys_getdefaultencoding_params(void) { PyObject* sys; PyObject* default_encoding = NULL; PyObject* ascii_chars_u = NULL; PyObject* ascii_chars_b = NULL; const char* default_encoding_c; sys = PyImport_ImportModule("sys"); if (!sys) goto bad; default_encoding = PyObject_CallMethod(sys, (char*) "getdefaultencoding", NULL); Py_DECREF(sys); if (!default_encoding) goto bad; default_encoding_c = PyBytes_AsString(default_encoding); if (!default_encoding_c) goto bad; if (strcmp(default_encoding_c, "ascii") == 0) { __Pyx_sys_getdefaultencoding_not_ascii = 0; } else { char ascii_chars[128]; int c; for (c = 0; c < 128; c++) { ascii_chars[c] = c; } __Pyx_sys_getdefaultencoding_not_ascii = 1; ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL); if (!ascii_chars_u) goto bad; ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL); if (!ascii_chars_b || !PyBytes_Check(ascii_chars_b) || memcmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) { PyErr_Format( PyExc_ValueError, "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.", default_encoding_c); goto bad; } Py_DECREF(ascii_chars_u); Py_DECREF(ascii_chars_b); } Py_DECREF(default_encoding); return 0; bad: Py_XDECREF(default_encoding); Py_XDECREF(ascii_chars_u); Py_XDECREF(ascii_chars_b); return -1; } #endif #if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3 #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL) #else #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL) #if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT static char* __PYX_DEFAULT_STRING_ENCODING; static int __Pyx_init_sys_getdefaultencoding_params(void) { PyObject* sys; PyObject* default_encoding = NULL; char* default_encoding_c; sys = PyImport_ImportModule("sys"); if (!sys) goto bad; default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL); Py_DECREF(sys); if (!default_encoding) goto bad; default_encoding_c = PyBytes_AsString(default_encoding); if (!default_encoding_c) goto bad; __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c) + 1); if (!__PYX_DEFAULT_STRING_ENCODING) goto bad; strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c); Py_DECREF(default_encoding); return 0; bad: Py_XDECREF(default_encoding); return -1; } #endif #endif /* Test for GCC > 2.95 */ #if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95))) #define likely(x) __builtin_expect(!!(x), 1) #define unlikely(x) __builtin_expect(!!(x), 0) #else /* !__GNUC__ or GCC < 2.95 */ #define likely(x) (x) #define unlikely(x) (x) #endif /* __GNUC__ */ static CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; } #if !CYTHON_USE_MODULE_STATE static PyObject *__pyx_m = NULL; static PyObject *__pyx_d; static PyObject *__pyx_b; static PyObject *__pyx_cython_runtime = NULL; static PyObject *__pyx_empty_tuple; static PyObject *__pyx_empty_bytes; static PyObject *__pyx_empty_unicode; #endif static int __pyx_lineno; static int __pyx_clineno = 0; static const char * __pyx_cfilenm = __FILE__; static const char *__pyx_filename; /* #### Code section: filename_table ### */ static const char *__pyx_f[] = { "pdf_toolbox\\\\lib\\\\dia_yolov5\\\\utils\\\\torch_utils.py", }; /* #### Code section: utility_code_proto_before_types ### */ /* #### Code section: numeric_typedefs ### */ /* #### Code section: complex_type_declarations ### */ /* #### Code section: type_declarations ### */ /*--- Type declarations ---*/ struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first; struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile; struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr; struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr; struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info; struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr; struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr; struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img; struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr; struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__; struct __pyx_defaults; typedef struct __pyx_defaults __pyx_defaults; struct __pyx_defaults1; typedef struct __pyx_defaults1 __pyx_defaults1; struct __pyx_defaults2; typedef struct __pyx_defaults2 __pyx_defaults2; struct __pyx_defaults { PyObject *__pyx_arg_path; }; struct __pyx_defaults1 { PyObject *__pyx_arg_path; }; struct __pyx_defaults2 { PyObject *__pyx_arg_mclass; }; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":32 * * * @contextmanager # <<<<<<<<<<<<<< * def torch_distributed_zero_first(local_rank: int): * """ */ struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first { PyObject_HEAD PyObject *__pyx_v_local_rank; }; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":107 * * * def profile(input, ops, n=10, device=None): # <<<<<<<<<<<<<< * # YOLOv5 speed/memory/FLOPs profiler * # */ struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile { PyObject_HEAD PyObject *__pyx_v_m; PyObject *__pyx_v_y; }; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":139 * t[1] = time_sync() * try: * _ = (sum(yi.sum() for yi in y) if isinstance(y, list) else y).sum().backward() # <<<<<<<<<<<<<< * t[2] = time_sync() * except Exception as e: # no backward method */ struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr { PyObject_HEAD struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile *__pyx_outer_scope; PyObject *__pyx_v_yi; PyObject *__pyx_t_0; Py_ssize_t __pyx_t_1; PyObject *(*__pyx_t_2)(PyObject *); }; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":149 * s_in = tuple(x.shape) if isinstance(x, torch.Tensor) else 'list' * s_out = tuple(y.shape) if isinstance(y, torch.Tensor) else 'list' * p = sum(list(x.numel() for x in m.parameters())) if isinstance(m, nn.Module) else 0 # parameters # <<<<<<<<<<<<<< * print(f'{p:12}{flops:12.4g}{mem:>14.3f}{tf:14.4g}{tb:14.4g}{str(s_in):>24s}{str(s_out):>24s}') * results.append([p, flops, mem, tf, tb, s_in, s_out]) */ struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr { PyObject_HEAD struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile *__pyx_outer_scope; PyObject *__pyx_v_x; }; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":229 * * * def model_info(model, verbose=False, img_size=640): # <<<<<<<<<<<<<< * # Model information. img_size may be int or list, i.e. img_size=640 or img_size=[640, 320] * n_p = sum(x.numel() for x in model.parameters()) # number parameters */ struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info { PyObject_HEAD PyObject *__pyx_v_model; }; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":231 * def model_info(model, verbose=False, img_size=640): * # Model information. img_size may be int or list, i.e. img_size=640 or img_size=[640, 320] * n_p = sum(x.numel() for x in model.parameters()) # number parameters # <<<<<<<<<<<<<< * n_g = sum(x.numel() for x in model.parameters() if x.requires_grad) # number gradients * if verbose: */ struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr { PyObject_HEAD struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info *__pyx_outer_scope; PyObject *__pyx_v_x; PyObject *__pyx_t_0; Py_ssize_t __pyx_t_1; PyObject *(*__pyx_t_2)(PyObject *); }; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":232 * # Model information. img_size may be int or list, i.e. img_size=640 or img_size=[640, 320] * n_p = sum(x.numel() for x in model.parameters()) # number parameters * n_g = sum(x.numel() for x in model.parameters() if x.requires_grad) # number gradients # <<<<<<<<<<<<<< * if verbose: * print(f"{'layer':>5} {'name':>40} {'gradient':>9} {'parameters':>12} {'shape':>20} {'mu':>10} {'sigma':>10}") */ struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr { PyObject_HEAD struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info *__pyx_outer_scope; PyObject *__pyx_v_x; PyObject *__pyx_t_0; Py_ssize_t __pyx_t_1; PyObject *(*__pyx_t_2)(PyObject *); }; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":253 * * * def scale_img(img, ratio=1.0, same_shape=False, gs=32): # img(16,3,256,416) # <<<<<<<<<<<<<< * # scales img(bs,3,y,x) by ratio constrained to gs-multiple * if ratio == 1.0: */ struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img { PyObject_HEAD PyObject *__pyx_v_gs; PyObject *__pyx_v_h; PyObject *__pyx_v_ratio; PyObject *__pyx_v_w; }; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":262 * img = F.interpolate(img, size=s, mode='bilinear', align_corners=False) # resize * if not same_shape: # pad/crop img * h, w = (math.ceil(x * ratio / gs) * gs for x in (h, w)) # <<<<<<<<<<<<<< * return F.pad(img, [0, w - s[1], 0, h - s[0]], value=0.447) # value = imagenet mean * */ struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr { PyObject_HEAD struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img *__pyx_outer_scope; PyObject *__pyx_v_x; PyObject *__pyx_t_0; Py_ssize_t __pyx_t_1; }; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":308 * """ * * def __init__(self, model, decay=0.9999, updates=0): # <<<<<<<<<<<<<< * # Create EMA * self.ema = deepcopy(de_parallel(model)).eval() # FP32 EMA */ struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__ { PyObject_HEAD PyObject *__pyx_v_decay; }; /* #### Code section: utility_code_proto ### */ /* --- Runtime support code (head) --- */ /* Refnanny.proto */ #ifndef CYTHON_REFNANNY #define CYTHON_REFNANNY 0 #endif #if CYTHON_REFNANNY typedef struct { void (*INCREF)(void*, PyObject*, Py_ssize_t); void (*DECREF)(void*, PyObject*, Py_ssize_t); void (*GOTREF)(void*, PyObject*, Py_ssize_t); void (*GIVEREF)(void*, PyObject*, Py_ssize_t); void* (*SetupContext)(const char*, Py_ssize_t, const char*); void (*FinishContext)(void**); } __Pyx_RefNannyAPIStruct; static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL; static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname); #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL; #ifdef WITH_THREAD #define __Pyx_RefNannySetupContext(name, acquire_gil)\ if (acquire_gil) {\ PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\ __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__));\ PyGILState_Release(__pyx_gilstate_save);\ } else {\ __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__));\ } #define __Pyx_RefNannyFinishContextNogil() {\ PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\ __Pyx_RefNannyFinishContext();\ PyGILState_Release(__pyx_gilstate_save);\ } #else #define __Pyx_RefNannySetupContext(name, acquire_gil)\ __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__)) #define __Pyx_RefNannyFinishContextNogil() __Pyx_RefNannyFinishContext() #endif #define __Pyx_RefNannyFinishContext()\ __Pyx_RefNanny->FinishContext(&__pyx_refnanny) #define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), (__LINE__)) #define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), (__LINE__)) #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), (__LINE__)) #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), (__LINE__)) #define __Pyx_XINCREF(r) do { if((r) == NULL); else {__Pyx_INCREF(r); }} while(0) #define __Pyx_XDECREF(r) do { if((r) == NULL); else {__Pyx_DECREF(r); }} while(0) #define __Pyx_XGOTREF(r) do { if((r) == NULL); else {__Pyx_GOTREF(r); }} while(0) #define __Pyx_XGIVEREF(r) do { if((r) == NULL); else {__Pyx_GIVEREF(r);}} while(0) #else #define __Pyx_RefNannyDeclarations #define __Pyx_RefNannySetupContext(name, acquire_gil) #define __Pyx_RefNannyFinishContextNogil() #define __Pyx_RefNannyFinishContext() #define __Pyx_INCREF(r) Py_INCREF(r) #define __Pyx_DECREF(r) Py_DECREF(r) #define __Pyx_GOTREF(r) #define __Pyx_GIVEREF(r) #define __Pyx_XINCREF(r) Py_XINCREF(r) #define __Pyx_XDECREF(r) Py_XDECREF(r) #define __Pyx_XGOTREF(r) #define __Pyx_XGIVEREF(r) #endif #define __Pyx_Py_XDECREF_SET(r, v) do {\ PyObject *tmp = (PyObject *) r;\ r = v; Py_XDECREF(tmp);\ } while (0) #define __Pyx_XDECREF_SET(r, v) do {\ PyObject *tmp = (PyObject *) r;\ r = v; __Pyx_XDECREF(tmp);\ } while (0) #define __Pyx_DECREF_SET(r, v) do {\ PyObject *tmp = (PyObject *) r;\ r = v; __Pyx_DECREF(tmp);\ } while (0) #define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0) #define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0) /* PyErrExceptionMatches.proto */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err) static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err); #else #define __Pyx_PyErr_ExceptionMatches(err) PyErr_ExceptionMatches(err) #endif /* PyThreadStateGet.proto */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_PyThreadState_declare PyThreadState *__pyx_tstate; #define __Pyx_PyThreadState_assign __pyx_tstate = __Pyx_PyThreadState_Current; #define __Pyx_PyErr_Occurred() __pyx_tstate->curexc_type #else #define __Pyx_PyThreadState_declare #define __Pyx_PyThreadState_assign #define __Pyx_PyErr_Occurred() PyErr_Occurred() #endif /* PyErrFetchRestore.proto */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL) #define __Pyx_ErrRestoreWithState(type, value, tb) __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb) #define __Pyx_ErrFetchWithState(type, value, tb) __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb) #define __Pyx_ErrRestore(type, value, tb) __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb) #define __Pyx_ErrFetch(type, value, tb) __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb) static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); #if CYTHON_COMPILING_IN_CPYTHON #define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL)) #else #define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) #endif #else #define __Pyx_PyErr_Clear() PyErr_Clear() #define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) #define __Pyx_ErrRestoreWithState(type, value, tb) PyErr_Restore(type, value, tb) #define __Pyx_ErrFetchWithState(type, value, tb) PyErr_Fetch(type, value, tb) #define __Pyx_ErrRestoreInState(tstate, type, value, tb) PyErr_Restore(type, value, tb) #define __Pyx_ErrFetchInState(tstate, type, value, tb) PyErr_Fetch(type, value, tb) #define __Pyx_ErrRestore(type, value, tb) PyErr_Restore(type, value, tb) #define __Pyx_ErrFetch(type, value, tb) PyErr_Fetch(type, value, tb) #endif /* PyObjectGetAttrStr.proto */ #if CYTHON_USE_TYPE_SLOTS static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name); #else #define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n) #endif /* PyObjectGetAttrStrNoError.proto */ static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name); /* GetBuiltinName.proto */ static PyObject *__Pyx_GetBuiltinName(PyObject *name); /* TupleAndListFromArray.proto */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyList_FromArray(PyObject *const *src, Py_ssize_t n); static CYTHON_INLINE PyObject* __Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n); #endif /* IncludeStringH.proto */ #include /* BytesEquals.proto */ static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals); /* UnicodeEquals.proto */ static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals); /* fastcall.proto */ #define __Pyx_Arg_VARARGS(args, i) PyTuple_GET_ITEM(args, i) #define __Pyx_NumKwargs_VARARGS(kwds) PyDict_Size(kwds) #define __Pyx_KwValues_VARARGS(args, nargs) NULL #define __Pyx_GetKwValue_VARARGS(kw, kwvalues, s) __Pyx_PyDict_GetItemStrWithError(kw, s) #define __Pyx_KwargsAsDict_VARARGS(kw, kwvalues) PyDict_Copy(kw) #if CYTHON_METH_FASTCALL #define __Pyx_Arg_FASTCALL(args, i) args[i] #define __Pyx_NumKwargs_FASTCALL(kwds) PyTuple_GET_SIZE(kwds) #define __Pyx_KwValues_FASTCALL(args, nargs) (&args[nargs]) static CYTHON_INLINE PyObject * __Pyx_GetKwValue_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues, PyObject *s); #define __Pyx_KwargsAsDict_FASTCALL(kw, kwvalues) _PyStack_AsDict(kwvalues, kw) #else #define __Pyx_Arg_FASTCALL __Pyx_Arg_VARARGS #define __Pyx_NumKwargs_FASTCALL __Pyx_NumKwargs_VARARGS #define __Pyx_KwValues_FASTCALL __Pyx_KwValues_VARARGS #define __Pyx_GetKwValue_FASTCALL __Pyx_GetKwValue_VARARGS #define __Pyx_KwargsAsDict_FASTCALL __Pyx_KwargsAsDict_VARARGS #endif #if CYTHON_COMPILING_IN_CPYTHON #define __Pyx_ArgsSlice_VARARGS(args, start, stop) __Pyx_PyTuple_FromArray(&__Pyx_Arg_VARARGS(args, start), stop - start) #define __Pyx_ArgsSlice_FASTCALL(args, start, stop) __Pyx_PyTuple_FromArray(&__Pyx_Arg_FASTCALL(args, start), stop - start) #else #define __Pyx_ArgsSlice_VARARGS(args, start, stop) PyTuple_GetSlice(args, start, stop) #define __Pyx_ArgsSlice_FASTCALL(args, start, stop) PyTuple_GetSlice(args, start, stop) #endif /* RaiseDoubleKeywords.proto */ static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name); /* ParseKeywords.proto */ static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject *const *kwvalues, PyObject **argnames[], PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args, const char* function_name); /* RaiseArgTupleInvalid.proto */ static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact, Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); /* PyIntCompare.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_NeObjC(PyObject *op1, PyObject *op2, long intval, long inplace); /* PyDictVersioning.proto */ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS #define __PYX_DICT_VERSION_INIT ((PY_UINT64_T) -1) #define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) #define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\ (version_var) = __PYX_GET_DICT_VERSION(dict);\ (cache_var) = (value); #define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\ static PY_UINT64_T __pyx_dict_version = 0;\ static PyObject *__pyx_dict_cached_value = NULL;\ if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\ (VAR) = __pyx_dict_cached_value;\ } else {\ (VAR) = __pyx_dict_cached_value = (LOOKUP);\ __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\ }\ } static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj); static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj); static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version); #else #define __PYX_GET_DICT_VERSION(dict) (0) #define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var) #define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) (VAR) = (LOOKUP); #endif /* GetModuleGlobalName.proto */ #if CYTHON_USE_DICT_VERSIONS #define __Pyx_GetModuleGlobalName(var, name) {\ static PY_UINT64_T __pyx_dict_version = 0;\ static PyObject *__pyx_dict_cached_value = NULL;\ (var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\ (likely(__pyx_dict_cached_value) ? __Pyx_NewRef(__pyx_dict_cached_value) : __Pyx_GetBuiltinName(name)) :\ __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\ } #define __Pyx_GetModuleGlobalNameUncached(var, name) {\ PY_UINT64_T __pyx_dict_version;\ PyObject *__pyx_dict_cached_value;\ (var) = __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\ } static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value); #else #define __Pyx_GetModuleGlobalName(var, name) (var) = __Pyx__GetModuleGlobalName(name) #define __Pyx_GetModuleGlobalNameUncached(var, name) (var) = __Pyx__GetModuleGlobalName(name) static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name); #endif /* PyObjectCall.proto */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw); #else #define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw) #endif /* PyIntCompare.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_EqObjC(PyObject *op1, PyObject *op2, long intval, long inplace); /* GetException.proto */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_GetException(type, value, tb) __Pyx__GetException(__pyx_tstate, type, value, tb) static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); #else static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb); #endif /* pep479.proto */ static void __Pyx_Generator_Replace_StopIteration(int in_async_gen); /* PyFunctionFastCall.proto */ #if CYTHON_FAST_PYCALL #if !CYTHON_VECTORCALL #define __Pyx_PyFunction_FastCall(func, args, nargs)\ __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL) static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs); #endif #define __Pyx_BUILD_ASSERT_EXPR(cond)\ (sizeof(char [1 - 2*!(cond)]) - 1) #ifndef Py_MEMBER_SIZE #define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member) #endif #if !CYTHON_VECTORCALL static size_t __pyx_pyframe_localsplus_offset = 0; #include "frameobject.h" #define __Pxy_PyFrame_Initialize_Offsets()\ ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\ (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus))) #define __Pyx_PyFrame_GetLocalsplus(frame)\ (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset)) #endif // !CYTHON_VECTORCALL #endif /* PyObjectCallMethO.proto */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg); #endif /* PyObjectFastCall.proto */ #define __Pyx_PyObject_FastCall(func, args, nargs) __Pyx_PyObject_FastCallDict(func, args, (size_t)(nargs), NULL) static CYTHON_INLINE PyObject* __Pyx_PyObject_FastCallDict(PyObject *func, PyObject **args, size_t nargs, PyObject *kwargs); /* PyObjectFormatSimple.proto */ #if CYTHON_COMPILING_IN_PYPY #define __Pyx_PyObject_FormatSimple(s, f) (\ likely(PyUnicode_CheckExact(s)) ? (Py_INCREF(s), s) :\ PyObject_Format(s, f)) #elif PY_MAJOR_VERSION < 3 #define __Pyx_PyObject_FormatSimple(s, f) (\ likely(PyUnicode_CheckExact(s)) ? (Py_INCREF(s), s) :\ likely(PyString_CheckExact(s)) ? PyUnicode_FromEncodedObject(s, NULL, "strict") :\ PyObject_Format(s, f)) #elif CYTHON_USE_TYPE_SLOTS #define __Pyx_PyObject_FormatSimple(s, f) (\ likely(PyUnicode_CheckExact(s)) ? (Py_INCREF(s), s) :\ likely(PyLong_CheckExact(s)) ? PyLong_Type.tp_repr(s) :\ likely(PyFloat_CheckExact(s)) ? PyFloat_Type.tp_repr(s) :\ PyObject_Format(s, f)) #else #define __Pyx_PyObject_FormatSimple(s, f) (\ likely(PyUnicode_CheckExact(s)) ? (Py_INCREF(s), s) :\ PyObject_Format(s, f)) #endif /* JoinPyUnicode.proto */ static PyObject* __Pyx_PyUnicode_Join(PyObject* value_tuple, Py_ssize_t value_count, Py_ssize_t result_ulength, Py_UCS4 max_char); /* SliceObject.proto */ static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice( PyObject* obj, Py_ssize_t cstart, Py_ssize_t cstop, PyObject** py_start, PyObject** py_stop, PyObject** py_slice, int has_cstart, int has_cstop, int wraparound); /* GetTopmostException.proto */ #if CYTHON_USE_EXC_INFO_STACK static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate); #endif /* SaveResetException.proto */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_ExceptionSave(type, value, tb) __Pyx__ExceptionSave(__pyx_tstate, type, value, tb) static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); #define __Pyx_ExceptionReset(type, value, tb) __Pyx__ExceptionReset(__pyx_tstate, type, value, tb) static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); #else #define __Pyx_ExceptionSave(type, value, tb) PyErr_GetExcInfo(type, value, tb) #define __Pyx_ExceptionReset(type, value, tb) PyErr_SetExcInfo(type, value, tb) #endif /* FastTypeChecks.proto */ #if CYTHON_COMPILING_IN_CPYTHON #define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type) #define __Pyx_TypeCheck2(obj, type1, type2) __Pyx_IsAnySubtype2(Py_TYPE(obj), (PyTypeObject *)type1, (PyTypeObject *)type2) static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b); static CYTHON_INLINE int __Pyx_IsAnySubtype2(PyTypeObject *cls, PyTypeObject *a, PyTypeObject *b); static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type); static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2); #else #define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type) #define __Pyx_TypeCheck2(obj, type1, type2) (PyObject_TypeCheck(obj, (PyTypeObject *)type1) || PyObject_TypeCheck(obj, (PyTypeObject *)type2)) #define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type) #define __Pyx_PyErr_GivenExceptionMatches2(err, type1, type2) (PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2)) #endif #define __Pyx_PyErr_ExceptionMatches2(err1, err2) __Pyx_PyErr_GivenExceptionMatches2(__Pyx_PyErr_Occurred(), err1, err2) #define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception) /* RaiseException.proto */ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); /* GetItemInt.proto */ #define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound, boundscheck) :\ (is_list ? (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL) :\ __Pyx_GetItemInt_Generic(o, to_py_func(i)))) #define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\ (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL)) static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i, int wraparound, int boundscheck); #define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\ (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL)) static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i, int wraparound, int boundscheck); static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j); static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list, int wraparound, int boundscheck); /* PyObject_Str.proto */ #define __Pyx_PyObject_Str(obj)\ (likely(PyString_CheckExact(obj)) ? __Pyx_NewRef(obj) : PyObject_Str(obj)) /* RaiseUnexpectedTypeError.proto */ static int __Pyx_RaiseUnexpectedTypeError(const char *expected, PyObject *obj); /* PyIntBinop.proto */ #if !CYTHON_COMPILING_IN_PYPY static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check); #else #define __Pyx_PyInt_AddObjC(op1, op2, intval, inplace, zerodivision_check)\ (inplace ? PyNumber_InPlaceAdd(op1, op2) : PyNumber_Add(op1, op2)) #endif /* PyUnicode_Unicode.proto */ static CYTHON_INLINE PyObject* __Pyx_PyUnicode_Unicode(PyObject *obj); /* PyIntBinop.proto */ #if !CYTHON_COMPILING_IN_PYPY static PyObject* __Pyx_PyInt_TrueDivideObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check); #else #define __Pyx_PyInt_TrueDivideObjC(op1, op2, intval, inplace, zerodivision_check)\ (inplace ? PyNumber_InPlaceTrueDivide(op1, op2) : PyNumber_TrueDivide(op1, op2)) #endif /* PyObjectFormat.proto */ #if CYTHON_USE_UNICODE_WRITER static PyObject* __Pyx_PyObject_Format(PyObject* s, PyObject* f); #else #define __Pyx_PyObject_Format(s, f) PyObject_Format(s, f) #endif /* UnicodeConcatInPlace.proto */ # if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3 #if CYTHON_REFNANNY #define __Pyx_PyUnicode_ConcatInPlace(left, right) __Pyx_PyUnicode_ConcatInPlaceImpl(&left, right, __pyx_refnanny) #else #define __Pyx_PyUnicode_ConcatInPlace(left, right) __Pyx_PyUnicode_ConcatInPlaceImpl(&left, right) #endif static CYTHON_INLINE PyObject *__Pyx_PyUnicode_ConcatInPlaceImpl(PyObject **p_left, PyObject *right #if CYTHON_REFNANNY , void* __pyx_refnanny #endif ); #else #define __Pyx_PyUnicode_ConcatInPlace __Pyx_PyUnicode_Concat #endif #define __Pyx_PyUnicode_ConcatInPlaceSafe(left, right) ((unlikely((left) == Py_None) || unlikely((right) == Py_None)) ?\ PyNumber_InPlaceAdd(left, right) : __Pyx_PyUnicode_ConcatInPlace(left, right)) /* UnpackUnboundCMethod.proto */ typedef struct { PyObject *type; PyObject **method_name; PyCFunction func; PyObject *method; int flag; } __Pyx_CachedCFunction; /* CallUnboundCMethod0.proto */ static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self); #if CYTHON_COMPILING_IN_CPYTHON #define __Pyx_CallUnboundCMethod0(cfunc, self)\ (likely((cfunc)->func) ?\ (likely((cfunc)->flag == METH_NOARGS) ? (*((cfunc)->func))(self, NULL) :\ (PY_VERSION_HEX >= 0x030600B1 && likely((cfunc)->flag == METH_FASTCALL) ?\ (PY_VERSION_HEX >= 0x030700A0 ?\ (*(__Pyx_PyCFunctionFast)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0) :\ (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0, NULL)) :\ (PY_VERSION_HEX >= 0x030700A0 && (cfunc)->flag == (METH_FASTCALL | METH_KEYWORDS) ?\ (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0, NULL) :\ (likely((cfunc)->flag == (METH_VARARGS | METH_KEYWORDS)) ? ((*(PyCFunctionWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, __pyx_empty_tuple, NULL)) :\ ((cfunc)->flag == METH_VARARGS ? (*((cfunc)->func))(self, __pyx_empty_tuple) :\ __Pyx__CallUnboundCMethod0(cfunc, self)))))) :\ __Pyx__CallUnboundCMethod0(cfunc, self)) #else #define __Pyx_CallUnboundCMethod0(cfunc, self) __Pyx__CallUnboundCMethod0(cfunc, self) #endif /* RaiseClosureNameError.proto */ static CYTHON_INLINE void __Pyx_RaiseClosureNameError(const char *varname); /* ListCompAppend.proto */ #if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS static CYTHON_INLINE int __Pyx_ListComp_Append(PyObject* list, PyObject* x) { PyListObject* L = (PyListObject*) list; Py_ssize_t len = Py_SIZE(list); if (likely(L->allocated > len)) { Py_INCREF(x); PyList_SET_ITEM(list, len, x); __Pyx_SET_SIZE(list, len + 1); return 0; } return PyList_Append(list, x); } #else #define __Pyx_ListComp_Append(L,x) PyList_Append(L,x) #endif /* PyObjectCallOneArg.proto */ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg); /* PyObjectSetAttrStr.proto */ #if CYTHON_USE_TYPE_SLOTS #define __Pyx_PyObject_DelAttrStr(o,n) __Pyx_PyObject_SetAttrStr(o, n, NULL) static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value); #else #define __Pyx_PyObject_DelAttrStr(o,n) PyObject_DelAttr(o,n) #define __Pyx_PyObject_SetAttrStr(o,n,v) PyObject_SetAttr(o,n,v) #endif /* GetAttr.proto */ static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *, PyObject *); /* HasAttr.proto */ static CYTHON_INLINE int __Pyx_HasAttr(PyObject *, PyObject *); /* PyIntBinop.proto */ #if !CYTHON_COMPILING_IN_PYPY static PyObject* __Pyx_PyInt_MultiplyObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check); #else #define __Pyx_PyInt_MultiplyObjC(op1, op2, intval, inplace, zerodivision_check)\ (inplace ? PyNumber_InPlaceMultiply(op1, op2) : PyNumber_Multiply(op1, op2)) #endif /* PyFloatBinop.proto */ #if !CYTHON_COMPILING_IN_PYPY static PyObject* __Pyx_PyFloat_TrueDivideObjC(PyObject *op1, PyObject *op2, double floatval, int inplace, int zerodivision_check); #else #define __Pyx_PyFloat_TrueDivideObjC(op1, op2, floatval, inplace, zerodivision_check)\ (inplace ? PyNumber_InPlaceTrueDivide(op1, op2) : PyNumber_TrueDivide(op1, op2)) #endif /* SetItemInt.proto */ #define __Pyx_SetItemInt(o, i, v, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ __Pyx_SetItemInt_Fast(o, (Py_ssize_t)i, v, is_list, wraparound, boundscheck) :\ (is_list ? (PyErr_SetString(PyExc_IndexError, "list assignment index out of range"), -1) :\ __Pyx_SetItemInt_Generic(o, to_py_func(i), v))) static int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v); static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v, int is_list, int wraparound, int boundscheck); /* pybytes_as_double.proto */ static double __Pyx_SlowPyString_AsDouble(PyObject *obj); static double __Pyx__PyBytes_AsDouble(PyObject *obj, const char* start, Py_ssize_t length); static CYTHON_INLINE double __Pyx_PyBytes_AsDouble(PyObject *obj) { return __Pyx__PyBytes_AsDouble(obj, PyBytes_AS_STRING(obj), PyBytes_GET_SIZE(obj)); } static CYTHON_INLINE double __Pyx_PyByteArray_AsDouble(PyObject *obj) { return __Pyx__PyBytes_AsDouble(obj, PyByteArray_AS_STRING(obj), PyByteArray_GET_SIZE(obj)); } /* pyunicode_as_double.proto */ #if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY static const char* __Pyx__PyUnicode_AsDouble_Copy(const void* data, const int kind, char* buffer, Py_ssize_t start, Py_ssize_t end) { int last_was_punctuation; Py_ssize_t i; last_was_punctuation = 1; for (i=start; i <= end; i++) { Py_UCS4 chr = PyUnicode_READ(kind, data, i); int is_punctuation = (chr == '_') | (chr == '.'); *buffer = (char)chr; buffer += (chr != '_'); if (unlikely(chr > 127)) goto parse_failure; if (unlikely(last_was_punctuation & is_punctuation)) goto parse_failure; last_was_punctuation = is_punctuation; } if (unlikely(last_was_punctuation)) goto parse_failure; *buffer = '\0'; return buffer; parse_failure: return NULL; } static double __Pyx__PyUnicode_AsDouble_inf_nan(const void* data, int kind, Py_ssize_t start, Py_ssize_t length) { int matches = 1; Py_UCS4 chr; Py_UCS4 sign = PyUnicode_READ(kind, data, start); int is_signed = (sign == '-') | (sign == '+'); start += is_signed; length -= is_signed; switch (PyUnicode_READ(kind, data, start)) { #ifdef Py_NAN case 'n': case 'N': if (unlikely(length != 3)) goto parse_failure; chr = PyUnicode_READ(kind, data, start+1); matches &= (chr == 'a') | (chr == 'A'); chr = PyUnicode_READ(kind, data, start+2); matches &= (chr == 'n') | (chr == 'N'); if (unlikely(!matches)) goto parse_failure; return (sign == '-') ? -Py_NAN : Py_NAN; #endif case 'i': case 'I': if (unlikely(length < 3)) goto parse_failure; chr = PyUnicode_READ(kind, data, start+1); matches &= (chr == 'n') | (chr == 'N'); chr = PyUnicode_READ(kind, data, start+2); matches &= (chr == 'f') | (chr == 'F'); if (likely(length == 3 && matches)) return (sign == '-') ? -Py_HUGE_VAL : Py_HUGE_VAL; if (unlikely(length != 8)) goto parse_failure; chr = PyUnicode_READ(kind, data, start+3); matches &= (chr == 'i') | (chr == 'I'); chr = PyUnicode_READ(kind, data, start+4); matches &= (chr == 'n') | (chr == 'N'); chr = PyUnicode_READ(kind, data, start+5); matches &= (chr == 'i') | (chr == 'I'); chr = PyUnicode_READ(kind, data, start+6); matches &= (chr == 't') | (chr == 'T'); chr = PyUnicode_READ(kind, data, start+7); matches &= (chr == 'y') | (chr == 'Y'); if (unlikely(!matches)) goto parse_failure; return (sign == '-') ? -Py_HUGE_VAL : Py_HUGE_VAL; case '.': case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': break; default: goto parse_failure; } return 0.0; parse_failure: return -1.0; } static double __Pyx_PyUnicode_AsDouble_WithSpaces(PyObject *obj) { double value; const char *last; char *end; Py_ssize_t start, length = PyUnicode_GET_LENGTH(obj); const int kind = PyUnicode_KIND(obj); const void* data = PyUnicode_DATA(obj); start = 0; while (Py_UNICODE_ISSPACE(PyUnicode_READ(kind, data, start))) start++; while (start < length - 1 && Py_UNICODE_ISSPACE(PyUnicode_READ(kind, data, length - 1))) length--; length -= start; if (unlikely(length <= 0)) goto fallback; value = __Pyx__PyUnicode_AsDouble_inf_nan(data, kind, start, length); if (unlikely(value == -1.0)) goto fallback; if (value != 0.0) return value; if (length < 40) { char number[40]; last = __Pyx__PyUnicode_AsDouble_Copy(data, kind, number, start, start + length); if (unlikely(!last)) goto fallback; value = PyOS_string_to_double(number, &end, NULL); } else { char *number = (char*) PyMem_Malloc((length + 1) * sizeof(char)); if (unlikely(!number)) goto fallback; last = __Pyx__PyUnicode_AsDouble_Copy(data, kind, number, start, start + length); if (unlikely(!last)) { PyMem_Free(number); goto fallback; } value = PyOS_string_to_double(number, &end, NULL); PyMem_Free(number); } if (likely(end == last) || (value == (double)-1 && PyErr_Occurred())) { return value; } fallback: return __Pyx_SlowPyString_AsDouble(obj); } #endif static CYTHON_INLINE double __Pyx_PyUnicode_AsDouble(PyObject *obj) { #if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY if (unlikely(__Pyx_PyUnicode_READY(obj) == -1)) return (double)-1; if (likely(PyUnicode_IS_ASCII(obj))) { const char *s; Py_ssize_t length; s = PyUnicode_AsUTF8AndSize(obj, &length); return __Pyx__PyBytes_AsDouble(obj, s, length); } return __Pyx_PyUnicode_AsDouble_WithSpaces(obj); #else return __Pyx_SlowPyString_AsDouble(obj); #endif } /* SwapException.proto */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_ExceptionSwap(type, value, tb) __Pyx__ExceptionSwap(__pyx_tstate, type, value, tb) static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); #else static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb); #endif /* RaiseUnboundLocalError.proto */ static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname); /* ListAppend.proto */ #if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) { PyListObject* L = (PyListObject*) list; Py_ssize_t len = Py_SIZE(list); if (likely(L->allocated > len) & likely(len > (L->allocated >> 1))) { Py_INCREF(x); PyList_SET_ITEM(list, len, x); __Pyx_SET_SIZE(list, len + 1); return 0; } return PyList_Append(list, x); } #else #define __Pyx_PyList_Append(L,x) PyList_Append(L,x) #endif /* Import.proto */ static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level); /* ImportDottedModule.proto */ static PyObject *__Pyx_ImportDottedModule(PyObject *name, PyObject *parts_tuple); /* RaiseTooManyValuesToUnpack.proto */ static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected); /* RaiseNeedMoreValuesToUnpack.proto */ static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index); /* IterFinish.proto */ static CYTHON_INLINE int __Pyx_IterFinish(void); /* UnpackItemEndCheck.proto */ static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected); /* ImportFrom.proto */ static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name); /* IterNext.proto */ #define __Pyx_PyIter_Next(obj) __Pyx_PyIter_Next2(obj, NULL) static CYTHON_INLINE PyObject *__Pyx_PyIter_Next2(PyObject *, PyObject *); /* GCCDiagnostics.proto */ #if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) #define __Pyx_HAS_GCC_DIAGNOSTIC #endif /* BuildPyUnicode.proto */ static PyObject* __Pyx_PyUnicode_BuildFromAscii(Py_ssize_t ulength, char* chars, int clength, int prepend_sign, char padding_char); /* CIntToPyUnicode.proto */ static CYTHON_INLINE PyObject* __Pyx_PyUnicode_From_Py_ssize_t(Py_ssize_t value, Py_ssize_t width, char padding_char, char format_char); /* PyFloatBinop.proto */ #if !CYTHON_COMPILING_IN_PYPY static PyObject* __Pyx_PyFloat_EqObjC(PyObject *op1, PyObject *op2, double floatval, int inplace, int zerodivision_check); #else #define __Pyx_PyFloat_EqObjC(op1, op2, floatval, inplace, zerodivision_check)\ (PyObject_RichCompare(op1, op2, Py_EQ)) #endif /* PyObjectCallNoArg.proto */ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func); /* PyObjectGetMethod.proto */ static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method); /* PyObjectCallMethod0.proto */ static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name); /* RaiseNoneIterError.proto */ static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void); /* UnpackTupleError.proto */ static void __Pyx_UnpackTupleError(PyObject *, Py_ssize_t index); /* UnpackTuple2.proto */ #define __Pyx_unpack_tuple2(tuple, value1, value2, is_tuple, has_known_size, decref_tuple)\ (likely(is_tuple || PyTuple_Check(tuple)) ?\ (likely(has_known_size || PyTuple_GET_SIZE(tuple) == 2) ?\ __Pyx_unpack_tuple2_exact(tuple, value1, value2, decref_tuple) :\ (__Pyx_UnpackTupleError(tuple, 2), -1)) :\ __Pyx_unpack_tuple2_generic(tuple, value1, value2, has_known_size, decref_tuple)) static CYTHON_INLINE int __Pyx_unpack_tuple2_exact( PyObject* tuple, PyObject** value1, PyObject** value2, int decref_tuple); static int __Pyx_unpack_tuple2_generic( PyObject* tuple, PyObject** value1, PyObject** value2, int has_known_size, int decref_tuple); /* dict_iter.proto */ static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* dict, int is_dict, PyObject* method_name, Py_ssize_t* p_orig_length, int* p_is_dict); static CYTHON_INLINE int __Pyx_dict_iter_next(PyObject* dict_or_iter, Py_ssize_t orig_length, Py_ssize_t* ppos, PyObject** pkey, PyObject** pvalue, PyObject** pitem, int is_dict); /* PySequenceContains.proto */ static CYTHON_INLINE int __Pyx_PySequence_ContainsTF(PyObject* item, PyObject* seq, int eq) { int result = PySequence_Contains(seq, item); return unlikely(result < 0) ? result : (result == (eq == Py_EQ)); } /* PyIntBinop.proto */ #if !CYTHON_COMPILING_IN_PYPY static PyObject* __Pyx_PyInt_SubtractObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check); #else #define __Pyx_PyInt_SubtractObjC(op1, op2, intval, inplace, zerodivision_check)\ (inplace ? PyNumber_InPlaceSubtract(op1, op2) : PyNumber_Subtract(op1, op2)) #endif /* PyIntBinop.proto */ #if !CYTHON_COMPILING_IN_PYPY static PyObject* __Pyx_PyInt_SubtractCObj(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check); #else #define __Pyx_PyInt_SubtractCObj(op1, op2, intval, inplace, zerodivision_check)\ (inplace ? PyNumber_InPlaceSubtract(op1, op2) : PyNumber_Subtract(op1, op2)) #endif /* IncludeStructmemberH.proto */ #include /* FixUpExtensionType.proto */ #if CYTHON_USE_TYPE_SPECS static int __Pyx_fix_up_extension_type_from_spec(PyType_Spec *spec, PyTypeObject *type); #endif /* FetchCommonType.proto */ #if !CYTHON_USE_TYPE_SPECS static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type); #else static PyTypeObject* __Pyx_FetchCommonTypeFromSpec(PyObject *module, PyType_Spec *spec, PyObject *bases); #endif /* PyMethodNew.proto */ #if PY_MAJOR_VERSION >= 3 static PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ) { CYTHON_UNUSED_VAR(typ); if (!self) return __Pyx_NewRef(func); return PyMethod_New(func, self); } #else #define __Pyx_PyMethod_New PyMethod_New #endif /* PyVectorcallFastCallDict.proto */ #if CYTHON_METH_FASTCALL static CYTHON_INLINE PyObject *__Pyx_PyVectorcall_FastCallDict(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw); #endif /* CythonFunctionShared.proto */ #define __Pyx_CyFunction_USED #define __Pyx_CYFUNCTION_STATICMETHOD 0x01 #define __Pyx_CYFUNCTION_CLASSMETHOD 0x02 #define __Pyx_CYFUNCTION_CCLASS 0x04 #define __Pyx_CYFUNCTION_COROUTINE 0x08 #define __Pyx_CyFunction_GetClosure(f)\ (((__pyx_CyFunctionObject *) (f))->func_closure) #if PY_VERSION_HEX < 0x030900B1 #define __Pyx_CyFunction_GetClassObj(f)\ (((__pyx_CyFunctionObject *) (f))->func_classobj) #else #define __Pyx_CyFunction_GetClassObj(f)\ ((PyObject*) ((PyCMethodObject *) (f))->mm_class) #endif #define __Pyx_CyFunction_SetClassObj(f, classobj)\ __Pyx__CyFunction_SetClassObj((__pyx_CyFunctionObject *) (f), (classobj)) #define __Pyx_CyFunction_Defaults(type, f)\ ((type *)(((__pyx_CyFunctionObject *) (f))->defaults)) #define __Pyx_CyFunction_SetDefaultsGetter(f, g)\ ((__pyx_CyFunctionObject *) (f))->defaults_getter = (g) typedef struct { #if PY_VERSION_HEX < 0x030900B1 PyCFunctionObject func; #else PyCMethodObject func; #endif #if CYTHON_BACKPORT_VECTORCALL __pyx_vectorcallfunc func_vectorcall; #endif #if PY_VERSION_HEX < 0x030500A0 PyObject *func_weakreflist; #endif PyObject *func_dict; PyObject *func_name; PyObject *func_qualname; PyObject *func_doc; PyObject *func_globals; PyObject *func_code; PyObject *func_closure; #if PY_VERSION_HEX < 0x030900B1 PyObject *func_classobj; #endif void *defaults; int defaults_pyobjects; size_t defaults_size; // used by FusedFunction for copying defaults int flags; PyObject *defaults_tuple; PyObject *defaults_kwdict; PyObject *(*defaults_getter)(PyObject *); PyObject *func_annotations; PyObject *func_is_coroutine; } __pyx_CyFunctionObject; #if !CYTHON_USE_MODULE_STATE static PyTypeObject *__pyx_CyFunctionType = 0; #endif #define __Pyx_CyFunction_Check(obj) __Pyx_TypeCheck(obj, __pyx_CyFunctionType) #define __Pyx_IsCyOrPyCFunction(obj) __Pyx_TypeCheck2(obj, __pyx_CyFunctionType, &PyCFunction_Type) #define __Pyx_CyFunction_CheckExact(obj) __Pyx_IS_TYPE(obj, __pyx_CyFunctionType) static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject* op, PyMethodDef *ml, int flags, PyObject* qualname, PyObject *closure, PyObject *module, PyObject *globals, PyObject* code); static CYTHON_INLINE void __Pyx__CyFunction_SetClassObj(__pyx_CyFunctionObject* f, PyObject* classobj); static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *m, size_t size, int pyobjects); static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *m, PyObject *tuple); static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *m, PyObject *dict); static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *m, PyObject *dict); static int __pyx_CyFunction_init(PyObject *module); #if CYTHON_METH_FASTCALL static PyObject * __Pyx_CyFunction_Vectorcall_NOARGS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames); static PyObject * __Pyx_CyFunction_Vectorcall_O(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames); static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames); static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames); #if CYTHON_BACKPORT_VECTORCALL #define __Pyx_CyFunction_func_vectorcall(f) (((__pyx_CyFunctionObject*)f)->func_vectorcall) #else #define __Pyx_CyFunction_func_vectorcall(f) (((PyCFunctionObject*)f)->vectorcall) #endif #endif /* CythonFunction.proto */ static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml, int flags, PyObject* qualname, PyObject *closure, PyObject *module, PyObject *globals, PyObject* code); /* PyObjectLookupSpecial.proto */ #if CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS #define __Pyx_PyObject_LookupSpecialNoError(obj, attr_name) __Pyx__PyObject_LookupSpecial(obj, attr_name, 0) #define __Pyx_PyObject_LookupSpecial(obj, attr_name) __Pyx__PyObject_LookupSpecial(obj, attr_name, 1) static CYTHON_INLINE PyObject* __Pyx__PyObject_LookupSpecial(PyObject* obj, PyObject* attr_name, int with_error); #else #define __Pyx_PyObject_LookupSpecialNoError(o,n) __Pyx_PyObject_GetAttrStrNoError(o,n) #define __Pyx_PyObject_LookupSpecial(o,n) __Pyx_PyObject_GetAttrStr(o,n) #endif /* ObjectGetItem.proto */ #if CYTHON_USE_TYPE_SLOTS static CYTHON_INLINE PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject *key); #else #define __Pyx_PyObject_GetItem(obj, key) PyObject_GetItem(obj, key) #endif /* ValidateBasesTuple.proto */ #if CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_USE_TYPE_SPECS static int __Pyx_validate_bases_tuple(const char *type_name, Py_ssize_t dictoffset, PyObject *bases); #endif /* PyType_Ready.proto */ static CYTHON_UNUSED int __Pyx_PyType_Ready(PyTypeObject *t); /* PyObject_GenericGetAttrNoDict.proto */ #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name); #else #define __Pyx_PyObject_GenericGetAttrNoDict PyObject_GenericGetAttr #endif /* SetNameInClass.proto */ #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 #define __Pyx_SetNameInClass(ns, name, value)\ (likely(PyDict_CheckExact(ns)) ? _PyDict_SetItem_KnownHash(ns, name, value, ((PyASCIIObject *) name)->hash) : PyObject_SetItem(ns, name, value)) #elif CYTHON_COMPILING_IN_CPYTHON #define __Pyx_SetNameInClass(ns, name, value)\ (likely(PyDict_CheckExact(ns)) ? PyDict_SetItem(ns, name, value) : PyObject_SetItem(ns, name, value)) #else #define __Pyx_SetNameInClass(ns, name, value) PyObject_SetItem(ns, name, value) #endif /* CalculateMetaclass.proto */ static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases); /* PyObjectCall2Args.proto */ static CYTHON_INLINE PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2); /* Py3ClassCreate.proto */ static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name, PyObject *qualname, PyObject *mkw, PyObject *modname, PyObject *doc); static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases, PyObject *dict, PyObject *mkw, int calculate_metaclass, int allow_py2_metaclass); /* CLineInTraceback.proto */ #ifdef CYTHON_CLINE_IN_TRACEBACK #define __Pyx_CLineForTraceback(tstate, c_line) (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0) #else static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line); #endif /* CodeObjectCache.proto */ #if !CYTHON_COMPILING_IN_LIMITED_API typedef struct { PyCodeObject* code_object; int code_line; } __Pyx_CodeObjectCacheEntry; struct __Pyx_CodeObjectCache { int count; int max_count; __Pyx_CodeObjectCacheEntry* entries; }; static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL}; static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line); static PyCodeObject *__pyx_find_code_object(int code_line); static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object); #endif /* AddTraceback.proto */ static void __Pyx_AddTraceback(const char *funcname, int c_line, int py_line, const char *filename); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); /* FormatTypeName.proto */ #if CYTHON_COMPILING_IN_LIMITED_API typedef PyObject *__Pyx_TypeName; #define __Pyx_FMT_TYPENAME "%U" static __Pyx_TypeName __Pyx_PyType_GetName(PyTypeObject* tp); #define __Pyx_DECREF_TypeName(obj) Py_XDECREF(obj) #else typedef const char *__Pyx_TypeName; #define __Pyx_FMT_TYPENAME "%.200s" #define __Pyx_PyType_GetName(tp) ((tp)->tp_name) #define __Pyx_DECREF_TypeName(obj) #endif /* CIntFromPy.proto */ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); /* CIntFromPy.proto */ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); /* PyObjectCallMethod1.proto */ static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg); /* CoroutineBase.proto */ struct __pyx_CoroutineObject; typedef PyObject *(*__pyx_coroutine_body_t)(struct __pyx_CoroutineObject *, PyThreadState *, PyObject *); #if CYTHON_USE_EXC_INFO_STACK #define __Pyx_ExcInfoStruct _PyErr_StackItem #else typedef struct { PyObject *exc_type; PyObject *exc_value; PyObject *exc_traceback; } __Pyx_ExcInfoStruct; #endif typedef struct __pyx_CoroutineObject { PyObject_HEAD __pyx_coroutine_body_t body; PyObject *closure; __Pyx_ExcInfoStruct gi_exc_state; PyObject *gi_weakreflist; PyObject *classobj; PyObject *yieldfrom; PyObject *gi_name; PyObject *gi_qualname; PyObject *gi_modulename; PyObject *gi_code; PyObject *gi_frame; int resume_label; char is_running; } __pyx_CoroutineObject; static __pyx_CoroutineObject *__Pyx__Coroutine_New( PyTypeObject *type, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure, PyObject *name, PyObject *qualname, PyObject *module_name); static __pyx_CoroutineObject *__Pyx__Coroutine_NewInit( __pyx_CoroutineObject *gen, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure, PyObject *name, PyObject *qualname, PyObject *module_name); static CYTHON_INLINE void __Pyx_Coroutine_ExceptionClear(__Pyx_ExcInfoStruct *self); static int __Pyx_Coroutine_clear(PyObject *self); static PyObject *__Pyx_Coroutine_Send(PyObject *self, PyObject *value); static PyObject *__Pyx_Coroutine_Close(PyObject *self); static PyObject *__Pyx_Coroutine_Throw(PyObject *gen, PyObject *args); #if CYTHON_USE_EXC_INFO_STACK #define __Pyx_Coroutine_SwapException(self) #define __Pyx_Coroutine_ResetAndClearException(self) __Pyx_Coroutine_ExceptionClear(&(self)->gi_exc_state) #else #define __Pyx_Coroutine_SwapException(self) {\ __Pyx_ExceptionSwap(&(self)->gi_exc_state.exc_type, &(self)->gi_exc_state.exc_value, &(self)->gi_exc_state.exc_traceback);\ __Pyx_Coroutine_ResetFrameBackpointer(&(self)->gi_exc_state);\ } #define __Pyx_Coroutine_ResetAndClearException(self) {\ __Pyx_ExceptionReset((self)->gi_exc_state.exc_type, (self)->gi_exc_state.exc_value, (self)->gi_exc_state.exc_traceback);\ (self)->gi_exc_state.exc_type = (self)->gi_exc_state.exc_value = (self)->gi_exc_state.exc_traceback = NULL;\ } #endif #if CYTHON_FAST_THREAD_STATE #define __Pyx_PyGen_FetchStopIterationValue(pvalue)\ __Pyx_PyGen__FetchStopIterationValue(__pyx_tstate, pvalue) #else #define __Pyx_PyGen_FetchStopIterationValue(pvalue)\ __Pyx_PyGen__FetchStopIterationValue(__Pyx_PyThreadState_Current, pvalue) #endif static int __Pyx_PyGen__FetchStopIterationValue(PyThreadState *tstate, PyObject **pvalue); static CYTHON_INLINE void __Pyx_Coroutine_ResetFrameBackpointer(__Pyx_ExcInfoStruct *exc_state); /* PatchModuleWithCoroutine.proto */ static PyObject* __Pyx_Coroutine_patch_module(PyObject* module, const char* py_code); /* PatchGeneratorABC.proto */ static int __Pyx_patch_abc(void); /* Generator.proto */ #define __Pyx_Generator_USED static PyTypeObject *__pyx_GeneratorType = 0; #define __Pyx_Generator_CheckExact(obj) __Pyx_IS_TYPE(obj, __pyx_GeneratorType) #define __Pyx_Generator_New(body, code, closure, name, qualname, module_name)\ __Pyx__Coroutine_New(__pyx_GeneratorType, body, code, closure, name, qualname, module_name) static PyObject *__Pyx_Generator_Next(PyObject *self); static int __pyx_Generator_init(PyObject *module); /* CheckBinaryVersion.proto */ static int __Pyx_check_binary_version(void); /* InitStrings.proto */ #if CYTHON_COMPILING_IN_LIMITED_API static int __Pyx_InitString(__Pyx_StringTabEntry t, PyObject **str); #else static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); #endif /* #### Code section: module_declarations ### */ /* Module declarations from "pdf_toolbox.lib.dia_yolov5.utils.torch_utils" */ #if !CYTHON_USE_MODULE_STATE static PyTypeObject *__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first = 0; static PyTypeObject *__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile = 0; static PyTypeObject *__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr = 0; static PyTypeObject *__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr = 0; static PyTypeObject *__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info = 0; static PyTypeObject *__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr = 0; static PyTypeObject *__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr = 0; static PyTypeObject *__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img = 0; static PyTypeObject *__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr = 0; static PyTypeObject *__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__ = 0; #endif /* #### Code section: typeinfo ### */ /* #### Code section: before_global_var ### */ #define __Pyx_MODULE_NAME "pdf_toolbox.lib.dia_yolov5.utils.torch_utils" extern int __pyx_module_is_main_pdf_toolbox__lib__dia_yolov5__utils__torch_utils; int __pyx_module_is_main_pdf_toolbox__lib__dia_yolov5__utils__torch_utils = 0; /* Implementation of "pdf_toolbox.lib.dia_yolov5.utils.torch_utils" */ /* #### Code section: global_var ### */ static PyObject *__pyx_builtin_ImportError; static PyObject *__pyx_builtin_AssertionError; static PyObject *__pyx_builtin_enumerate; static PyObject *__pyx_builtin_print; static PyObject *__pyx_builtin_range; static PyObject *__pyx_builtin_sum; /* #### Code section: string_decls ### */ static const char __pyx_k_0[] = "0"; static const char __pyx_k_1[] = "-1"; static const char __pyx_k_5[] = ">5"; static const char __pyx_k_9[] = ">9"; static const char __pyx_k_F[] = "F"; static const char __pyx_k_a[] = "a"; static const char __pyx_k_b[] = "b"; static const char __pyx_k_d[] = "d"; static const char __pyx_k_e[] = "e"; static const char __pyx_k_h[] = "h"; static const char __pyx_k_i[] = "i"; static const char __pyx_k_k[] = "k"; static const char __pyx_k_m[] = "m"; static const char __pyx_k_n[] = "n"; static const char __pyx_k_p[] = "p"; static const char __pyx_k_s[] = "s"; static const char __pyx_k_t[] = "t"; static const char __pyx_k_v[] = "v"; static const char __pyx_k_w[] = "w"; static const char __pyx_k_x[] = "x"; static const char __pyx_k_y[] = "y"; static const char __pyx_k_0f[] = ".0f"; static const char __pyx_k_10[] = ">10"; static const char __pyx_k_12[] = "12"; static const char __pyx_k_20[] = ">20"; static const char __pyx_k_40[] = ">40"; static const char __pyx_k__2[] = "-"; static const char __pyx_k__4[] = ""; static const char __pyx_k__5[] = " "; static const char __pyx_k__7[] = ","; static const char __pyx_k__9[] = " ("; static const char __pyx_k_bn[] = "bn"; static const char __pyx_k_ch[] = "ch"; static const char __pyx_k_fs[] = "fs"; static const char __pyx_k_gc[] = "gc"; static const char __pyx_k_gs[] = "gs"; static const char __pyx_k_mm[] = "mm"; static const char __pyx_k_mu[] = "mu"; static const char __pyx_k_nn[] = "nn"; static const char __pyx_k_os[] = "os"; static const char __pyx_k_tb[] = "tb"; static const char __pyx_k_tf[] = "tf"; static const char __pyx_k_to[] = "to"; static const char __pyx_k_12s[] = ">12s"; static const char __pyx_k_14s[] = ">14s"; static const char __pyx_k_24s[] = ">24s"; static const char __pyx_k_CPU[] = "CPU\n"; static const char __pyx_k_MiB[] = "MiB)\n"; static const char __pyx_k__10[] = ", "; static const char __pyx_k__13[] = "*"; static const char __pyx_k__17[] = "."; static const char __pyx_k__20[] = "_"; static const char __pyx_k__76[] = "?"; static const char __pyx_k_cmd[] = "cmd"; static const char __pyx_k_cpu[] = "cpu"; static const char __pyx_k_day[] = "day"; static const char __pyx_k_div[] = "div"; static const char __pyx_k_doc[] = "__doc__"; static const char __pyx_k_ema[] = "ema"; static const char __pyx_k_end[] = "end"; static const char __pyx_k_eps[] = "eps"; static const char __pyx_k_exp[] = "exp"; static const char __pyx_k_get[] = "get"; static const char __pyx_k_img[] = "img"; static const char __pyx_k_inf[] = "inf"; static const char __pyx_k_int[] = "int"; static const char __pyx_k_max[] = "max"; static const char __pyx_k_mem[] = "mem"; static const char __pyx_k_msd[] = "msd"; static const char __pyx_k_mul[] = "mul"; static const char __pyx_k_n_g[] = "n_g"; static const char __pyx_k_n_p[] = "n_p"; static const char __pyx_k_nan[] = "nan"; static const char __pyx_k_ops[] = "ops"; static const char __pyx_k_pad[] = "pad"; static const char __pyx_k_run[] = "run"; static const char __pyx_k_std[] = "std"; static const char __pyx_k_sum[] = "sum"; static const char __pyx_k_sys[] = "sys"; static const char __pyx_k_12_2[] = ">12"; static const char __pyx_k_CUDA[] = "CUDA:"; static const char __pyx_k_None[] = "None"; static const char __pyx_k_Path[] = "Path"; static const char __pyx_k_ReLU[] = "ReLU"; static const char __pyx_k_SiLU[] = "SiLU"; static const char __pyx_k_args[] = "args"; static const char __pyx_k_b_bn[] = "b_bn"; static const char __pyx_k_bias[] = "bias"; static const char __pyx_k_call[] = "__call__"; static const char __pyx_k_ceil[] = "ceil"; static const char __pyx_k_conv[] = "conv"; static const char __pyx_k_copy[] = "copy_"; static const char __pyx_k_cuda[] = "cuda:"; static const char __pyx_k_diag[] = "diag"; static const char __pyx_k_dict[] = "__dict__"; static const char __pyx_k_dist[] = "dist"; static const char __pyx_k_eval[] = "eval"; static const char __pyx_k_exit[] = "__exit__"; static const char __pyx_k_file[] = "__file__"; static const char __pyx_k_half[] = "half"; static const char __pyx_k_info[] = "info"; static const char __pyx_k_init[] = "__init__"; static const char __pyx_k_list[] = "list"; static const char __pyx_k_main[] = "__main__"; static const char __pyx_k_math[] = "math"; static const char __pyx_k_mean[] = "mean"; static const char __pyx_k_mode[] = "mode"; static const char __pyx_k_name[] = "name"; static const char __pyx_k_path[] = "path"; static const char __pyx_k_s_in[] = "s_in"; static const char __pyx_k_self[] = "self"; static const char __pyx_k_send[] = "send"; static const char __pyx_k_size[] = "size"; static const char __pyx_k_spec[] = "__spec__"; static const char __pyx_k_sqrt[] = "sqrt"; static const char __pyx_k_stat[] = "stat"; static const char __pyx_k_stop[] = "stop"; static const char __pyx_k_test[] = "__test__"; static const char __pyx_k_thop[] = "thop"; static const char __pyx_k_time[] = "time"; static const char __pyx_k_view[] = "view"; static const char __pyx_k_w_bn[] = "w_bn"; static const char __pyx_k_yaml[] = "yaml"; static const char __pyx_k_year[] = "year"; static const char __pyx_k_12_4g[] = "12.4g"; static const char __pyx_k_14_3f[] = ">14.3f"; static const char __pyx_k_14_4g[] = "14.4g"; static const char __pyx_k_Linux[] = "Linux"; static const char __pyx_k_ReLU6[] = "ReLU6"; static const char __pyx_k_ascii[] = "ascii"; static const char __pyx_k_check[] = "check"; static const char __pyx_k_clone[] = "clone"; static const char __pyx_k_close[] = "close"; static const char __pyx_k_decay[] = "decay"; static const char __pyx_k_delta[] = "delta"; static const char __pyx_k_dtype[] = "dtype"; static const char __pyx_k_enter[] = "__enter__"; static const char __pyx_k_epoch[] = "epoch"; static const char __pyx_k_flops[] = "flops"; static const char __pyx_k_git_C[] = "git -C "; static const char __pyx_k_input[] = "input"; static const char __pyx_k_items[] = "items"; static const char __pyx_k_layer[] = "layer"; static const char __pyx_k_lower[] = "lower"; static const char __pyx_k_model[] = "model"; static const char __pyx_k_month[] = "month"; static const char __pyx_k_numel[] = "numel"; static const char __pyx_k_print[] = "print"; static const char __pyx_k_prune[] = "prune"; static const char __pyx_k_range[] = "range"; static const char __pyx_k_ratio[] = "ratio"; static const char __pyx_k_s_out[] = "s_out"; static const char __pyx_k_shape[] = "shape"; static const char __pyx_k_shell[] = "shell"; static const char __pyx_k_sigma[] = "sigma"; static const char __pyx_k_space[] = "space"; static const char __pyx_k_split[] = "split"; static const char __pyx_k_strip[] = "strip"; static const char __pyx_k_super[] = "super"; static const char __pyx_k_throw[] = "throw"; static const char __pyx_k_torch[] = " torch "; static const char __pyx_k_utils[] = "utils"; static const char __pyx_k_value[] = "value"; static const char __pyx_k_zeros[] = "zeros"; static const char __pyx_k_Conv2d[] = "Conv2d"; static const char __pyx_k_GFLOPs[] = "GFLOPs"; static const char __pyx_k_LOGGER[] = "LOGGER"; static const char __pyx_k_Module[] = "Module"; static const char __pyx_k_Params[] = "Params"; static const char __pyx_k_STDOUT[] = "STDOUT"; static const char __pyx_k_Tensor[] = "Tensor"; static const char __pyx_k_YOLOv5[] = "YOLOv5 \360\237\232\200 "; static const char __pyx_k_amount[] = "amount"; static const char __pyx_k_b_conv[] = "b_conv"; static const char __pyx_k_copy_2[] = "copy"; static const char __pyx_k_cuda_0[] = "cuda:0"; static const char __pyx_k_cuda_2[] = "cuda"; static const char __pyx_k_decode[] = "decode"; static const char __pyx_k_detach[] = "detach"; static const char __pyx_k_device[] = "device"; static const char __pyx_k_enable[] = "enable"; static const char __pyx_k_encode[] = "encode"; static const char __pyx_k_groups[] = "groups"; static const char __pyx_k_ignore[] = "ignore"; static const char __pyx_k_import[] = "__import__"; static const char __pyx_k_inputs[] = "inputs"; static const char __pyx_k_layers[] = " layers, "; static const char __pyx_k_mclass[] = "mclass"; static const char __pyx_k_module[] = "module"; static const char __pyx_k_name_2[] = "__name__"; static const char __pyx_k_output[] = "output"; static const char __pyx_k_parent[] = "parent"; static const char __pyx_k_remove[] = "remove"; static const char __pyx_k_rstrip[] = "rstrip"; static const char __pyx_k_stderr[] = "stderr"; static const char __pyx_k_stdout[] = "stdout"; static const char __pyx_k_stride[] = "stride"; static const char __pyx_k_system[] = "system"; static const char __pyx_k_update[] = "update"; static const char __pyx_k_w_conv[] = "w_conv"; static const char __pyx_k_weight[] = "weight"; static const char __pyx_k_Windows[] = "Windows"; static const char __pyx_k_barrier[] = "barrier"; static const char __pyx_k_devices[] = "devices"; static const char __pyx_k_disable[] = "disable"; static const char __pyx_k_environ[] = "environ"; static const char __pyx_k_exclude[] = "exclude"; static const char __pyx_k_fitness[] = "fitness"; static const char __pyx_k_float16[] = "float16"; static const char __pyx_k_genexpr[] = "genexpr"; static const char __pyx_k_include[] = "include"; static const char __pyx_k_inplace[] = "inplace"; static const char __pyx_k_modules[] = "modules"; static const char __pyx_k_newline[] = "newline"; static const char __pyx_k_no_grad[] = "no_grad"; static const char __pyx_k_padding[] = "padding"; static const char __pyx_k_pathlib[] = "pathlib"; static const char __pyx_k_prepare[] = "__prepare__"; static const char __pyx_k_profile[] = "profile"; static const char __pyx_k_reducer[] = "reducer"; static const char __pyx_k_replace[] = "replace"; static const char __pyx_k_reshape[] = "reshape"; static const char __pyx_k_results[] = "results"; static const char __pyx_k_torch_2[] = "torch"; static const char __pyx_k_updates[] = "updates"; static const char __pyx_k_verbose[] = "verbose"; static const char __pyx_k_version[] = "__version__"; static const char __pyx_k_ModelEMA[] = "ModelEMA"; static const char __pyx_k_backward[] = "backward"; static const char __pyx_k_bilinear[] = "bilinear"; static const char __pyx_k_datetime[] = "datetime"; static const char __pyx_k_deepcopy[] = "deepcopy"; static const char __pyx_k_gradient[] = "gradient"; static const char __pyx_k_img_size[] = "img_size"; static const char __pyx_k_module_2[] = "__module__"; static const char __pyx_k_momentum[] = "momentum"; static const char __pyx_k_parallel[] = "parallel"; static const char __pyx_k_patience[] = "patience"; static const char __pyx_k_platform[] = "platform"; static const char __pyx_k_qualname[] = "__qualname__"; static const char __pyx_k_set_name[] = "__set_name__"; static const char __pyx_k_sparsity[] = "sparsity"; static const char __pyx_k_st_mtime[] = "st_mtime"; static const char __pyx_k_torch_nn[] = "torch.nn"; static const char __pyx_k_1f_GFLOPs[] = ", %.1f GFLOPs"; static const char __pyx_k_Hardswish[] = "Hardswish"; static const char __pyx_k_LeakyReLU[] = "LeakyReLU"; static const char __pyx_k_copy_attr[] = "copy_attr"; static const char __pyx_k_enumerate[] = "enumerate"; static const char __pyx_k_fusedconv[] = "fusedconv"; static const char __pyx_k_gradients[] = " gradients"; static const char __pyx_k_isenabled[] = "isenabled"; static const char __pyx_k_metaclass[] = "__metaclass__"; static const char __pyx_k_scale_img[] = "scale_img"; static const char __pyx_k_time_sync[] = "time_sync"; static const char __pyx_k_GPU_mem_GB[] = "GPU_mem (GB)"; static const char __pyx_k_batch_size[] = "batch_size"; static const char __pyx_k_best_epoch[] = "best_epoch"; static const char __pyx_k_contextlib[] = "contextlib"; static const char __pyx_k_device_ids[] = "device_ids"; static const char __pyx_k_forward_ms[] = "forward (ms)"; static const char __pyx_k_functional[] = "functional"; static const char __pyx_k_local_rank[] = "local_rank"; static const char __pyx_k_model_info[] = "model_info"; static const char __pyx_k_parameters[] = "parameters"; static const char __pyx_k_same_shape[] = "same_shape"; static const char __pyx_k_startswith[] = "startswith"; static const char __pyx_k_state_dict[] = "state_dict"; static const char __pyx_k_subprocess[] = "subprocess"; static const char __pyx_k_BatchNorm2d[] = "BatchNorm2d"; static const char __pyx_k_ImportError[] = "ImportError"; static const char __pyx_k_backward_ms[] = "backward (ms)"; static const char __pyx_k_de_parallel[] = "de_parallel"; static const char __pyx_k_distributed[] = "distributed"; static const char __pyx_k_empty_cache[] = "empty_cache"; static const char __pyx_k_in_channels[] = "in_channels"; static const char __pyx_k_interpolate[] = "interpolate"; static const char __pyx_k_is_parallel[] = "is_parallel"; static const char __pyx_k_kernel_size[] = "kernel_size"; static const char __pyx_k_module_list[] = "module_list"; static const char __pyx_k_running_var[] = "running_var"; static const char __pyx_k_synchronize[] = "synchronize"; static const char __pyx_k_update_attr[] = "update_attr"; static const char __pyx_k_DataParallel[] = "DataParallel"; static const char __pyx_k_batch_size_2[] = "batch-size "; static const char __pyx_k_best_fitness[] = "best_fitness"; static const char __pyx_k_check_output[] = "check_output"; static const char __pyx_k_device_count[] = "device_count"; static const char __pyx_k_find_modules[] = "find_modules"; static const char __pyx_k_git_describe[] = "git_describe"; static const char __pyx_k_initializing[] = "_initializing"; static const char __pyx_k_is_available[] = "is_available"; static const char __pyx_k_is_coroutine[] = "_is_coroutine"; static const char __pyx_k_out_channels[] = "out_channels"; static const char __pyx_k_parameters_2[] = " parameters, "; static const char __pyx_k_running_mean[] = "running_mean"; static const char __pyx_k_total_memory[] = "total_memory"; static const char __pyx_k_EarlyStopping[] = "EarlyStopping"; static const char __pyx_k_Model_Summary[] = "Model Summary: "; static const char __pyx_k_Pruning_model[] = "Pruning model... "; static const char __pyx_k_PyTorch_utils[] = "\nPyTorch utils\n"; static const char __pyx_k_align_corners[] = "align_corners"; static const char __pyx_k_class_getitem[] = "__class_getitem__"; static const char __pyx_k_date_modified[] = "date_modified"; static const char __pyx_k_fromtimestamp[] = "fromtimestamp"; static const char __pyx_k_init_subclass[] = "__init_subclass__"; static const char __pyx_k_module_list_2[] = "module_list."; static const char __pyx_k_named_modules[] = "named_modules"; static const char __pyx_k_possible_stop[] = "possible_stop"; static const char __pyx_k_process_group[] = "process_group"; static const char __pyx_k_requires_grad[] = "requires_grad"; static const char __pyx_k_select_device[] = "select_device"; static const char __pyx_k_AssertionError[] = "AssertionError"; static const char __pyx_k_capture_output[] = "capture_output"; static const char __pyx_k_contextmanager[] = "contextmanager"; static const char __pyx_k_ModelEMA___init[] = "ModelEMA.__init__"; static const char __pyx_k_ModelEMA_update[] = "ModelEMA.update"; static const char __pyx_k_l1_unstructured[] = "l1_unstructured"; static const char __pyx_k_memory_reserved[] = "memory_reserved"; static const char __pyx_k_requires_grad_2[] = "requires_grad_"; static const char __pyx_k_fuse_conv_and_bn[] = "fuse_conv_and_bn"; static const char __pyx_k_named_parameters[] = "named_parameters"; static const char __pyx_k_is_floating_point[] = "is_floating_point"; static const char __pyx_k_nvidia_smi_L_wc_l[] = "nvidia-smi -L | wc -l"; static const char __pyx_k_torch_distributed[] = "torch.distributed"; static const char __pyx_k_3g_global_sparsity[] = " %.3g global sparsity"; static const char __pyx_k_CalledProcessError[] = "CalledProcessError"; static const char __pyx_k_asyncio_coroutines[] = "asyncio.coroutines"; static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; static const char __pyx_k_initialize_weights[] = "initialize_weights"; static const char __pyx_k_Invalid_CUDA_device[] = "Invalid CUDA '--device "; static const char __pyx_k_torch_nn_functional[] = "torch.nn.functional"; static const char __pyx_k_CUDA_VISIBLE_DEVICES[] = "CUDA_VISIBLE_DEVICES"; static const char __pyx_k_EarlyStopping___call[] = "EarlyStopping.__call__"; static const char __pyx_k_EarlyStopping___init[] = "EarlyStopping.__init__"; static const char __pyx_k_ModelEMA_update_attr[] = "ModelEMA.update_attr"; static const char __pyx_k_torch_nn_utils_prune[] = "torch.nn.utils.prune"; static const char __pyx_k_get_device_properties[] = "get_device_properties"; static const char __pyx_k_profile_locals_genexpr[] = "profile..genexpr"; static const char __pyx_k_DistributedDataParallel[] = "DistributedDataParallel"; static const char __pyx_k_scale_img_locals_genexpr[] = "scale_img..genexpr"; static const char __pyx_k_describe_tags_long_always[] = " describe --tags --long --always"; static const char __pyx_k_model_info_locals_genexpr[] = "model_info..genexpr"; static const char __pyx_k_not_multiple_of_GPU_count[] = " not multiple of GPU count "; static const char __pyx_k_torch_distributed_zero_first[] = "torch_distributed_zero_first"; static const char __pyx_k_5g_40s_9s_12g_20s_10_3g_10_3g[] = "%5g %40s %9s %12g %20s %10.3g %10.3g"; static const char __pyx_k_best_model_saved_as_best_pt_To[] = ", best model saved as best.pt.\nTo update EarlyStopping(patience="; static const char __pyx_k_ModelEMA___init___locals_lambda[] = "ModelEMA.__init__.."; static const char __pyx_k_Model_Exponential_Moving_Averag[] = " Model Exponential Moving Average from https://github.com/rwightman/pytorch-image-models\n Keep a moving average of everything in the model state_dict (parameters and buffers).\n This is intended to allow functionality like\n https://www.tensorflow.org/api_docs/python/tf/train/ExponentialMovingAverage\n A smoothed version of the weights is necessary for some training schemes to perform well.\n This class is sensitive where it is initialized in the sequence of model init,\n GPU assignment and distributed training wrappers.\n "; static const char __pyx_k_epochs_Best_results_observed_at[] = " epochs. Best results observed at epoch "; static const char __pyx_k_pass_a_new_patience_value_i_e_p[] = ") pass a new patience value, i.e. `python train.py --patience 300` or use `--patience 0` to disable EarlyStopping."; static const char __pyx_k_requested_use_device_cpu_or_pas[] = "' requested, use '--device cpu' or pass valid CUDA device(s)"; static const char __pyx_k_Stopping_training_early_as_no_im[] = "Stopping training early as no improvement observed in last "; static const char __pyx_k_device_count_function_only_works[] = "device_count() function only works on Linux"; static const char __pyx_k_pdf_toolbox_lib_dia_yolov5_utils[] = "pdf_toolbox.lib.dia_yolov5.utils.torch_utils"; static const char __pyx_k_pdf_toolbox_lib_dia_yolov5_utils_2[] = "pdf_toolbox.lib.dia_yolov5.utils.general"; static const char __pyx_k_pdf_toolbox_lib_dia_yolov5_utils_3[] = "pdf_toolbox\\lib\\dia_yolov5\\utils\\torch_utils.py"; #if !CYTHON_USE_MODULE_STATE static PyObject *__pyx_kp_u_0; static PyObject *__pyx_kp_u_0f; static PyObject *__pyx_kp_u_1; static PyObject *__pyx_kp_u_10; static PyObject *__pyx_kp_u_12; static PyObject *__pyx_kp_u_12_2; static PyObject *__pyx_kp_u_12_4g; static PyObject *__pyx_kp_u_12s; static PyObject *__pyx_kp_u_14_3f; static PyObject *__pyx_kp_u_14_4g; static PyObject *__pyx_kp_u_14s; static PyObject *__pyx_kp_u_1f_GFLOPs; static PyObject *__pyx_kp_u_20; static PyObject *__pyx_kp_u_24s; static PyObject *__pyx_kp_u_3g_global_sparsity; static PyObject *__pyx_kp_u_40; static PyObject *__pyx_kp_u_5; static PyObject *__pyx_kp_u_5g_40s_9s_12g_20s_10_3g_10_3g; static PyObject *__pyx_kp_u_9; static PyObject *__pyx_n_s_AssertionError; static PyObject *__pyx_n_s_BatchNorm2d; static PyObject *__pyx_n_u_CPU; static PyObject *__pyx_kp_u_CUDA; static PyObject *__pyx_n_u_CUDA_VISIBLE_DEVICES; static PyObject *__pyx_n_s_CalledProcessError; static PyObject *__pyx_n_s_Conv2d; static PyObject *__pyx_n_s_DataParallel; static PyObject *__pyx_n_s_DistributedDataParallel; static PyObject *__pyx_n_s_EarlyStopping; static PyObject *__pyx_n_s_EarlyStopping___call; static PyObject *__pyx_n_s_EarlyStopping___init; static PyObject *__pyx_n_s_F; static PyObject *__pyx_n_u_GFLOPs; static PyObject *__pyx_kp_u_GPU_mem_GB; static PyObject *__pyx_n_s_Hardswish; static PyObject *__pyx_n_s_ImportError; static PyObject *__pyx_kp_u_Invalid_CUDA_device; static PyObject *__pyx_n_s_LOGGER; static PyObject *__pyx_n_s_LeakyReLU; static PyObject *__pyx_n_u_Linux; static PyObject *__pyx_kp_u_MiB; static PyObject *__pyx_n_s_ModelEMA; static PyObject *__pyx_n_s_ModelEMA___init; static PyObject *__pyx_n_s_ModelEMA___init___locals_lambda; static PyObject *__pyx_n_s_ModelEMA_update; static PyObject *__pyx_n_s_ModelEMA_update_attr; static PyObject *__pyx_kp_s_Model_Exponential_Moving_Averag; static PyObject *__pyx_kp_u_Model_Summary; static PyObject *__pyx_n_s_Module; static PyObject *__pyx_kp_u_None; static PyObject *__pyx_n_u_Params; static PyObject *__pyx_n_s_Path; static PyObject *__pyx_kp_u_Pruning_model; static PyObject *__pyx_n_s_ReLU; static PyObject *__pyx_n_s_ReLU6; static PyObject *__pyx_n_s_STDOUT; static PyObject *__pyx_n_s_SiLU; static PyObject *__pyx_kp_u_Stopping_training_early_as_no_im; static PyObject *__pyx_n_s_Tensor; static PyObject *__pyx_n_u_Windows; static PyObject *__pyx_kp_u_YOLOv5; static PyObject *__pyx_kp_u__10; static PyObject *__pyx_n_s__13; static PyObject *__pyx_kp_u__17; static PyObject *__pyx_kp_u__2; static PyObject *__pyx_n_s__20; static PyObject *__pyx_n_u__20; static PyObject *__pyx_kp_u__4; static PyObject *__pyx_kp_u__5; static PyObject *__pyx_kp_u__7; static PyObject *__pyx_n_s__76; static PyObject *__pyx_kp_u__9; static PyObject *__pyx_n_s_a; static PyObject *__pyx_n_s_align_corners; static PyObject *__pyx_n_s_amount; static PyObject *__pyx_n_s_args; static PyObject *__pyx_n_u_ascii; static PyObject *__pyx_n_s_asyncio_coroutines; static PyObject *__pyx_n_s_b; static PyObject *__pyx_n_s_b_bn; static PyObject *__pyx_n_s_b_conv; static PyObject *__pyx_n_s_backward; static PyObject *__pyx_kp_u_backward_ms; static PyObject *__pyx_n_s_barrier; static PyObject *__pyx_n_s_batch_size; static PyObject *__pyx_kp_u_batch_size_2; static PyObject *__pyx_n_s_best_epoch; static PyObject *__pyx_n_s_best_fitness; static PyObject *__pyx_kp_u_best_model_saved_as_best_pt_To; static PyObject *__pyx_n_s_bias; static PyObject *__pyx_n_u_bilinear; static PyObject *__pyx_n_s_bn; static PyObject *__pyx_n_s_call; static PyObject *__pyx_n_s_capture_output; static PyObject *__pyx_n_s_ceil; static PyObject *__pyx_n_u_ch; static PyObject *__pyx_n_s_check; static PyObject *__pyx_n_s_check_output; static PyObject *__pyx_n_s_class_getitem; static PyObject *__pyx_n_s_cline_in_traceback; static PyObject *__pyx_n_s_clone; static PyObject *__pyx_n_s_close; static PyObject *__pyx_n_s_cmd; static PyObject *__pyx_n_s_contextlib; static PyObject *__pyx_n_s_contextmanager; static PyObject *__pyx_n_s_conv; static PyObject *__pyx_n_s_copy; static PyObject *__pyx_n_s_copy_2; static PyObject *__pyx_n_s_copy_attr; static PyObject *__pyx_n_s_cpu; static PyObject *__pyx_n_u_cpu; static PyObject *__pyx_kp_u_cuda; static PyObject *__pyx_kp_u_cuda_0; static PyObject *__pyx_n_s_cuda_2; static PyObject *__pyx_n_s_d; static PyObject *__pyx_n_s_date_modified; static PyObject *__pyx_n_s_datetime; static PyObject *__pyx_n_s_day; static PyObject *__pyx_n_s_de_parallel; static PyObject *__pyx_n_s_decay; static PyObject *__pyx_n_s_decode; static PyObject *__pyx_n_s_deepcopy; static PyObject *__pyx_n_s_delta; static PyObject *__pyx_kp_u_describe_tags_long_always; static PyObject *__pyx_n_s_detach; static PyObject *__pyx_n_s_device; static PyObject *__pyx_n_s_device_count; static PyObject *__pyx_kp_u_device_count_function_only_works; static PyObject *__pyx_n_s_device_ids; static PyObject *__pyx_n_s_devices; static PyObject *__pyx_n_s_diag; static PyObject *__pyx_n_s_dict; static PyObject *__pyx_kp_u_disable; static PyObject *__pyx_n_s_dist; static PyObject *__pyx_n_s_distributed; static PyObject *__pyx_n_s_div; static PyObject *__pyx_n_s_doc; static PyObject *__pyx_n_s_dtype; static PyObject *__pyx_n_s_e; static PyObject *__pyx_n_s_ema; static PyObject *__pyx_n_s_empty_cache; static PyObject *__pyx_kp_u_enable; static PyObject *__pyx_n_s_encode; static PyObject *__pyx_n_s_end; static PyObject *__pyx_n_s_enter; static PyObject *__pyx_n_s_enumerate; static PyObject *__pyx_n_s_environ; static PyObject *__pyx_n_s_epoch; static PyObject *__pyx_kp_u_epochs_Best_results_observed_at; static PyObject *__pyx_n_s_eps; static PyObject *__pyx_n_s_eval; static PyObject *__pyx_n_s_exclude; static PyObject *__pyx_n_s_exit; static PyObject *__pyx_n_s_exp; static PyObject *__pyx_n_s_file; static PyObject *__pyx_n_s_find_modules; static PyObject *__pyx_n_s_fitness; static PyObject *__pyx_n_s_float16; static PyObject *__pyx_n_s_flops; static PyObject *__pyx_kp_u_forward_ms; static PyObject *__pyx_n_s_fromtimestamp; static PyObject *__pyx_n_s_fs; static PyObject *__pyx_n_s_functional; static PyObject *__pyx_n_s_fuse_conv_and_bn; static PyObject *__pyx_n_s_fusedconv; static PyObject *__pyx_kp_u_gc; static PyObject *__pyx_n_s_genexpr; static PyObject *__pyx_n_s_get; static PyObject *__pyx_n_s_get_device_properties; static PyObject *__pyx_kp_u_git_C; static PyObject *__pyx_n_s_git_describe; static PyObject *__pyx_n_u_gradient; static PyObject *__pyx_kp_u_gradients; static PyObject *__pyx_n_s_groups; static PyObject *__pyx_n_s_gs; static PyObject *__pyx_n_s_h; static PyObject *__pyx_n_s_half; static PyObject *__pyx_n_u_half; static PyObject *__pyx_n_s_i; static PyObject *__pyx_n_u_ignore; static PyObject *__pyx_n_s_img; static PyObject *__pyx_n_s_img_size; static PyObject *__pyx_n_s_import; static PyObject *__pyx_n_s_in_channels; static PyObject *__pyx_n_s_include; static PyObject *__pyx_n_u_inf; static PyObject *__pyx_n_s_info; static PyObject *__pyx_n_s_init; static PyObject *__pyx_n_s_init_subclass; static PyObject *__pyx_n_s_initialize_weights; static PyObject *__pyx_n_s_initializing; static PyObject *__pyx_n_s_inplace; static PyObject *__pyx_n_s_input; static PyObject *__pyx_n_u_input; static PyObject *__pyx_n_s_inputs; static PyObject *__pyx_n_s_int; static PyObject *__pyx_n_s_interpolate; static PyObject *__pyx_n_s_is_available; static PyObject *__pyx_n_s_is_coroutine; static PyObject *__pyx_n_s_is_floating_point; static PyObject *__pyx_n_s_is_parallel; static PyObject *__pyx_kp_u_isenabled; static PyObject *__pyx_n_s_items; static PyObject *__pyx_n_s_k; static PyObject *__pyx_n_s_kernel_size; static PyObject *__pyx_n_s_l1_unstructured; static PyObject *__pyx_n_u_layer; static PyObject *__pyx_kp_u_layers; static PyObject *__pyx_n_u_list; static PyObject *__pyx_n_s_local_rank; static PyObject *__pyx_n_s_lower; static PyObject *__pyx_n_s_m; static PyObject *__pyx_n_s_main; static PyObject *__pyx_n_s_math; static PyObject *__pyx_n_s_max; static PyObject *__pyx_n_s_mclass; static PyObject *__pyx_n_s_mean; static PyObject *__pyx_n_s_mem; static PyObject *__pyx_n_s_memory_reserved; static PyObject *__pyx_n_s_metaclass; static PyObject *__pyx_n_s_mm; static PyObject *__pyx_n_s_mode; static PyObject *__pyx_n_s_model; static PyObject *__pyx_n_s_model_info; static PyObject *__pyx_n_s_model_info_locals_genexpr; static PyObject *__pyx_n_s_module; static PyObject *__pyx_n_s_module_2; static PyObject *__pyx_n_s_module_list; static PyObject *__pyx_kp_u_module_list_2; static PyObject *__pyx_n_s_modules; static PyObject *__pyx_n_s_momentum; static PyObject *__pyx_n_s_month; static PyObject *__pyx_n_s_msd; static PyObject *__pyx_n_u_mu; static PyObject *__pyx_n_s_mul; static PyObject *__pyx_n_s_n; static PyObject *__pyx_n_s_n_g; static PyObject *__pyx_n_s_n_p; static PyObject *__pyx_n_s_name; static PyObject *__pyx_n_u_name; static PyObject *__pyx_n_s_name_2; static PyObject *__pyx_n_s_named_modules; static PyObject *__pyx_n_s_named_parameters; static PyObject *__pyx_n_u_nan; static PyObject *__pyx_n_s_newline; static PyObject *__pyx_n_s_nn; static PyObject *__pyx_n_s_no_grad; static PyObject *__pyx_kp_u_not_multiple_of_GPU_count; static PyObject *__pyx_n_s_numel; static PyObject *__pyx_kp_u_nvidia_smi_L_wc_l; static PyObject *__pyx_n_s_ops; static PyObject *__pyx_n_s_os; static PyObject *__pyx_n_s_out_channels; static PyObject *__pyx_n_u_output; static PyObject *__pyx_n_s_p; static PyObject *__pyx_n_s_pad; static PyObject *__pyx_n_s_padding; static PyObject *__pyx_n_s_parallel; static PyObject *__pyx_n_s_parameters; static PyObject *__pyx_n_u_parameters; static PyObject *__pyx_kp_u_parameters_2; static PyObject *__pyx_n_s_parent; static PyObject *__pyx_kp_u_pass_a_new_patience_value_i_e_p; static PyObject *__pyx_n_s_path; static PyObject *__pyx_n_s_pathlib; static PyObject *__pyx_n_s_patience; static PyObject *__pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils; static PyObject *__pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils_2; static PyObject *__pyx_kp_s_pdf_toolbox_lib_dia_yolov5_utils_3; static PyObject *__pyx_n_s_platform; static PyObject *__pyx_n_s_possible_stop; static PyObject *__pyx_n_s_prepare; static PyObject *__pyx_n_s_print; static PyObject *__pyx_n_u_process_group; static PyObject *__pyx_n_s_profile; static PyObject *__pyx_n_s_profile_locals_genexpr; static PyObject *__pyx_n_s_prune; static PyObject *__pyx_n_s_qualname; static PyObject *__pyx_n_s_range; static PyObject *__pyx_n_s_ratio; static PyObject *__pyx_n_u_reducer; static PyObject *__pyx_n_s_remove; static PyObject *__pyx_n_s_replace; static PyObject *__pyx_kp_u_requested_use_device_cpu_or_pas; static PyObject *__pyx_n_s_requires_grad; static PyObject *__pyx_n_s_requires_grad_2; static PyObject *__pyx_n_s_reshape; static PyObject *__pyx_n_s_results; static PyObject *__pyx_n_s_rstrip; static PyObject *__pyx_n_s_run; static PyObject *__pyx_n_s_running_mean; static PyObject *__pyx_n_s_running_var; static PyObject *__pyx_n_s_s; static PyObject *__pyx_n_s_s_in; static PyObject *__pyx_n_s_s_out; static PyObject *__pyx_n_s_same_shape; static PyObject *__pyx_n_s_scale_img; static PyObject *__pyx_n_s_scale_img_locals_genexpr; static PyObject *__pyx_n_s_select_device; static PyObject *__pyx_n_s_self; static PyObject *__pyx_n_s_send; static PyObject *__pyx_n_s_set_name; static PyObject *__pyx_n_s_shape; static PyObject *__pyx_n_u_shape; static PyObject *__pyx_n_s_shell; static PyObject *__pyx_n_u_sigma; static PyObject *__pyx_n_s_size; static PyObject *__pyx_n_s_space; static PyObject *__pyx_n_s_sparsity; static PyObject *__pyx_n_s_spec; static PyObject *__pyx_n_s_split; static PyObject *__pyx_n_s_sqrt; static PyObject *__pyx_n_s_st_mtime; static PyObject *__pyx_n_s_startswith; static PyObject *__pyx_n_s_stat; static PyObject *__pyx_n_s_state_dict; static PyObject *__pyx_n_s_std; static PyObject *__pyx_n_s_stderr; static PyObject *__pyx_n_s_stdout; static PyObject *__pyx_n_s_stop; static PyObject *__pyx_n_s_stride; static PyObject *__pyx_n_u_stride; static PyObject *__pyx_n_s_strip; static PyObject *__pyx_n_s_subprocess; static PyObject *__pyx_n_s_sum; static PyObject *__pyx_n_s_super; static PyObject *__pyx_n_s_synchronize; static PyObject *__pyx_n_s_sys; static PyObject *__pyx_n_s_system; static PyObject *__pyx_n_s_t; static PyObject *__pyx_n_s_tb; static PyObject *__pyx_n_s_test; static PyObject *__pyx_n_s_tf; static PyObject *__pyx_n_s_thop; static PyObject *__pyx_n_s_throw; static PyObject *__pyx_n_s_time; static PyObject *__pyx_n_s_time_sync; static PyObject *__pyx_n_s_to; static PyObject *__pyx_n_u_to; static PyObject *__pyx_kp_u_torch; static PyObject *__pyx_n_s_torch_2; static PyObject *__pyx_n_s_torch_distributed; static PyObject *__pyx_n_s_torch_distributed_zero_first; static PyObject *__pyx_n_s_torch_nn; static PyObject *__pyx_n_s_torch_nn_functional; static PyObject *__pyx_n_s_torch_nn_utils_prune; static PyObject *__pyx_n_s_total_memory; static PyObject *__pyx_n_s_update; static PyObject *__pyx_n_s_update_attr; static PyObject *__pyx_n_s_updates; static PyObject *__pyx_n_s_utils; static PyObject *__pyx_n_s_v; static PyObject *__pyx_n_s_value; static PyObject *__pyx_n_s_verbose; static PyObject *__pyx_n_s_version; static PyObject *__pyx_n_s_view; static PyObject *__pyx_n_s_w; static PyObject *__pyx_n_s_w_bn; static PyObject *__pyx_n_s_w_conv; static PyObject *__pyx_n_s_weight; static PyObject *__pyx_n_u_weight; static PyObject *__pyx_n_s_x; static PyObject *__pyx_n_s_y; static PyObject *__pyx_n_s_yaml; static PyObject *__pyx_n_s_year; static PyObject *__pyx_n_s_zeros; #endif /* #### Code section: decls ### */ static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_torch_distributed_zero_first(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_local_rank); /* proto */ static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_35__defaults__(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_3date_modified(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_path); /* proto */ static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_37__defaults__(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_5git_describe(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_path); /* proto */ static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_7device_count(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_9select_device(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_device, PyObject *__pyx_v_batch_size, PyObject *__pyx_v_newline); /* proto */ static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_11time_sync(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_7profile_genexpr(PyObject *__pyx_self); /* proto */ static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_7profile_3genexpr(PyObject *__pyx_self); /* proto */ static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_13profile(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_input, PyObject *__pyx_v_ops, PyObject *__pyx_v_n, PyObject *__pyx_v_device); /* proto */ static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_15is_parallel(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_model); /* proto */ static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_17de_parallel(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_model); /* proto */ static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_19initialize_weights(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_model); /* proto */ static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_39__defaults__(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_21find_modules(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_model, PyObject *__pyx_v_mclass); /* proto */ static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_23sparsity(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_model); /* proto */ static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_25prune(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_model, PyObject *__pyx_v_amount); /* proto */ static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_27fuse_conv_and_bn(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_conv, PyObject *__pyx_v_bn); /* proto */ static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_10model_info_genexpr(PyObject *__pyx_self); /* proto */ static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_10model_info_3genexpr(PyObject *__pyx_self); /* proto */ static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_29model_info(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_model, PyObject *__pyx_v_verbose, PyObject *__pyx_v_img_size); /* proto */ static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_9scale_img_genexpr(PyObject *__pyx_self); /* proto */ static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_31scale_img(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_img, PyObject *__pyx_v_ratio, PyObject *__pyx_v_same_shape, PyObject *__pyx_v_gs); /* proto */ static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_33copy_attr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_include, PyObject *__pyx_v_exclude); /* proto */ static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_13EarlyStopping___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_patience); /* proto */ static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_13EarlyStopping_2__call__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_epoch, PyObject *__pyx_v_fitness); /* proto */ static PyObject *__pyx_lambda_funcdef_lambda5(PyObject *__pyx_self, PyObject *__pyx_v_x); /* proto */ static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_8ModelEMA___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_model, PyObject *__pyx_v_decay, PyObject *__pyx_v_updates); /* proto */ static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_8ModelEMA_2update(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_model); /* proto */ static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_8ModelEMA_4update_attr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_model, PyObject *__pyx_v_include, PyObject *__pyx_v_exclude); /* proto */ static PyObject *__pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static __Pyx_CachedCFunction __pyx_umethod_PyUnicode_Type_rstrip = {0, 0, 0, 0, 0}; #if !CYTHON_USE_MODULE_STATE static PyObject *__pyx_float_0_0; static PyObject *__pyx_float_0_3; static PyObject *__pyx_float_1_0; static PyObject *__pyx_float_1E9; static PyObject *__pyx_float_0_03; static PyObject *__pyx_float_1eneg_3; static PyObject *__pyx_float_0_447; static PyObject *__pyx_float_0_9999; static PyObject *__pyx_int_0; static PyObject *__pyx_int_1; static PyObject *__pyx_int_2; static PyObject *__pyx_int_3; static PyObject *__pyx_int_10; static PyObject *__pyx_int_30; static PyObject *__pyx_int_32; static PyObject *__pyx_int_640; static PyObject *__pyx_int_1000; static PyObject *__pyx_int_2000; static PyObject *__pyx_int_1048576; static PyObject *__pyx_int_neg_1; #endif #if !CYTHON_USE_MODULE_STATE static PyObject *__pyx_codeobj_; static PyObject *__pyx_slice__3; static PyObject *__pyx_tuple__6; static PyObject *__pyx_tuple__8; static PyObject *__pyx_slice__19; static PyObject *__pyx_tuple__11; static PyObject *__pyx_tuple__12; static PyObject *__pyx_tuple__14; static PyObject *__pyx_tuple__15; static PyObject *__pyx_tuple__16; static PyObject *__pyx_tuple__18; static PyObject *__pyx_tuple__21; static PyObject *__pyx_tuple__22; static PyObject *__pyx_tuple__23; static PyObject *__pyx_tuple__24; static PyObject *__pyx_tuple__25; static PyObject *__pyx_tuple__26; static PyObject *__pyx_tuple__27; static PyObject *__pyx_tuple__29; static PyObject *__pyx_tuple__31; static PyObject *__pyx_tuple__33; static PyObject *__pyx_tuple__35; static PyObject *__pyx_tuple__37; static PyObject *__pyx_tuple__39; static PyObject *__pyx_tuple__40; static PyObject *__pyx_tuple__43; static PyObject *__pyx_tuple__45; static PyObject *__pyx_tuple__47; static PyObject *__pyx_tuple__49; static PyObject *__pyx_tuple__51; static PyObject *__pyx_tuple__52; static PyObject *__pyx_tuple__54; static PyObject *__pyx_tuple__56; static PyObject *__pyx_tuple__57; static PyObject *__pyx_tuple__59; static PyObject *__pyx_tuple__60; static PyObject *__pyx_tuple__62; static PyObject *__pyx_tuple__63; static PyObject *__pyx_tuple__65; static PyObject *__pyx_tuple__66; static PyObject *__pyx_tuple__68; static PyObject *__pyx_tuple__70; static PyObject *__pyx_tuple__71; static PyObject *__pyx_tuple__73; static PyObject *__pyx_tuple__75; static PyObject *__pyx_codeobj__28; static PyObject *__pyx_codeobj__30; static PyObject *__pyx_codeobj__32; static PyObject *__pyx_codeobj__34; static PyObject *__pyx_codeobj__36; static PyObject *__pyx_codeobj__38; static PyObject *__pyx_codeobj__41; static PyObject *__pyx_codeobj__42; static PyObject *__pyx_codeobj__44; static PyObject *__pyx_codeobj__46; static PyObject *__pyx_codeobj__48; static PyObject *__pyx_codeobj__50; static PyObject *__pyx_codeobj__53; static PyObject *__pyx_codeobj__55; static PyObject *__pyx_codeobj__58; static PyObject *__pyx_codeobj__61; static PyObject *__pyx_codeobj__64; static PyObject *__pyx_codeobj__67; static PyObject *__pyx_codeobj__69; static PyObject *__pyx_codeobj__72; static PyObject *__pyx_codeobj__74; #endif /* #### Code section: late_includes ### */ /* #### Code section: module_state ### */ #if CYTHON_USE_MODULE_STATE typedef struct { PyObject *__pyx_d; PyObject *__pyx_b; PyObject *__pyx_cython_runtime; PyObject *__pyx_empty_tuple; PyObject *__pyx_empty_bytes; PyObject *__pyx_empty_unicode; #ifdef __Pyx_CyFunction_USED PyTypeObject *__pyx_CyFunctionType; #endif #ifdef __Pyx_FusedFunction_USED PyTypeObject *__pyx_FusedFunctionType; #endif PyTypeObject *__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first; PyObject *__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first; PyTypeObject *__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile; PyObject *__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile; PyTypeObject *__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr; PyObject *__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr; PyTypeObject *__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr; PyObject *__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr; PyTypeObject *__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info; PyObject *__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info; PyTypeObject *__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr; PyObject *__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr; PyTypeObject *__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr; PyObject *__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr; PyTypeObject *__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img; PyObject *__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img; PyTypeObject *__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr; PyObject *__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr; PyTypeObject *__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__; PyObject *__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__; PyObject *__pyx_kp_u_0; PyObject *__pyx_kp_u_0f; PyObject *__pyx_kp_u_1; PyObject *__pyx_kp_u_10; PyObject *__pyx_kp_u_12; PyObject *__pyx_kp_u_12_2; PyObject *__pyx_kp_u_12_4g; PyObject *__pyx_kp_u_12s; PyObject *__pyx_kp_u_14_3f; PyObject *__pyx_kp_u_14_4g; PyObject *__pyx_kp_u_14s; PyObject *__pyx_kp_u_1f_GFLOPs; PyObject *__pyx_kp_u_20; PyObject *__pyx_kp_u_24s; PyObject *__pyx_kp_u_3g_global_sparsity; PyObject *__pyx_kp_u_40; PyObject *__pyx_kp_u_5; PyObject *__pyx_kp_u_5g_40s_9s_12g_20s_10_3g_10_3g; PyObject *__pyx_kp_u_9; PyObject *__pyx_n_s_AssertionError; PyObject *__pyx_n_s_BatchNorm2d; PyObject *__pyx_n_u_CPU; PyObject *__pyx_kp_u_CUDA; PyObject *__pyx_n_u_CUDA_VISIBLE_DEVICES; PyObject *__pyx_n_s_CalledProcessError; PyObject *__pyx_n_s_Conv2d; PyObject *__pyx_n_s_DataParallel; PyObject *__pyx_n_s_DistributedDataParallel; PyObject *__pyx_n_s_EarlyStopping; PyObject *__pyx_n_s_EarlyStopping___call; PyObject *__pyx_n_s_EarlyStopping___init; PyObject *__pyx_n_s_F; PyObject *__pyx_n_u_GFLOPs; PyObject *__pyx_kp_u_GPU_mem_GB; PyObject *__pyx_n_s_Hardswish; PyObject *__pyx_n_s_ImportError; PyObject *__pyx_kp_u_Invalid_CUDA_device; PyObject *__pyx_n_s_LOGGER; PyObject *__pyx_n_s_LeakyReLU; PyObject *__pyx_n_u_Linux; PyObject *__pyx_kp_u_MiB; PyObject *__pyx_n_s_ModelEMA; PyObject *__pyx_n_s_ModelEMA___init; PyObject *__pyx_n_s_ModelEMA___init___locals_lambda; PyObject *__pyx_n_s_ModelEMA_update; PyObject *__pyx_n_s_ModelEMA_update_attr; PyObject *__pyx_kp_s_Model_Exponential_Moving_Averag; PyObject *__pyx_kp_u_Model_Summary; PyObject *__pyx_n_s_Module; PyObject *__pyx_kp_u_None; PyObject *__pyx_n_u_Params; PyObject *__pyx_n_s_Path; PyObject *__pyx_kp_u_Pruning_model; PyObject *__pyx_n_s_ReLU; PyObject *__pyx_n_s_ReLU6; PyObject *__pyx_n_s_STDOUT; PyObject *__pyx_n_s_SiLU; PyObject *__pyx_kp_u_Stopping_training_early_as_no_im; PyObject *__pyx_n_s_Tensor; PyObject *__pyx_n_u_Windows; PyObject *__pyx_kp_u_YOLOv5; PyObject *__pyx_kp_u__10; PyObject *__pyx_n_s__13; PyObject *__pyx_kp_u__17; PyObject *__pyx_kp_u__2; PyObject *__pyx_n_s__20; PyObject *__pyx_n_u__20; PyObject *__pyx_kp_u__4; PyObject *__pyx_kp_u__5; PyObject *__pyx_kp_u__7; PyObject *__pyx_n_s__76; PyObject *__pyx_kp_u__9; PyObject *__pyx_n_s_a; PyObject *__pyx_n_s_align_corners; PyObject *__pyx_n_s_amount; PyObject *__pyx_n_s_args; PyObject *__pyx_n_u_ascii; PyObject *__pyx_n_s_asyncio_coroutines; PyObject *__pyx_n_s_b; PyObject *__pyx_n_s_b_bn; PyObject *__pyx_n_s_b_conv; PyObject *__pyx_n_s_backward; PyObject *__pyx_kp_u_backward_ms; PyObject *__pyx_n_s_barrier; PyObject *__pyx_n_s_batch_size; PyObject *__pyx_kp_u_batch_size_2; PyObject *__pyx_n_s_best_epoch; PyObject *__pyx_n_s_best_fitness; PyObject *__pyx_kp_u_best_model_saved_as_best_pt_To; PyObject *__pyx_n_s_bias; PyObject *__pyx_n_u_bilinear; PyObject *__pyx_n_s_bn; PyObject *__pyx_n_s_call; PyObject *__pyx_n_s_capture_output; PyObject *__pyx_n_s_ceil; PyObject *__pyx_n_u_ch; PyObject *__pyx_n_s_check; PyObject *__pyx_n_s_check_output; PyObject *__pyx_n_s_class_getitem; PyObject *__pyx_n_s_cline_in_traceback; PyObject *__pyx_n_s_clone; PyObject *__pyx_n_s_close; PyObject *__pyx_n_s_cmd; PyObject *__pyx_n_s_contextlib; PyObject *__pyx_n_s_contextmanager; PyObject *__pyx_n_s_conv; PyObject *__pyx_n_s_copy; PyObject *__pyx_n_s_copy_2; PyObject *__pyx_n_s_copy_attr; PyObject *__pyx_n_s_cpu; PyObject *__pyx_n_u_cpu; PyObject *__pyx_kp_u_cuda; PyObject *__pyx_kp_u_cuda_0; PyObject *__pyx_n_s_cuda_2; PyObject *__pyx_n_s_d; PyObject *__pyx_n_s_date_modified; PyObject *__pyx_n_s_datetime; PyObject *__pyx_n_s_day; PyObject *__pyx_n_s_de_parallel; PyObject *__pyx_n_s_decay; PyObject *__pyx_n_s_decode; PyObject *__pyx_n_s_deepcopy; PyObject *__pyx_n_s_delta; PyObject *__pyx_kp_u_describe_tags_long_always; PyObject *__pyx_n_s_detach; PyObject *__pyx_n_s_device; PyObject *__pyx_n_s_device_count; PyObject *__pyx_kp_u_device_count_function_only_works; PyObject *__pyx_n_s_device_ids; PyObject *__pyx_n_s_devices; PyObject *__pyx_n_s_diag; PyObject *__pyx_n_s_dict; PyObject *__pyx_kp_u_disable; PyObject *__pyx_n_s_dist; PyObject *__pyx_n_s_distributed; PyObject *__pyx_n_s_div; PyObject *__pyx_n_s_doc; PyObject *__pyx_n_s_dtype; PyObject *__pyx_n_s_e; PyObject *__pyx_n_s_ema; PyObject *__pyx_n_s_empty_cache; PyObject *__pyx_kp_u_enable; PyObject *__pyx_n_s_encode; PyObject *__pyx_n_s_end; PyObject *__pyx_n_s_enter; PyObject *__pyx_n_s_enumerate; PyObject *__pyx_n_s_environ; PyObject *__pyx_n_s_epoch; PyObject *__pyx_kp_u_epochs_Best_results_observed_at; PyObject *__pyx_n_s_eps; PyObject *__pyx_n_s_eval; PyObject *__pyx_n_s_exclude; PyObject *__pyx_n_s_exit; PyObject *__pyx_n_s_exp; PyObject *__pyx_n_s_file; PyObject *__pyx_n_s_find_modules; PyObject *__pyx_n_s_fitness; PyObject *__pyx_n_s_float16; PyObject *__pyx_n_s_flops; PyObject *__pyx_kp_u_forward_ms; PyObject *__pyx_n_s_fromtimestamp; PyObject *__pyx_n_s_fs; PyObject *__pyx_n_s_functional; PyObject *__pyx_n_s_fuse_conv_and_bn; PyObject *__pyx_n_s_fusedconv; PyObject *__pyx_kp_u_gc; PyObject *__pyx_n_s_genexpr; PyObject *__pyx_n_s_get; PyObject *__pyx_n_s_get_device_properties; PyObject *__pyx_kp_u_git_C; PyObject *__pyx_n_s_git_describe; PyObject *__pyx_n_u_gradient; PyObject *__pyx_kp_u_gradients; PyObject *__pyx_n_s_groups; PyObject *__pyx_n_s_gs; PyObject *__pyx_n_s_h; PyObject *__pyx_n_s_half; PyObject *__pyx_n_u_half; PyObject *__pyx_n_s_i; PyObject *__pyx_n_u_ignore; PyObject *__pyx_n_s_img; PyObject *__pyx_n_s_img_size; PyObject *__pyx_n_s_import; PyObject *__pyx_n_s_in_channels; PyObject *__pyx_n_s_include; PyObject *__pyx_n_u_inf; PyObject *__pyx_n_s_info; PyObject *__pyx_n_s_init; PyObject *__pyx_n_s_init_subclass; PyObject *__pyx_n_s_initialize_weights; PyObject *__pyx_n_s_initializing; PyObject *__pyx_n_s_inplace; PyObject *__pyx_n_s_input; PyObject *__pyx_n_u_input; PyObject *__pyx_n_s_inputs; PyObject *__pyx_n_s_int; PyObject *__pyx_n_s_interpolate; PyObject *__pyx_n_s_is_available; PyObject *__pyx_n_s_is_coroutine; PyObject *__pyx_n_s_is_floating_point; PyObject *__pyx_n_s_is_parallel; PyObject *__pyx_kp_u_isenabled; PyObject *__pyx_n_s_items; PyObject *__pyx_n_s_k; PyObject *__pyx_n_s_kernel_size; PyObject *__pyx_n_s_l1_unstructured; PyObject *__pyx_n_u_layer; PyObject *__pyx_kp_u_layers; PyObject *__pyx_n_u_list; PyObject *__pyx_n_s_local_rank; PyObject *__pyx_n_s_lower; PyObject *__pyx_n_s_m; PyObject *__pyx_n_s_main; PyObject *__pyx_n_s_math; PyObject *__pyx_n_s_max; PyObject *__pyx_n_s_mclass; PyObject *__pyx_n_s_mean; PyObject *__pyx_n_s_mem; PyObject *__pyx_n_s_memory_reserved; PyObject *__pyx_n_s_metaclass; PyObject *__pyx_n_s_mm; PyObject *__pyx_n_s_mode; PyObject *__pyx_n_s_model; PyObject *__pyx_n_s_model_info; PyObject *__pyx_n_s_model_info_locals_genexpr; PyObject *__pyx_n_s_module; PyObject *__pyx_n_s_module_2; PyObject *__pyx_n_s_module_list; PyObject *__pyx_kp_u_module_list_2; PyObject *__pyx_n_s_modules; PyObject *__pyx_n_s_momentum; PyObject *__pyx_n_s_month; PyObject *__pyx_n_s_msd; PyObject *__pyx_n_u_mu; PyObject *__pyx_n_s_mul; PyObject *__pyx_n_s_n; PyObject *__pyx_n_s_n_g; PyObject *__pyx_n_s_n_p; PyObject *__pyx_n_s_name; PyObject *__pyx_n_u_name; PyObject *__pyx_n_s_name_2; PyObject *__pyx_n_s_named_modules; PyObject *__pyx_n_s_named_parameters; PyObject *__pyx_n_u_nan; PyObject *__pyx_n_s_newline; PyObject *__pyx_n_s_nn; PyObject *__pyx_n_s_no_grad; PyObject *__pyx_kp_u_not_multiple_of_GPU_count; PyObject *__pyx_n_s_numel; PyObject *__pyx_kp_u_nvidia_smi_L_wc_l; PyObject *__pyx_n_s_ops; PyObject *__pyx_n_s_os; PyObject *__pyx_n_s_out_channels; PyObject *__pyx_n_u_output; PyObject *__pyx_n_s_p; PyObject *__pyx_n_s_pad; PyObject *__pyx_n_s_padding; PyObject *__pyx_n_s_parallel; PyObject *__pyx_n_s_parameters; PyObject *__pyx_n_u_parameters; PyObject *__pyx_kp_u_parameters_2; PyObject *__pyx_n_s_parent; PyObject *__pyx_kp_u_pass_a_new_patience_value_i_e_p; PyObject *__pyx_n_s_path; PyObject *__pyx_n_s_pathlib; PyObject *__pyx_n_s_patience; PyObject *__pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils; PyObject *__pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils_2; PyObject *__pyx_kp_s_pdf_toolbox_lib_dia_yolov5_utils_3; PyObject *__pyx_n_s_platform; PyObject *__pyx_n_s_possible_stop; PyObject *__pyx_n_s_prepare; PyObject *__pyx_n_s_print; PyObject *__pyx_n_u_process_group; PyObject *__pyx_n_s_profile; PyObject *__pyx_n_s_profile_locals_genexpr; PyObject *__pyx_n_s_prune; PyObject *__pyx_n_s_qualname; PyObject *__pyx_n_s_range; PyObject *__pyx_n_s_ratio; PyObject *__pyx_n_u_reducer; PyObject *__pyx_n_s_remove; PyObject *__pyx_n_s_replace; PyObject *__pyx_kp_u_requested_use_device_cpu_or_pas; PyObject *__pyx_n_s_requires_grad; PyObject *__pyx_n_s_requires_grad_2; PyObject *__pyx_n_s_reshape; PyObject *__pyx_n_s_results; PyObject *__pyx_n_s_rstrip; PyObject *__pyx_n_s_run; PyObject *__pyx_n_s_running_mean; PyObject *__pyx_n_s_running_var; PyObject *__pyx_n_s_s; PyObject *__pyx_n_s_s_in; PyObject *__pyx_n_s_s_out; PyObject *__pyx_n_s_same_shape; PyObject *__pyx_n_s_scale_img; PyObject *__pyx_n_s_scale_img_locals_genexpr; PyObject *__pyx_n_s_select_device; PyObject *__pyx_n_s_self; PyObject *__pyx_n_s_send; PyObject *__pyx_n_s_set_name; PyObject *__pyx_n_s_shape; PyObject *__pyx_n_u_shape; PyObject *__pyx_n_s_shell; PyObject *__pyx_n_u_sigma; PyObject *__pyx_n_s_size; PyObject *__pyx_n_s_space; PyObject *__pyx_n_s_sparsity; PyObject *__pyx_n_s_spec; PyObject *__pyx_n_s_split; PyObject *__pyx_n_s_sqrt; PyObject *__pyx_n_s_st_mtime; PyObject *__pyx_n_s_startswith; PyObject *__pyx_n_s_stat; PyObject *__pyx_n_s_state_dict; PyObject *__pyx_n_s_std; PyObject *__pyx_n_s_stderr; PyObject *__pyx_n_s_stdout; PyObject *__pyx_n_s_stop; PyObject *__pyx_n_s_stride; PyObject *__pyx_n_u_stride; PyObject *__pyx_n_s_strip; PyObject *__pyx_n_s_subprocess; PyObject *__pyx_n_s_sum; PyObject *__pyx_n_s_super; PyObject *__pyx_n_s_synchronize; PyObject *__pyx_n_s_sys; PyObject *__pyx_n_s_system; PyObject *__pyx_n_s_t; PyObject *__pyx_n_s_tb; PyObject *__pyx_n_s_test; PyObject *__pyx_n_s_tf; PyObject *__pyx_n_s_thop; PyObject *__pyx_n_s_throw; PyObject *__pyx_n_s_time; PyObject *__pyx_n_s_time_sync; PyObject *__pyx_n_s_to; PyObject *__pyx_n_u_to; PyObject *__pyx_kp_u_torch; PyObject *__pyx_n_s_torch_2; PyObject *__pyx_n_s_torch_distributed; PyObject *__pyx_n_s_torch_distributed_zero_first; PyObject *__pyx_n_s_torch_nn; PyObject *__pyx_n_s_torch_nn_functional; PyObject *__pyx_n_s_torch_nn_utils_prune; PyObject *__pyx_n_s_total_memory; PyObject *__pyx_n_s_update; PyObject *__pyx_n_s_update_attr; PyObject *__pyx_n_s_updates; PyObject *__pyx_n_s_utils; PyObject *__pyx_n_s_v; PyObject *__pyx_n_s_value; PyObject *__pyx_n_s_verbose; PyObject *__pyx_n_s_version; PyObject *__pyx_n_s_view; PyObject *__pyx_n_s_w; PyObject *__pyx_n_s_w_bn; PyObject *__pyx_n_s_w_conv; PyObject *__pyx_n_s_weight; PyObject *__pyx_n_u_weight; PyObject *__pyx_n_s_x; PyObject *__pyx_n_s_y; PyObject *__pyx_n_s_yaml; PyObject *__pyx_n_s_year; PyObject *__pyx_n_s_zeros; PyObject *__pyx_float_0_0; PyObject *__pyx_float_0_3; PyObject *__pyx_float_1_0; PyObject *__pyx_float_1E9; PyObject *__pyx_float_0_03; PyObject *__pyx_float_1eneg_3; PyObject *__pyx_float_0_447; PyObject *__pyx_float_0_9999; PyObject *__pyx_int_0; PyObject *__pyx_int_1; PyObject *__pyx_int_2; PyObject *__pyx_int_3; PyObject *__pyx_int_10; PyObject *__pyx_int_30; PyObject *__pyx_int_32; PyObject *__pyx_int_640; PyObject *__pyx_int_1000; PyObject *__pyx_int_2000; PyObject *__pyx_int_1048576; PyObject *__pyx_int_neg_1; PyObject *__pyx_codeobj_; PyObject *__pyx_slice__3; PyObject *__pyx_tuple__6; PyObject *__pyx_tuple__8; PyObject *__pyx_slice__19; PyObject *__pyx_tuple__11; PyObject *__pyx_tuple__12; PyObject *__pyx_tuple__14; PyObject *__pyx_tuple__15; PyObject *__pyx_tuple__16; PyObject *__pyx_tuple__18; PyObject *__pyx_tuple__21; PyObject *__pyx_tuple__22; PyObject *__pyx_tuple__23; PyObject *__pyx_tuple__24; PyObject *__pyx_tuple__25; PyObject *__pyx_tuple__26; PyObject *__pyx_tuple__27; PyObject *__pyx_tuple__29; PyObject *__pyx_tuple__31; PyObject *__pyx_tuple__33; PyObject *__pyx_tuple__35; PyObject *__pyx_tuple__37; PyObject *__pyx_tuple__39; PyObject *__pyx_tuple__40; PyObject *__pyx_tuple__43; PyObject *__pyx_tuple__45; PyObject *__pyx_tuple__47; PyObject *__pyx_tuple__49; PyObject *__pyx_tuple__51; PyObject *__pyx_tuple__52; PyObject *__pyx_tuple__54; PyObject *__pyx_tuple__56; PyObject *__pyx_tuple__57; PyObject *__pyx_tuple__59; PyObject *__pyx_tuple__60; PyObject *__pyx_tuple__62; PyObject *__pyx_tuple__63; PyObject *__pyx_tuple__65; PyObject *__pyx_tuple__66; PyObject *__pyx_tuple__68; PyObject *__pyx_tuple__70; PyObject *__pyx_tuple__71; PyObject *__pyx_tuple__73; PyObject *__pyx_tuple__75; PyObject *__pyx_codeobj__28; PyObject *__pyx_codeobj__30; PyObject *__pyx_codeobj__32; PyObject *__pyx_codeobj__34; PyObject *__pyx_codeobj__36; PyObject *__pyx_codeobj__38; PyObject *__pyx_codeobj__41; PyObject *__pyx_codeobj__42; PyObject *__pyx_codeobj__44; PyObject *__pyx_codeobj__46; PyObject *__pyx_codeobj__48; PyObject *__pyx_codeobj__50; PyObject *__pyx_codeobj__53; PyObject *__pyx_codeobj__55; PyObject *__pyx_codeobj__58; PyObject *__pyx_codeobj__61; PyObject *__pyx_codeobj__64; PyObject *__pyx_codeobj__67; PyObject *__pyx_codeobj__69; PyObject *__pyx_codeobj__72; PyObject *__pyx_codeobj__74; } __pyx_mstate; #ifdef __cplusplus namespace { extern struct PyModuleDef __pyx_moduledef; } /* anonymous namespace */ #else static struct PyModuleDef __pyx_moduledef; #endif #define __pyx_mstate(o) ((__pyx_mstate *)__Pyx_PyModule_GetState(o)) #define __pyx_mstate_global (__pyx_mstate(PyState_FindModule(&__pyx_moduledef))) #define __pyx_m (PyState_FindModule(&__pyx_moduledef)) #endif /* #### Code section: module_state_clear ### */ #if CYTHON_USE_MODULE_STATE static int __pyx_m_clear(PyObject *m) { __pyx_mstate *clear_module_state = __pyx_mstate(m); if (!clear_module_state) return 0; Py_CLEAR(clear_module_state->__pyx_d); Py_CLEAR(clear_module_state->__pyx_b); Py_CLEAR(clear_module_state->__pyx_cython_runtime); Py_CLEAR(clear_module_state->__pyx_empty_tuple); Py_CLEAR(clear_module_state->__pyx_empty_bytes); Py_CLEAR(clear_module_state->__pyx_empty_unicode); #ifdef __Pyx_CyFunction_USED Py_CLEAR(clear_module_state->__pyx_CyFunctionType); #endif #ifdef __Pyx_FusedFunction_USED Py_CLEAR(clear_module_state->__pyx_FusedFunctionType); #endif Py_CLEAR(clear_module_state->__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first); Py_CLEAR(clear_module_state->__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first); Py_CLEAR(clear_module_state->__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile); Py_CLEAR(clear_module_state->__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile); Py_CLEAR(clear_module_state->__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr); Py_CLEAR(clear_module_state->__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr); Py_CLEAR(clear_module_state->__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr); Py_CLEAR(clear_module_state->__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr); Py_CLEAR(clear_module_state->__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info); Py_CLEAR(clear_module_state->__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info); Py_CLEAR(clear_module_state->__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr); Py_CLEAR(clear_module_state->__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr); Py_CLEAR(clear_module_state->__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr); Py_CLEAR(clear_module_state->__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr); Py_CLEAR(clear_module_state->__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img); Py_CLEAR(clear_module_state->__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img); Py_CLEAR(clear_module_state->__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr); Py_CLEAR(clear_module_state->__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr); Py_CLEAR(clear_module_state->__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__); Py_CLEAR(clear_module_state->__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__); Py_CLEAR(clear_module_state->__pyx_kp_u_0); Py_CLEAR(clear_module_state->__pyx_kp_u_0f); Py_CLEAR(clear_module_state->__pyx_kp_u_1); Py_CLEAR(clear_module_state->__pyx_kp_u_10); Py_CLEAR(clear_module_state->__pyx_kp_u_12); Py_CLEAR(clear_module_state->__pyx_kp_u_12_2); Py_CLEAR(clear_module_state->__pyx_kp_u_12_4g); Py_CLEAR(clear_module_state->__pyx_kp_u_12s); Py_CLEAR(clear_module_state->__pyx_kp_u_14_3f); Py_CLEAR(clear_module_state->__pyx_kp_u_14_4g); Py_CLEAR(clear_module_state->__pyx_kp_u_14s); Py_CLEAR(clear_module_state->__pyx_kp_u_1f_GFLOPs); Py_CLEAR(clear_module_state->__pyx_kp_u_20); Py_CLEAR(clear_module_state->__pyx_kp_u_24s); Py_CLEAR(clear_module_state->__pyx_kp_u_3g_global_sparsity); Py_CLEAR(clear_module_state->__pyx_kp_u_40); Py_CLEAR(clear_module_state->__pyx_kp_u_5); Py_CLEAR(clear_module_state->__pyx_kp_u_5g_40s_9s_12g_20s_10_3g_10_3g); Py_CLEAR(clear_module_state->__pyx_kp_u_9); Py_CLEAR(clear_module_state->__pyx_n_s_AssertionError); Py_CLEAR(clear_module_state->__pyx_n_s_BatchNorm2d); Py_CLEAR(clear_module_state->__pyx_n_u_CPU); Py_CLEAR(clear_module_state->__pyx_kp_u_CUDA); Py_CLEAR(clear_module_state->__pyx_n_u_CUDA_VISIBLE_DEVICES); Py_CLEAR(clear_module_state->__pyx_n_s_CalledProcessError); Py_CLEAR(clear_module_state->__pyx_n_s_Conv2d); Py_CLEAR(clear_module_state->__pyx_n_s_DataParallel); Py_CLEAR(clear_module_state->__pyx_n_s_DistributedDataParallel); Py_CLEAR(clear_module_state->__pyx_n_s_EarlyStopping); Py_CLEAR(clear_module_state->__pyx_n_s_EarlyStopping___call); Py_CLEAR(clear_module_state->__pyx_n_s_EarlyStopping___init); Py_CLEAR(clear_module_state->__pyx_n_s_F); Py_CLEAR(clear_module_state->__pyx_n_u_GFLOPs); Py_CLEAR(clear_module_state->__pyx_kp_u_GPU_mem_GB); Py_CLEAR(clear_module_state->__pyx_n_s_Hardswish); Py_CLEAR(clear_module_state->__pyx_n_s_ImportError); Py_CLEAR(clear_module_state->__pyx_kp_u_Invalid_CUDA_device); Py_CLEAR(clear_module_state->__pyx_n_s_LOGGER); Py_CLEAR(clear_module_state->__pyx_n_s_LeakyReLU); Py_CLEAR(clear_module_state->__pyx_n_u_Linux); Py_CLEAR(clear_module_state->__pyx_kp_u_MiB); Py_CLEAR(clear_module_state->__pyx_n_s_ModelEMA); Py_CLEAR(clear_module_state->__pyx_n_s_ModelEMA___init); Py_CLEAR(clear_module_state->__pyx_n_s_ModelEMA___init___locals_lambda); Py_CLEAR(clear_module_state->__pyx_n_s_ModelEMA_update); Py_CLEAR(clear_module_state->__pyx_n_s_ModelEMA_update_attr); Py_CLEAR(clear_module_state->__pyx_kp_s_Model_Exponential_Moving_Averag); Py_CLEAR(clear_module_state->__pyx_kp_u_Model_Summary); Py_CLEAR(clear_module_state->__pyx_n_s_Module); Py_CLEAR(clear_module_state->__pyx_kp_u_None); Py_CLEAR(clear_module_state->__pyx_n_u_Params); Py_CLEAR(clear_module_state->__pyx_n_s_Path); Py_CLEAR(clear_module_state->__pyx_kp_u_Pruning_model); Py_CLEAR(clear_module_state->__pyx_n_s_ReLU); Py_CLEAR(clear_module_state->__pyx_n_s_ReLU6); Py_CLEAR(clear_module_state->__pyx_n_s_STDOUT); Py_CLEAR(clear_module_state->__pyx_n_s_SiLU); Py_CLEAR(clear_module_state->__pyx_kp_u_Stopping_training_early_as_no_im); Py_CLEAR(clear_module_state->__pyx_n_s_Tensor); Py_CLEAR(clear_module_state->__pyx_n_u_Windows); Py_CLEAR(clear_module_state->__pyx_kp_u_YOLOv5); Py_CLEAR(clear_module_state->__pyx_kp_u__10); Py_CLEAR(clear_module_state->__pyx_n_s__13); Py_CLEAR(clear_module_state->__pyx_kp_u__17); Py_CLEAR(clear_module_state->__pyx_kp_u__2); Py_CLEAR(clear_module_state->__pyx_n_s__20); Py_CLEAR(clear_module_state->__pyx_n_u__20); Py_CLEAR(clear_module_state->__pyx_kp_u__4); Py_CLEAR(clear_module_state->__pyx_kp_u__5); Py_CLEAR(clear_module_state->__pyx_kp_u__7); Py_CLEAR(clear_module_state->__pyx_n_s__76); Py_CLEAR(clear_module_state->__pyx_kp_u__9); Py_CLEAR(clear_module_state->__pyx_n_s_a); Py_CLEAR(clear_module_state->__pyx_n_s_align_corners); Py_CLEAR(clear_module_state->__pyx_n_s_amount); Py_CLEAR(clear_module_state->__pyx_n_s_args); Py_CLEAR(clear_module_state->__pyx_n_u_ascii); Py_CLEAR(clear_module_state->__pyx_n_s_asyncio_coroutines); Py_CLEAR(clear_module_state->__pyx_n_s_b); Py_CLEAR(clear_module_state->__pyx_n_s_b_bn); Py_CLEAR(clear_module_state->__pyx_n_s_b_conv); Py_CLEAR(clear_module_state->__pyx_n_s_backward); Py_CLEAR(clear_module_state->__pyx_kp_u_backward_ms); Py_CLEAR(clear_module_state->__pyx_n_s_barrier); Py_CLEAR(clear_module_state->__pyx_n_s_batch_size); Py_CLEAR(clear_module_state->__pyx_kp_u_batch_size_2); Py_CLEAR(clear_module_state->__pyx_n_s_best_epoch); Py_CLEAR(clear_module_state->__pyx_n_s_best_fitness); Py_CLEAR(clear_module_state->__pyx_kp_u_best_model_saved_as_best_pt_To); Py_CLEAR(clear_module_state->__pyx_n_s_bias); Py_CLEAR(clear_module_state->__pyx_n_u_bilinear); Py_CLEAR(clear_module_state->__pyx_n_s_bn); Py_CLEAR(clear_module_state->__pyx_n_s_call); Py_CLEAR(clear_module_state->__pyx_n_s_capture_output); Py_CLEAR(clear_module_state->__pyx_n_s_ceil); Py_CLEAR(clear_module_state->__pyx_n_u_ch); Py_CLEAR(clear_module_state->__pyx_n_s_check); Py_CLEAR(clear_module_state->__pyx_n_s_check_output); Py_CLEAR(clear_module_state->__pyx_n_s_class_getitem); Py_CLEAR(clear_module_state->__pyx_n_s_cline_in_traceback); Py_CLEAR(clear_module_state->__pyx_n_s_clone); Py_CLEAR(clear_module_state->__pyx_n_s_close); Py_CLEAR(clear_module_state->__pyx_n_s_cmd); Py_CLEAR(clear_module_state->__pyx_n_s_contextlib); Py_CLEAR(clear_module_state->__pyx_n_s_contextmanager); Py_CLEAR(clear_module_state->__pyx_n_s_conv); Py_CLEAR(clear_module_state->__pyx_n_s_copy); Py_CLEAR(clear_module_state->__pyx_n_s_copy_2); Py_CLEAR(clear_module_state->__pyx_n_s_copy_attr); Py_CLEAR(clear_module_state->__pyx_n_s_cpu); Py_CLEAR(clear_module_state->__pyx_n_u_cpu); Py_CLEAR(clear_module_state->__pyx_kp_u_cuda); Py_CLEAR(clear_module_state->__pyx_kp_u_cuda_0); Py_CLEAR(clear_module_state->__pyx_n_s_cuda_2); Py_CLEAR(clear_module_state->__pyx_n_s_d); Py_CLEAR(clear_module_state->__pyx_n_s_date_modified); Py_CLEAR(clear_module_state->__pyx_n_s_datetime); Py_CLEAR(clear_module_state->__pyx_n_s_day); Py_CLEAR(clear_module_state->__pyx_n_s_de_parallel); Py_CLEAR(clear_module_state->__pyx_n_s_decay); Py_CLEAR(clear_module_state->__pyx_n_s_decode); Py_CLEAR(clear_module_state->__pyx_n_s_deepcopy); Py_CLEAR(clear_module_state->__pyx_n_s_delta); Py_CLEAR(clear_module_state->__pyx_kp_u_describe_tags_long_always); Py_CLEAR(clear_module_state->__pyx_n_s_detach); Py_CLEAR(clear_module_state->__pyx_n_s_device); Py_CLEAR(clear_module_state->__pyx_n_s_device_count); Py_CLEAR(clear_module_state->__pyx_kp_u_device_count_function_only_works); Py_CLEAR(clear_module_state->__pyx_n_s_device_ids); Py_CLEAR(clear_module_state->__pyx_n_s_devices); Py_CLEAR(clear_module_state->__pyx_n_s_diag); Py_CLEAR(clear_module_state->__pyx_n_s_dict); Py_CLEAR(clear_module_state->__pyx_kp_u_disable); Py_CLEAR(clear_module_state->__pyx_n_s_dist); Py_CLEAR(clear_module_state->__pyx_n_s_distributed); Py_CLEAR(clear_module_state->__pyx_n_s_div); Py_CLEAR(clear_module_state->__pyx_n_s_doc); Py_CLEAR(clear_module_state->__pyx_n_s_dtype); Py_CLEAR(clear_module_state->__pyx_n_s_e); Py_CLEAR(clear_module_state->__pyx_n_s_ema); Py_CLEAR(clear_module_state->__pyx_n_s_empty_cache); Py_CLEAR(clear_module_state->__pyx_kp_u_enable); Py_CLEAR(clear_module_state->__pyx_n_s_encode); Py_CLEAR(clear_module_state->__pyx_n_s_end); Py_CLEAR(clear_module_state->__pyx_n_s_enter); Py_CLEAR(clear_module_state->__pyx_n_s_enumerate); Py_CLEAR(clear_module_state->__pyx_n_s_environ); Py_CLEAR(clear_module_state->__pyx_n_s_epoch); Py_CLEAR(clear_module_state->__pyx_kp_u_epochs_Best_results_observed_at); Py_CLEAR(clear_module_state->__pyx_n_s_eps); Py_CLEAR(clear_module_state->__pyx_n_s_eval); Py_CLEAR(clear_module_state->__pyx_n_s_exclude); Py_CLEAR(clear_module_state->__pyx_n_s_exit); Py_CLEAR(clear_module_state->__pyx_n_s_exp); Py_CLEAR(clear_module_state->__pyx_n_s_file); Py_CLEAR(clear_module_state->__pyx_n_s_find_modules); Py_CLEAR(clear_module_state->__pyx_n_s_fitness); Py_CLEAR(clear_module_state->__pyx_n_s_float16); Py_CLEAR(clear_module_state->__pyx_n_s_flops); Py_CLEAR(clear_module_state->__pyx_kp_u_forward_ms); Py_CLEAR(clear_module_state->__pyx_n_s_fromtimestamp); Py_CLEAR(clear_module_state->__pyx_n_s_fs); Py_CLEAR(clear_module_state->__pyx_n_s_functional); Py_CLEAR(clear_module_state->__pyx_n_s_fuse_conv_and_bn); Py_CLEAR(clear_module_state->__pyx_n_s_fusedconv); Py_CLEAR(clear_module_state->__pyx_kp_u_gc); Py_CLEAR(clear_module_state->__pyx_n_s_genexpr); Py_CLEAR(clear_module_state->__pyx_n_s_get); Py_CLEAR(clear_module_state->__pyx_n_s_get_device_properties); Py_CLEAR(clear_module_state->__pyx_kp_u_git_C); Py_CLEAR(clear_module_state->__pyx_n_s_git_describe); Py_CLEAR(clear_module_state->__pyx_n_u_gradient); Py_CLEAR(clear_module_state->__pyx_kp_u_gradients); Py_CLEAR(clear_module_state->__pyx_n_s_groups); Py_CLEAR(clear_module_state->__pyx_n_s_gs); Py_CLEAR(clear_module_state->__pyx_n_s_h); Py_CLEAR(clear_module_state->__pyx_n_s_half); Py_CLEAR(clear_module_state->__pyx_n_u_half); Py_CLEAR(clear_module_state->__pyx_n_s_i); Py_CLEAR(clear_module_state->__pyx_n_u_ignore); Py_CLEAR(clear_module_state->__pyx_n_s_img); Py_CLEAR(clear_module_state->__pyx_n_s_img_size); Py_CLEAR(clear_module_state->__pyx_n_s_import); Py_CLEAR(clear_module_state->__pyx_n_s_in_channels); Py_CLEAR(clear_module_state->__pyx_n_s_include); Py_CLEAR(clear_module_state->__pyx_n_u_inf); Py_CLEAR(clear_module_state->__pyx_n_s_info); Py_CLEAR(clear_module_state->__pyx_n_s_init); Py_CLEAR(clear_module_state->__pyx_n_s_init_subclass); Py_CLEAR(clear_module_state->__pyx_n_s_initialize_weights); Py_CLEAR(clear_module_state->__pyx_n_s_initializing); Py_CLEAR(clear_module_state->__pyx_n_s_inplace); Py_CLEAR(clear_module_state->__pyx_n_s_input); Py_CLEAR(clear_module_state->__pyx_n_u_input); Py_CLEAR(clear_module_state->__pyx_n_s_inputs); Py_CLEAR(clear_module_state->__pyx_n_s_int); Py_CLEAR(clear_module_state->__pyx_n_s_interpolate); Py_CLEAR(clear_module_state->__pyx_n_s_is_available); Py_CLEAR(clear_module_state->__pyx_n_s_is_coroutine); Py_CLEAR(clear_module_state->__pyx_n_s_is_floating_point); Py_CLEAR(clear_module_state->__pyx_n_s_is_parallel); Py_CLEAR(clear_module_state->__pyx_kp_u_isenabled); Py_CLEAR(clear_module_state->__pyx_n_s_items); Py_CLEAR(clear_module_state->__pyx_n_s_k); Py_CLEAR(clear_module_state->__pyx_n_s_kernel_size); Py_CLEAR(clear_module_state->__pyx_n_s_l1_unstructured); Py_CLEAR(clear_module_state->__pyx_n_u_layer); Py_CLEAR(clear_module_state->__pyx_kp_u_layers); Py_CLEAR(clear_module_state->__pyx_n_u_list); Py_CLEAR(clear_module_state->__pyx_n_s_local_rank); Py_CLEAR(clear_module_state->__pyx_n_s_lower); Py_CLEAR(clear_module_state->__pyx_n_s_m); Py_CLEAR(clear_module_state->__pyx_n_s_main); Py_CLEAR(clear_module_state->__pyx_n_s_math); Py_CLEAR(clear_module_state->__pyx_n_s_max); Py_CLEAR(clear_module_state->__pyx_n_s_mclass); Py_CLEAR(clear_module_state->__pyx_n_s_mean); Py_CLEAR(clear_module_state->__pyx_n_s_mem); Py_CLEAR(clear_module_state->__pyx_n_s_memory_reserved); Py_CLEAR(clear_module_state->__pyx_n_s_metaclass); Py_CLEAR(clear_module_state->__pyx_n_s_mm); Py_CLEAR(clear_module_state->__pyx_n_s_mode); Py_CLEAR(clear_module_state->__pyx_n_s_model); Py_CLEAR(clear_module_state->__pyx_n_s_model_info); Py_CLEAR(clear_module_state->__pyx_n_s_model_info_locals_genexpr); Py_CLEAR(clear_module_state->__pyx_n_s_module); Py_CLEAR(clear_module_state->__pyx_n_s_module_2); Py_CLEAR(clear_module_state->__pyx_n_s_module_list); Py_CLEAR(clear_module_state->__pyx_kp_u_module_list_2); Py_CLEAR(clear_module_state->__pyx_n_s_modules); Py_CLEAR(clear_module_state->__pyx_n_s_momentum); Py_CLEAR(clear_module_state->__pyx_n_s_month); Py_CLEAR(clear_module_state->__pyx_n_s_msd); Py_CLEAR(clear_module_state->__pyx_n_u_mu); Py_CLEAR(clear_module_state->__pyx_n_s_mul); Py_CLEAR(clear_module_state->__pyx_n_s_n); Py_CLEAR(clear_module_state->__pyx_n_s_n_g); Py_CLEAR(clear_module_state->__pyx_n_s_n_p); Py_CLEAR(clear_module_state->__pyx_n_s_name); Py_CLEAR(clear_module_state->__pyx_n_u_name); Py_CLEAR(clear_module_state->__pyx_n_s_name_2); Py_CLEAR(clear_module_state->__pyx_n_s_named_modules); Py_CLEAR(clear_module_state->__pyx_n_s_named_parameters); Py_CLEAR(clear_module_state->__pyx_n_u_nan); Py_CLEAR(clear_module_state->__pyx_n_s_newline); Py_CLEAR(clear_module_state->__pyx_n_s_nn); Py_CLEAR(clear_module_state->__pyx_n_s_no_grad); Py_CLEAR(clear_module_state->__pyx_kp_u_not_multiple_of_GPU_count); Py_CLEAR(clear_module_state->__pyx_n_s_numel); Py_CLEAR(clear_module_state->__pyx_kp_u_nvidia_smi_L_wc_l); Py_CLEAR(clear_module_state->__pyx_n_s_ops); Py_CLEAR(clear_module_state->__pyx_n_s_os); Py_CLEAR(clear_module_state->__pyx_n_s_out_channels); Py_CLEAR(clear_module_state->__pyx_n_u_output); Py_CLEAR(clear_module_state->__pyx_n_s_p); Py_CLEAR(clear_module_state->__pyx_n_s_pad); Py_CLEAR(clear_module_state->__pyx_n_s_padding); Py_CLEAR(clear_module_state->__pyx_n_s_parallel); Py_CLEAR(clear_module_state->__pyx_n_s_parameters); Py_CLEAR(clear_module_state->__pyx_n_u_parameters); Py_CLEAR(clear_module_state->__pyx_kp_u_parameters_2); Py_CLEAR(clear_module_state->__pyx_n_s_parent); Py_CLEAR(clear_module_state->__pyx_kp_u_pass_a_new_patience_value_i_e_p); Py_CLEAR(clear_module_state->__pyx_n_s_path); Py_CLEAR(clear_module_state->__pyx_n_s_pathlib); Py_CLEAR(clear_module_state->__pyx_n_s_patience); Py_CLEAR(clear_module_state->__pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils); Py_CLEAR(clear_module_state->__pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils_2); Py_CLEAR(clear_module_state->__pyx_kp_s_pdf_toolbox_lib_dia_yolov5_utils_3); Py_CLEAR(clear_module_state->__pyx_n_s_platform); Py_CLEAR(clear_module_state->__pyx_n_s_possible_stop); Py_CLEAR(clear_module_state->__pyx_n_s_prepare); Py_CLEAR(clear_module_state->__pyx_n_s_print); Py_CLEAR(clear_module_state->__pyx_n_u_process_group); Py_CLEAR(clear_module_state->__pyx_n_s_profile); Py_CLEAR(clear_module_state->__pyx_n_s_profile_locals_genexpr); Py_CLEAR(clear_module_state->__pyx_n_s_prune); Py_CLEAR(clear_module_state->__pyx_n_s_qualname); Py_CLEAR(clear_module_state->__pyx_n_s_range); Py_CLEAR(clear_module_state->__pyx_n_s_ratio); Py_CLEAR(clear_module_state->__pyx_n_u_reducer); Py_CLEAR(clear_module_state->__pyx_n_s_remove); Py_CLEAR(clear_module_state->__pyx_n_s_replace); Py_CLEAR(clear_module_state->__pyx_kp_u_requested_use_device_cpu_or_pas); Py_CLEAR(clear_module_state->__pyx_n_s_requires_grad); Py_CLEAR(clear_module_state->__pyx_n_s_requires_grad_2); Py_CLEAR(clear_module_state->__pyx_n_s_reshape); Py_CLEAR(clear_module_state->__pyx_n_s_results); Py_CLEAR(clear_module_state->__pyx_n_s_rstrip); Py_CLEAR(clear_module_state->__pyx_n_s_run); Py_CLEAR(clear_module_state->__pyx_n_s_running_mean); Py_CLEAR(clear_module_state->__pyx_n_s_running_var); Py_CLEAR(clear_module_state->__pyx_n_s_s); Py_CLEAR(clear_module_state->__pyx_n_s_s_in); Py_CLEAR(clear_module_state->__pyx_n_s_s_out); Py_CLEAR(clear_module_state->__pyx_n_s_same_shape); Py_CLEAR(clear_module_state->__pyx_n_s_scale_img); Py_CLEAR(clear_module_state->__pyx_n_s_scale_img_locals_genexpr); Py_CLEAR(clear_module_state->__pyx_n_s_select_device); Py_CLEAR(clear_module_state->__pyx_n_s_self); Py_CLEAR(clear_module_state->__pyx_n_s_send); Py_CLEAR(clear_module_state->__pyx_n_s_set_name); Py_CLEAR(clear_module_state->__pyx_n_s_shape); Py_CLEAR(clear_module_state->__pyx_n_u_shape); Py_CLEAR(clear_module_state->__pyx_n_s_shell); Py_CLEAR(clear_module_state->__pyx_n_u_sigma); Py_CLEAR(clear_module_state->__pyx_n_s_size); Py_CLEAR(clear_module_state->__pyx_n_s_space); Py_CLEAR(clear_module_state->__pyx_n_s_sparsity); Py_CLEAR(clear_module_state->__pyx_n_s_spec); Py_CLEAR(clear_module_state->__pyx_n_s_split); Py_CLEAR(clear_module_state->__pyx_n_s_sqrt); Py_CLEAR(clear_module_state->__pyx_n_s_st_mtime); Py_CLEAR(clear_module_state->__pyx_n_s_startswith); Py_CLEAR(clear_module_state->__pyx_n_s_stat); Py_CLEAR(clear_module_state->__pyx_n_s_state_dict); Py_CLEAR(clear_module_state->__pyx_n_s_std); Py_CLEAR(clear_module_state->__pyx_n_s_stderr); Py_CLEAR(clear_module_state->__pyx_n_s_stdout); Py_CLEAR(clear_module_state->__pyx_n_s_stop); Py_CLEAR(clear_module_state->__pyx_n_s_stride); Py_CLEAR(clear_module_state->__pyx_n_u_stride); Py_CLEAR(clear_module_state->__pyx_n_s_strip); Py_CLEAR(clear_module_state->__pyx_n_s_subprocess); Py_CLEAR(clear_module_state->__pyx_n_s_sum); Py_CLEAR(clear_module_state->__pyx_n_s_super); Py_CLEAR(clear_module_state->__pyx_n_s_synchronize); Py_CLEAR(clear_module_state->__pyx_n_s_sys); Py_CLEAR(clear_module_state->__pyx_n_s_system); Py_CLEAR(clear_module_state->__pyx_n_s_t); Py_CLEAR(clear_module_state->__pyx_n_s_tb); Py_CLEAR(clear_module_state->__pyx_n_s_test); Py_CLEAR(clear_module_state->__pyx_n_s_tf); Py_CLEAR(clear_module_state->__pyx_n_s_thop); Py_CLEAR(clear_module_state->__pyx_n_s_throw); Py_CLEAR(clear_module_state->__pyx_n_s_time); Py_CLEAR(clear_module_state->__pyx_n_s_time_sync); Py_CLEAR(clear_module_state->__pyx_n_s_to); Py_CLEAR(clear_module_state->__pyx_n_u_to); Py_CLEAR(clear_module_state->__pyx_kp_u_torch); Py_CLEAR(clear_module_state->__pyx_n_s_torch_2); Py_CLEAR(clear_module_state->__pyx_n_s_torch_distributed); Py_CLEAR(clear_module_state->__pyx_n_s_torch_distributed_zero_first); Py_CLEAR(clear_module_state->__pyx_n_s_torch_nn); Py_CLEAR(clear_module_state->__pyx_n_s_torch_nn_functional); Py_CLEAR(clear_module_state->__pyx_n_s_torch_nn_utils_prune); Py_CLEAR(clear_module_state->__pyx_n_s_total_memory); Py_CLEAR(clear_module_state->__pyx_n_s_update); Py_CLEAR(clear_module_state->__pyx_n_s_update_attr); Py_CLEAR(clear_module_state->__pyx_n_s_updates); Py_CLEAR(clear_module_state->__pyx_n_s_utils); Py_CLEAR(clear_module_state->__pyx_n_s_v); Py_CLEAR(clear_module_state->__pyx_n_s_value); Py_CLEAR(clear_module_state->__pyx_n_s_verbose); Py_CLEAR(clear_module_state->__pyx_n_s_version); Py_CLEAR(clear_module_state->__pyx_n_s_view); Py_CLEAR(clear_module_state->__pyx_n_s_w); Py_CLEAR(clear_module_state->__pyx_n_s_w_bn); Py_CLEAR(clear_module_state->__pyx_n_s_w_conv); Py_CLEAR(clear_module_state->__pyx_n_s_weight); Py_CLEAR(clear_module_state->__pyx_n_u_weight); Py_CLEAR(clear_module_state->__pyx_n_s_x); Py_CLEAR(clear_module_state->__pyx_n_s_y); Py_CLEAR(clear_module_state->__pyx_n_s_yaml); Py_CLEAR(clear_module_state->__pyx_n_s_year); Py_CLEAR(clear_module_state->__pyx_n_s_zeros); Py_CLEAR(clear_module_state->__pyx_float_0_0); Py_CLEAR(clear_module_state->__pyx_float_0_3); Py_CLEAR(clear_module_state->__pyx_float_1_0); Py_CLEAR(clear_module_state->__pyx_float_1E9); Py_CLEAR(clear_module_state->__pyx_float_0_03); Py_CLEAR(clear_module_state->__pyx_float_1eneg_3); Py_CLEAR(clear_module_state->__pyx_float_0_447); Py_CLEAR(clear_module_state->__pyx_float_0_9999); Py_CLEAR(clear_module_state->__pyx_int_0); Py_CLEAR(clear_module_state->__pyx_int_1); Py_CLEAR(clear_module_state->__pyx_int_2); Py_CLEAR(clear_module_state->__pyx_int_3); Py_CLEAR(clear_module_state->__pyx_int_10); Py_CLEAR(clear_module_state->__pyx_int_30); Py_CLEAR(clear_module_state->__pyx_int_32); Py_CLEAR(clear_module_state->__pyx_int_640); Py_CLEAR(clear_module_state->__pyx_int_1000); Py_CLEAR(clear_module_state->__pyx_int_2000); Py_CLEAR(clear_module_state->__pyx_int_1048576); Py_CLEAR(clear_module_state->__pyx_int_neg_1); Py_CLEAR(clear_module_state->__pyx_codeobj_); Py_CLEAR(clear_module_state->__pyx_slice__3); Py_CLEAR(clear_module_state->__pyx_tuple__6); Py_CLEAR(clear_module_state->__pyx_tuple__8); Py_CLEAR(clear_module_state->__pyx_slice__19); Py_CLEAR(clear_module_state->__pyx_tuple__11); Py_CLEAR(clear_module_state->__pyx_tuple__12); Py_CLEAR(clear_module_state->__pyx_tuple__14); Py_CLEAR(clear_module_state->__pyx_tuple__15); Py_CLEAR(clear_module_state->__pyx_tuple__16); Py_CLEAR(clear_module_state->__pyx_tuple__18); Py_CLEAR(clear_module_state->__pyx_tuple__21); Py_CLEAR(clear_module_state->__pyx_tuple__22); Py_CLEAR(clear_module_state->__pyx_tuple__23); Py_CLEAR(clear_module_state->__pyx_tuple__24); Py_CLEAR(clear_module_state->__pyx_tuple__25); Py_CLEAR(clear_module_state->__pyx_tuple__26); Py_CLEAR(clear_module_state->__pyx_tuple__27); Py_CLEAR(clear_module_state->__pyx_tuple__29); Py_CLEAR(clear_module_state->__pyx_tuple__31); Py_CLEAR(clear_module_state->__pyx_tuple__33); Py_CLEAR(clear_module_state->__pyx_tuple__35); Py_CLEAR(clear_module_state->__pyx_tuple__37); Py_CLEAR(clear_module_state->__pyx_tuple__39); Py_CLEAR(clear_module_state->__pyx_tuple__40); Py_CLEAR(clear_module_state->__pyx_tuple__43); Py_CLEAR(clear_module_state->__pyx_tuple__45); Py_CLEAR(clear_module_state->__pyx_tuple__47); Py_CLEAR(clear_module_state->__pyx_tuple__49); Py_CLEAR(clear_module_state->__pyx_tuple__51); Py_CLEAR(clear_module_state->__pyx_tuple__52); Py_CLEAR(clear_module_state->__pyx_tuple__54); Py_CLEAR(clear_module_state->__pyx_tuple__56); Py_CLEAR(clear_module_state->__pyx_tuple__57); Py_CLEAR(clear_module_state->__pyx_tuple__59); Py_CLEAR(clear_module_state->__pyx_tuple__60); Py_CLEAR(clear_module_state->__pyx_tuple__62); Py_CLEAR(clear_module_state->__pyx_tuple__63); Py_CLEAR(clear_module_state->__pyx_tuple__65); Py_CLEAR(clear_module_state->__pyx_tuple__66); Py_CLEAR(clear_module_state->__pyx_tuple__68); Py_CLEAR(clear_module_state->__pyx_tuple__70); Py_CLEAR(clear_module_state->__pyx_tuple__71); Py_CLEAR(clear_module_state->__pyx_tuple__73); Py_CLEAR(clear_module_state->__pyx_tuple__75); Py_CLEAR(clear_module_state->__pyx_codeobj__28); Py_CLEAR(clear_module_state->__pyx_codeobj__30); Py_CLEAR(clear_module_state->__pyx_codeobj__32); Py_CLEAR(clear_module_state->__pyx_codeobj__34); Py_CLEAR(clear_module_state->__pyx_codeobj__36); Py_CLEAR(clear_module_state->__pyx_codeobj__38); Py_CLEAR(clear_module_state->__pyx_codeobj__41); Py_CLEAR(clear_module_state->__pyx_codeobj__42); Py_CLEAR(clear_module_state->__pyx_codeobj__44); Py_CLEAR(clear_module_state->__pyx_codeobj__46); Py_CLEAR(clear_module_state->__pyx_codeobj__48); Py_CLEAR(clear_module_state->__pyx_codeobj__50); Py_CLEAR(clear_module_state->__pyx_codeobj__53); Py_CLEAR(clear_module_state->__pyx_codeobj__55); Py_CLEAR(clear_module_state->__pyx_codeobj__58); Py_CLEAR(clear_module_state->__pyx_codeobj__61); Py_CLEAR(clear_module_state->__pyx_codeobj__64); Py_CLEAR(clear_module_state->__pyx_codeobj__67); Py_CLEAR(clear_module_state->__pyx_codeobj__69); Py_CLEAR(clear_module_state->__pyx_codeobj__72); Py_CLEAR(clear_module_state->__pyx_codeobj__74); return 0; } #endif /* #### Code section: module_state_traverse ### */ #if CYTHON_USE_MODULE_STATE static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { __pyx_mstate *traverse_module_state = __pyx_mstate(m); if (!traverse_module_state) return 0; Py_VISIT(traverse_module_state->__pyx_d); Py_VISIT(traverse_module_state->__pyx_b); Py_VISIT(traverse_module_state->__pyx_cython_runtime); Py_VISIT(traverse_module_state->__pyx_empty_tuple); Py_VISIT(traverse_module_state->__pyx_empty_bytes); Py_VISIT(traverse_module_state->__pyx_empty_unicode); #ifdef __Pyx_CyFunction_USED Py_VISIT(traverse_module_state->__pyx_CyFunctionType); #endif #ifdef __Pyx_FusedFunction_USED Py_VISIT(traverse_module_state->__pyx_FusedFunctionType); #endif Py_VISIT(traverse_module_state->__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first); Py_VISIT(traverse_module_state->__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first); Py_VISIT(traverse_module_state->__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile); Py_VISIT(traverse_module_state->__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile); Py_VISIT(traverse_module_state->__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr); Py_VISIT(traverse_module_state->__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr); Py_VISIT(traverse_module_state->__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr); Py_VISIT(traverse_module_state->__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr); Py_VISIT(traverse_module_state->__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info); Py_VISIT(traverse_module_state->__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info); Py_VISIT(traverse_module_state->__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr); Py_VISIT(traverse_module_state->__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr); Py_VISIT(traverse_module_state->__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr); Py_VISIT(traverse_module_state->__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr); Py_VISIT(traverse_module_state->__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img); Py_VISIT(traverse_module_state->__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img); Py_VISIT(traverse_module_state->__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr); Py_VISIT(traverse_module_state->__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr); Py_VISIT(traverse_module_state->__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__); Py_VISIT(traverse_module_state->__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__); Py_VISIT(traverse_module_state->__pyx_kp_u_0); Py_VISIT(traverse_module_state->__pyx_kp_u_0f); Py_VISIT(traverse_module_state->__pyx_kp_u_1); Py_VISIT(traverse_module_state->__pyx_kp_u_10); Py_VISIT(traverse_module_state->__pyx_kp_u_12); Py_VISIT(traverse_module_state->__pyx_kp_u_12_2); Py_VISIT(traverse_module_state->__pyx_kp_u_12_4g); Py_VISIT(traverse_module_state->__pyx_kp_u_12s); Py_VISIT(traverse_module_state->__pyx_kp_u_14_3f); Py_VISIT(traverse_module_state->__pyx_kp_u_14_4g); Py_VISIT(traverse_module_state->__pyx_kp_u_14s); Py_VISIT(traverse_module_state->__pyx_kp_u_1f_GFLOPs); Py_VISIT(traverse_module_state->__pyx_kp_u_20); Py_VISIT(traverse_module_state->__pyx_kp_u_24s); Py_VISIT(traverse_module_state->__pyx_kp_u_3g_global_sparsity); Py_VISIT(traverse_module_state->__pyx_kp_u_40); Py_VISIT(traverse_module_state->__pyx_kp_u_5); Py_VISIT(traverse_module_state->__pyx_kp_u_5g_40s_9s_12g_20s_10_3g_10_3g); Py_VISIT(traverse_module_state->__pyx_kp_u_9); Py_VISIT(traverse_module_state->__pyx_n_s_AssertionError); Py_VISIT(traverse_module_state->__pyx_n_s_BatchNorm2d); Py_VISIT(traverse_module_state->__pyx_n_u_CPU); Py_VISIT(traverse_module_state->__pyx_kp_u_CUDA); Py_VISIT(traverse_module_state->__pyx_n_u_CUDA_VISIBLE_DEVICES); Py_VISIT(traverse_module_state->__pyx_n_s_CalledProcessError); Py_VISIT(traverse_module_state->__pyx_n_s_Conv2d); Py_VISIT(traverse_module_state->__pyx_n_s_DataParallel); Py_VISIT(traverse_module_state->__pyx_n_s_DistributedDataParallel); Py_VISIT(traverse_module_state->__pyx_n_s_EarlyStopping); Py_VISIT(traverse_module_state->__pyx_n_s_EarlyStopping___call); Py_VISIT(traverse_module_state->__pyx_n_s_EarlyStopping___init); Py_VISIT(traverse_module_state->__pyx_n_s_F); Py_VISIT(traverse_module_state->__pyx_n_u_GFLOPs); Py_VISIT(traverse_module_state->__pyx_kp_u_GPU_mem_GB); Py_VISIT(traverse_module_state->__pyx_n_s_Hardswish); Py_VISIT(traverse_module_state->__pyx_n_s_ImportError); Py_VISIT(traverse_module_state->__pyx_kp_u_Invalid_CUDA_device); Py_VISIT(traverse_module_state->__pyx_n_s_LOGGER); Py_VISIT(traverse_module_state->__pyx_n_s_LeakyReLU); Py_VISIT(traverse_module_state->__pyx_n_u_Linux); Py_VISIT(traverse_module_state->__pyx_kp_u_MiB); Py_VISIT(traverse_module_state->__pyx_n_s_ModelEMA); Py_VISIT(traverse_module_state->__pyx_n_s_ModelEMA___init); Py_VISIT(traverse_module_state->__pyx_n_s_ModelEMA___init___locals_lambda); Py_VISIT(traverse_module_state->__pyx_n_s_ModelEMA_update); Py_VISIT(traverse_module_state->__pyx_n_s_ModelEMA_update_attr); Py_VISIT(traverse_module_state->__pyx_kp_s_Model_Exponential_Moving_Averag); Py_VISIT(traverse_module_state->__pyx_kp_u_Model_Summary); Py_VISIT(traverse_module_state->__pyx_n_s_Module); Py_VISIT(traverse_module_state->__pyx_kp_u_None); Py_VISIT(traverse_module_state->__pyx_n_u_Params); Py_VISIT(traverse_module_state->__pyx_n_s_Path); Py_VISIT(traverse_module_state->__pyx_kp_u_Pruning_model); Py_VISIT(traverse_module_state->__pyx_n_s_ReLU); Py_VISIT(traverse_module_state->__pyx_n_s_ReLU6); Py_VISIT(traverse_module_state->__pyx_n_s_STDOUT); Py_VISIT(traverse_module_state->__pyx_n_s_SiLU); Py_VISIT(traverse_module_state->__pyx_kp_u_Stopping_training_early_as_no_im); Py_VISIT(traverse_module_state->__pyx_n_s_Tensor); Py_VISIT(traverse_module_state->__pyx_n_u_Windows); Py_VISIT(traverse_module_state->__pyx_kp_u_YOLOv5); Py_VISIT(traverse_module_state->__pyx_kp_u__10); Py_VISIT(traverse_module_state->__pyx_n_s__13); Py_VISIT(traverse_module_state->__pyx_kp_u__17); Py_VISIT(traverse_module_state->__pyx_kp_u__2); Py_VISIT(traverse_module_state->__pyx_n_s__20); Py_VISIT(traverse_module_state->__pyx_n_u__20); Py_VISIT(traverse_module_state->__pyx_kp_u__4); Py_VISIT(traverse_module_state->__pyx_kp_u__5); Py_VISIT(traverse_module_state->__pyx_kp_u__7); Py_VISIT(traverse_module_state->__pyx_n_s__76); Py_VISIT(traverse_module_state->__pyx_kp_u__9); Py_VISIT(traverse_module_state->__pyx_n_s_a); Py_VISIT(traverse_module_state->__pyx_n_s_align_corners); Py_VISIT(traverse_module_state->__pyx_n_s_amount); Py_VISIT(traverse_module_state->__pyx_n_s_args); Py_VISIT(traverse_module_state->__pyx_n_u_ascii); Py_VISIT(traverse_module_state->__pyx_n_s_asyncio_coroutines); Py_VISIT(traverse_module_state->__pyx_n_s_b); Py_VISIT(traverse_module_state->__pyx_n_s_b_bn); Py_VISIT(traverse_module_state->__pyx_n_s_b_conv); Py_VISIT(traverse_module_state->__pyx_n_s_backward); Py_VISIT(traverse_module_state->__pyx_kp_u_backward_ms); Py_VISIT(traverse_module_state->__pyx_n_s_barrier); Py_VISIT(traverse_module_state->__pyx_n_s_batch_size); Py_VISIT(traverse_module_state->__pyx_kp_u_batch_size_2); Py_VISIT(traverse_module_state->__pyx_n_s_best_epoch); Py_VISIT(traverse_module_state->__pyx_n_s_best_fitness); Py_VISIT(traverse_module_state->__pyx_kp_u_best_model_saved_as_best_pt_To); Py_VISIT(traverse_module_state->__pyx_n_s_bias); Py_VISIT(traverse_module_state->__pyx_n_u_bilinear); Py_VISIT(traverse_module_state->__pyx_n_s_bn); Py_VISIT(traverse_module_state->__pyx_n_s_call); Py_VISIT(traverse_module_state->__pyx_n_s_capture_output); Py_VISIT(traverse_module_state->__pyx_n_s_ceil); Py_VISIT(traverse_module_state->__pyx_n_u_ch); Py_VISIT(traverse_module_state->__pyx_n_s_check); Py_VISIT(traverse_module_state->__pyx_n_s_check_output); Py_VISIT(traverse_module_state->__pyx_n_s_class_getitem); Py_VISIT(traverse_module_state->__pyx_n_s_cline_in_traceback); Py_VISIT(traverse_module_state->__pyx_n_s_clone); Py_VISIT(traverse_module_state->__pyx_n_s_close); Py_VISIT(traverse_module_state->__pyx_n_s_cmd); Py_VISIT(traverse_module_state->__pyx_n_s_contextlib); Py_VISIT(traverse_module_state->__pyx_n_s_contextmanager); Py_VISIT(traverse_module_state->__pyx_n_s_conv); Py_VISIT(traverse_module_state->__pyx_n_s_copy); Py_VISIT(traverse_module_state->__pyx_n_s_copy_2); Py_VISIT(traverse_module_state->__pyx_n_s_copy_attr); Py_VISIT(traverse_module_state->__pyx_n_s_cpu); Py_VISIT(traverse_module_state->__pyx_n_u_cpu); Py_VISIT(traverse_module_state->__pyx_kp_u_cuda); Py_VISIT(traverse_module_state->__pyx_kp_u_cuda_0); Py_VISIT(traverse_module_state->__pyx_n_s_cuda_2); Py_VISIT(traverse_module_state->__pyx_n_s_d); Py_VISIT(traverse_module_state->__pyx_n_s_date_modified); Py_VISIT(traverse_module_state->__pyx_n_s_datetime); Py_VISIT(traverse_module_state->__pyx_n_s_day); Py_VISIT(traverse_module_state->__pyx_n_s_de_parallel); Py_VISIT(traverse_module_state->__pyx_n_s_decay); Py_VISIT(traverse_module_state->__pyx_n_s_decode); Py_VISIT(traverse_module_state->__pyx_n_s_deepcopy); Py_VISIT(traverse_module_state->__pyx_n_s_delta); Py_VISIT(traverse_module_state->__pyx_kp_u_describe_tags_long_always); Py_VISIT(traverse_module_state->__pyx_n_s_detach); Py_VISIT(traverse_module_state->__pyx_n_s_device); Py_VISIT(traverse_module_state->__pyx_n_s_device_count); Py_VISIT(traverse_module_state->__pyx_kp_u_device_count_function_only_works); Py_VISIT(traverse_module_state->__pyx_n_s_device_ids); Py_VISIT(traverse_module_state->__pyx_n_s_devices); Py_VISIT(traverse_module_state->__pyx_n_s_diag); Py_VISIT(traverse_module_state->__pyx_n_s_dict); Py_VISIT(traverse_module_state->__pyx_kp_u_disable); Py_VISIT(traverse_module_state->__pyx_n_s_dist); Py_VISIT(traverse_module_state->__pyx_n_s_distributed); Py_VISIT(traverse_module_state->__pyx_n_s_div); Py_VISIT(traverse_module_state->__pyx_n_s_doc); Py_VISIT(traverse_module_state->__pyx_n_s_dtype); Py_VISIT(traverse_module_state->__pyx_n_s_e); Py_VISIT(traverse_module_state->__pyx_n_s_ema); Py_VISIT(traverse_module_state->__pyx_n_s_empty_cache); Py_VISIT(traverse_module_state->__pyx_kp_u_enable); Py_VISIT(traverse_module_state->__pyx_n_s_encode); Py_VISIT(traverse_module_state->__pyx_n_s_end); Py_VISIT(traverse_module_state->__pyx_n_s_enter); Py_VISIT(traverse_module_state->__pyx_n_s_enumerate); Py_VISIT(traverse_module_state->__pyx_n_s_environ); Py_VISIT(traverse_module_state->__pyx_n_s_epoch); Py_VISIT(traverse_module_state->__pyx_kp_u_epochs_Best_results_observed_at); Py_VISIT(traverse_module_state->__pyx_n_s_eps); Py_VISIT(traverse_module_state->__pyx_n_s_eval); Py_VISIT(traverse_module_state->__pyx_n_s_exclude); Py_VISIT(traverse_module_state->__pyx_n_s_exit); Py_VISIT(traverse_module_state->__pyx_n_s_exp); Py_VISIT(traverse_module_state->__pyx_n_s_file); Py_VISIT(traverse_module_state->__pyx_n_s_find_modules); Py_VISIT(traverse_module_state->__pyx_n_s_fitness); Py_VISIT(traverse_module_state->__pyx_n_s_float16); Py_VISIT(traverse_module_state->__pyx_n_s_flops); Py_VISIT(traverse_module_state->__pyx_kp_u_forward_ms); Py_VISIT(traverse_module_state->__pyx_n_s_fromtimestamp); Py_VISIT(traverse_module_state->__pyx_n_s_fs); Py_VISIT(traverse_module_state->__pyx_n_s_functional); Py_VISIT(traverse_module_state->__pyx_n_s_fuse_conv_and_bn); Py_VISIT(traverse_module_state->__pyx_n_s_fusedconv); Py_VISIT(traverse_module_state->__pyx_kp_u_gc); Py_VISIT(traverse_module_state->__pyx_n_s_genexpr); Py_VISIT(traverse_module_state->__pyx_n_s_get); Py_VISIT(traverse_module_state->__pyx_n_s_get_device_properties); Py_VISIT(traverse_module_state->__pyx_kp_u_git_C); Py_VISIT(traverse_module_state->__pyx_n_s_git_describe); Py_VISIT(traverse_module_state->__pyx_n_u_gradient); Py_VISIT(traverse_module_state->__pyx_kp_u_gradients); Py_VISIT(traverse_module_state->__pyx_n_s_groups); Py_VISIT(traverse_module_state->__pyx_n_s_gs); Py_VISIT(traverse_module_state->__pyx_n_s_h); Py_VISIT(traverse_module_state->__pyx_n_s_half); Py_VISIT(traverse_module_state->__pyx_n_u_half); Py_VISIT(traverse_module_state->__pyx_n_s_i); Py_VISIT(traverse_module_state->__pyx_n_u_ignore); Py_VISIT(traverse_module_state->__pyx_n_s_img); Py_VISIT(traverse_module_state->__pyx_n_s_img_size); Py_VISIT(traverse_module_state->__pyx_n_s_import); Py_VISIT(traverse_module_state->__pyx_n_s_in_channels); Py_VISIT(traverse_module_state->__pyx_n_s_include); Py_VISIT(traverse_module_state->__pyx_n_u_inf); Py_VISIT(traverse_module_state->__pyx_n_s_info); Py_VISIT(traverse_module_state->__pyx_n_s_init); Py_VISIT(traverse_module_state->__pyx_n_s_init_subclass); Py_VISIT(traverse_module_state->__pyx_n_s_initialize_weights); Py_VISIT(traverse_module_state->__pyx_n_s_initializing); Py_VISIT(traverse_module_state->__pyx_n_s_inplace); Py_VISIT(traverse_module_state->__pyx_n_s_input); Py_VISIT(traverse_module_state->__pyx_n_u_input); Py_VISIT(traverse_module_state->__pyx_n_s_inputs); Py_VISIT(traverse_module_state->__pyx_n_s_int); Py_VISIT(traverse_module_state->__pyx_n_s_interpolate); Py_VISIT(traverse_module_state->__pyx_n_s_is_available); Py_VISIT(traverse_module_state->__pyx_n_s_is_coroutine); Py_VISIT(traverse_module_state->__pyx_n_s_is_floating_point); Py_VISIT(traverse_module_state->__pyx_n_s_is_parallel); Py_VISIT(traverse_module_state->__pyx_kp_u_isenabled); Py_VISIT(traverse_module_state->__pyx_n_s_items); Py_VISIT(traverse_module_state->__pyx_n_s_k); Py_VISIT(traverse_module_state->__pyx_n_s_kernel_size); Py_VISIT(traverse_module_state->__pyx_n_s_l1_unstructured); Py_VISIT(traverse_module_state->__pyx_n_u_layer); Py_VISIT(traverse_module_state->__pyx_kp_u_layers); Py_VISIT(traverse_module_state->__pyx_n_u_list); Py_VISIT(traverse_module_state->__pyx_n_s_local_rank); Py_VISIT(traverse_module_state->__pyx_n_s_lower); Py_VISIT(traverse_module_state->__pyx_n_s_m); Py_VISIT(traverse_module_state->__pyx_n_s_main); Py_VISIT(traverse_module_state->__pyx_n_s_math); Py_VISIT(traverse_module_state->__pyx_n_s_max); Py_VISIT(traverse_module_state->__pyx_n_s_mclass); Py_VISIT(traverse_module_state->__pyx_n_s_mean); Py_VISIT(traverse_module_state->__pyx_n_s_mem); Py_VISIT(traverse_module_state->__pyx_n_s_memory_reserved); Py_VISIT(traverse_module_state->__pyx_n_s_metaclass); Py_VISIT(traverse_module_state->__pyx_n_s_mm); Py_VISIT(traverse_module_state->__pyx_n_s_mode); Py_VISIT(traverse_module_state->__pyx_n_s_model); Py_VISIT(traverse_module_state->__pyx_n_s_model_info); Py_VISIT(traverse_module_state->__pyx_n_s_model_info_locals_genexpr); Py_VISIT(traverse_module_state->__pyx_n_s_module); Py_VISIT(traverse_module_state->__pyx_n_s_module_2); Py_VISIT(traverse_module_state->__pyx_n_s_module_list); Py_VISIT(traverse_module_state->__pyx_kp_u_module_list_2); Py_VISIT(traverse_module_state->__pyx_n_s_modules); Py_VISIT(traverse_module_state->__pyx_n_s_momentum); Py_VISIT(traverse_module_state->__pyx_n_s_month); Py_VISIT(traverse_module_state->__pyx_n_s_msd); Py_VISIT(traverse_module_state->__pyx_n_u_mu); Py_VISIT(traverse_module_state->__pyx_n_s_mul); Py_VISIT(traverse_module_state->__pyx_n_s_n); Py_VISIT(traverse_module_state->__pyx_n_s_n_g); Py_VISIT(traverse_module_state->__pyx_n_s_n_p); Py_VISIT(traverse_module_state->__pyx_n_s_name); Py_VISIT(traverse_module_state->__pyx_n_u_name); Py_VISIT(traverse_module_state->__pyx_n_s_name_2); Py_VISIT(traverse_module_state->__pyx_n_s_named_modules); Py_VISIT(traverse_module_state->__pyx_n_s_named_parameters); Py_VISIT(traverse_module_state->__pyx_n_u_nan); Py_VISIT(traverse_module_state->__pyx_n_s_newline); Py_VISIT(traverse_module_state->__pyx_n_s_nn); Py_VISIT(traverse_module_state->__pyx_n_s_no_grad); Py_VISIT(traverse_module_state->__pyx_kp_u_not_multiple_of_GPU_count); Py_VISIT(traverse_module_state->__pyx_n_s_numel); Py_VISIT(traverse_module_state->__pyx_kp_u_nvidia_smi_L_wc_l); Py_VISIT(traverse_module_state->__pyx_n_s_ops); Py_VISIT(traverse_module_state->__pyx_n_s_os); Py_VISIT(traverse_module_state->__pyx_n_s_out_channels); Py_VISIT(traverse_module_state->__pyx_n_u_output); Py_VISIT(traverse_module_state->__pyx_n_s_p); Py_VISIT(traverse_module_state->__pyx_n_s_pad); Py_VISIT(traverse_module_state->__pyx_n_s_padding); Py_VISIT(traverse_module_state->__pyx_n_s_parallel); Py_VISIT(traverse_module_state->__pyx_n_s_parameters); Py_VISIT(traverse_module_state->__pyx_n_u_parameters); Py_VISIT(traverse_module_state->__pyx_kp_u_parameters_2); Py_VISIT(traverse_module_state->__pyx_n_s_parent); Py_VISIT(traverse_module_state->__pyx_kp_u_pass_a_new_patience_value_i_e_p); Py_VISIT(traverse_module_state->__pyx_n_s_path); Py_VISIT(traverse_module_state->__pyx_n_s_pathlib); Py_VISIT(traverse_module_state->__pyx_n_s_patience); Py_VISIT(traverse_module_state->__pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils); Py_VISIT(traverse_module_state->__pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils_2); Py_VISIT(traverse_module_state->__pyx_kp_s_pdf_toolbox_lib_dia_yolov5_utils_3); Py_VISIT(traverse_module_state->__pyx_n_s_platform); Py_VISIT(traverse_module_state->__pyx_n_s_possible_stop); Py_VISIT(traverse_module_state->__pyx_n_s_prepare); Py_VISIT(traverse_module_state->__pyx_n_s_print); Py_VISIT(traverse_module_state->__pyx_n_u_process_group); Py_VISIT(traverse_module_state->__pyx_n_s_profile); Py_VISIT(traverse_module_state->__pyx_n_s_profile_locals_genexpr); Py_VISIT(traverse_module_state->__pyx_n_s_prune); Py_VISIT(traverse_module_state->__pyx_n_s_qualname); Py_VISIT(traverse_module_state->__pyx_n_s_range); Py_VISIT(traverse_module_state->__pyx_n_s_ratio); Py_VISIT(traverse_module_state->__pyx_n_u_reducer); Py_VISIT(traverse_module_state->__pyx_n_s_remove); Py_VISIT(traverse_module_state->__pyx_n_s_replace); Py_VISIT(traverse_module_state->__pyx_kp_u_requested_use_device_cpu_or_pas); Py_VISIT(traverse_module_state->__pyx_n_s_requires_grad); Py_VISIT(traverse_module_state->__pyx_n_s_requires_grad_2); Py_VISIT(traverse_module_state->__pyx_n_s_reshape); Py_VISIT(traverse_module_state->__pyx_n_s_results); Py_VISIT(traverse_module_state->__pyx_n_s_rstrip); Py_VISIT(traverse_module_state->__pyx_n_s_run); Py_VISIT(traverse_module_state->__pyx_n_s_running_mean); Py_VISIT(traverse_module_state->__pyx_n_s_running_var); Py_VISIT(traverse_module_state->__pyx_n_s_s); Py_VISIT(traverse_module_state->__pyx_n_s_s_in); Py_VISIT(traverse_module_state->__pyx_n_s_s_out); Py_VISIT(traverse_module_state->__pyx_n_s_same_shape); Py_VISIT(traverse_module_state->__pyx_n_s_scale_img); Py_VISIT(traverse_module_state->__pyx_n_s_scale_img_locals_genexpr); Py_VISIT(traverse_module_state->__pyx_n_s_select_device); Py_VISIT(traverse_module_state->__pyx_n_s_self); Py_VISIT(traverse_module_state->__pyx_n_s_send); Py_VISIT(traverse_module_state->__pyx_n_s_set_name); Py_VISIT(traverse_module_state->__pyx_n_s_shape); Py_VISIT(traverse_module_state->__pyx_n_u_shape); Py_VISIT(traverse_module_state->__pyx_n_s_shell); Py_VISIT(traverse_module_state->__pyx_n_u_sigma); Py_VISIT(traverse_module_state->__pyx_n_s_size); Py_VISIT(traverse_module_state->__pyx_n_s_space); Py_VISIT(traverse_module_state->__pyx_n_s_sparsity); Py_VISIT(traverse_module_state->__pyx_n_s_spec); Py_VISIT(traverse_module_state->__pyx_n_s_split); Py_VISIT(traverse_module_state->__pyx_n_s_sqrt); Py_VISIT(traverse_module_state->__pyx_n_s_st_mtime); Py_VISIT(traverse_module_state->__pyx_n_s_startswith); Py_VISIT(traverse_module_state->__pyx_n_s_stat); Py_VISIT(traverse_module_state->__pyx_n_s_state_dict); Py_VISIT(traverse_module_state->__pyx_n_s_std); Py_VISIT(traverse_module_state->__pyx_n_s_stderr); Py_VISIT(traverse_module_state->__pyx_n_s_stdout); Py_VISIT(traverse_module_state->__pyx_n_s_stop); Py_VISIT(traverse_module_state->__pyx_n_s_stride); Py_VISIT(traverse_module_state->__pyx_n_u_stride); Py_VISIT(traverse_module_state->__pyx_n_s_strip); Py_VISIT(traverse_module_state->__pyx_n_s_subprocess); Py_VISIT(traverse_module_state->__pyx_n_s_sum); Py_VISIT(traverse_module_state->__pyx_n_s_super); Py_VISIT(traverse_module_state->__pyx_n_s_synchronize); Py_VISIT(traverse_module_state->__pyx_n_s_sys); Py_VISIT(traverse_module_state->__pyx_n_s_system); Py_VISIT(traverse_module_state->__pyx_n_s_t); Py_VISIT(traverse_module_state->__pyx_n_s_tb); Py_VISIT(traverse_module_state->__pyx_n_s_test); Py_VISIT(traverse_module_state->__pyx_n_s_tf); Py_VISIT(traverse_module_state->__pyx_n_s_thop); Py_VISIT(traverse_module_state->__pyx_n_s_throw); Py_VISIT(traverse_module_state->__pyx_n_s_time); Py_VISIT(traverse_module_state->__pyx_n_s_time_sync); Py_VISIT(traverse_module_state->__pyx_n_s_to); Py_VISIT(traverse_module_state->__pyx_n_u_to); Py_VISIT(traverse_module_state->__pyx_kp_u_torch); Py_VISIT(traverse_module_state->__pyx_n_s_torch_2); Py_VISIT(traverse_module_state->__pyx_n_s_torch_distributed); Py_VISIT(traverse_module_state->__pyx_n_s_torch_distributed_zero_first); Py_VISIT(traverse_module_state->__pyx_n_s_torch_nn); Py_VISIT(traverse_module_state->__pyx_n_s_torch_nn_functional); Py_VISIT(traverse_module_state->__pyx_n_s_torch_nn_utils_prune); Py_VISIT(traverse_module_state->__pyx_n_s_total_memory); Py_VISIT(traverse_module_state->__pyx_n_s_update); Py_VISIT(traverse_module_state->__pyx_n_s_update_attr); Py_VISIT(traverse_module_state->__pyx_n_s_updates); Py_VISIT(traverse_module_state->__pyx_n_s_utils); Py_VISIT(traverse_module_state->__pyx_n_s_v); Py_VISIT(traverse_module_state->__pyx_n_s_value); Py_VISIT(traverse_module_state->__pyx_n_s_verbose); Py_VISIT(traverse_module_state->__pyx_n_s_version); Py_VISIT(traverse_module_state->__pyx_n_s_view); Py_VISIT(traverse_module_state->__pyx_n_s_w); Py_VISIT(traverse_module_state->__pyx_n_s_w_bn); Py_VISIT(traverse_module_state->__pyx_n_s_w_conv); Py_VISIT(traverse_module_state->__pyx_n_s_weight); Py_VISIT(traverse_module_state->__pyx_n_u_weight); Py_VISIT(traverse_module_state->__pyx_n_s_x); Py_VISIT(traverse_module_state->__pyx_n_s_y); Py_VISIT(traverse_module_state->__pyx_n_s_yaml); Py_VISIT(traverse_module_state->__pyx_n_s_year); Py_VISIT(traverse_module_state->__pyx_n_s_zeros); Py_VISIT(traverse_module_state->__pyx_float_0_0); Py_VISIT(traverse_module_state->__pyx_float_0_3); Py_VISIT(traverse_module_state->__pyx_float_1_0); Py_VISIT(traverse_module_state->__pyx_float_1E9); Py_VISIT(traverse_module_state->__pyx_float_0_03); Py_VISIT(traverse_module_state->__pyx_float_1eneg_3); Py_VISIT(traverse_module_state->__pyx_float_0_447); Py_VISIT(traverse_module_state->__pyx_float_0_9999); Py_VISIT(traverse_module_state->__pyx_int_0); Py_VISIT(traverse_module_state->__pyx_int_1); Py_VISIT(traverse_module_state->__pyx_int_2); Py_VISIT(traverse_module_state->__pyx_int_3); Py_VISIT(traverse_module_state->__pyx_int_10); Py_VISIT(traverse_module_state->__pyx_int_30); Py_VISIT(traverse_module_state->__pyx_int_32); Py_VISIT(traverse_module_state->__pyx_int_640); Py_VISIT(traverse_module_state->__pyx_int_1000); Py_VISIT(traverse_module_state->__pyx_int_2000); Py_VISIT(traverse_module_state->__pyx_int_1048576); Py_VISIT(traverse_module_state->__pyx_int_neg_1); Py_VISIT(traverse_module_state->__pyx_codeobj_); Py_VISIT(traverse_module_state->__pyx_slice__3); Py_VISIT(traverse_module_state->__pyx_tuple__6); Py_VISIT(traverse_module_state->__pyx_tuple__8); Py_VISIT(traverse_module_state->__pyx_slice__19); Py_VISIT(traverse_module_state->__pyx_tuple__11); Py_VISIT(traverse_module_state->__pyx_tuple__12); Py_VISIT(traverse_module_state->__pyx_tuple__14); Py_VISIT(traverse_module_state->__pyx_tuple__15); Py_VISIT(traverse_module_state->__pyx_tuple__16); Py_VISIT(traverse_module_state->__pyx_tuple__18); Py_VISIT(traverse_module_state->__pyx_tuple__21); Py_VISIT(traverse_module_state->__pyx_tuple__22); Py_VISIT(traverse_module_state->__pyx_tuple__23); Py_VISIT(traverse_module_state->__pyx_tuple__24); Py_VISIT(traverse_module_state->__pyx_tuple__25); Py_VISIT(traverse_module_state->__pyx_tuple__26); Py_VISIT(traverse_module_state->__pyx_tuple__27); Py_VISIT(traverse_module_state->__pyx_tuple__29); Py_VISIT(traverse_module_state->__pyx_tuple__31); Py_VISIT(traverse_module_state->__pyx_tuple__33); Py_VISIT(traverse_module_state->__pyx_tuple__35); Py_VISIT(traverse_module_state->__pyx_tuple__37); Py_VISIT(traverse_module_state->__pyx_tuple__39); Py_VISIT(traverse_module_state->__pyx_tuple__40); Py_VISIT(traverse_module_state->__pyx_tuple__43); Py_VISIT(traverse_module_state->__pyx_tuple__45); Py_VISIT(traverse_module_state->__pyx_tuple__47); Py_VISIT(traverse_module_state->__pyx_tuple__49); Py_VISIT(traverse_module_state->__pyx_tuple__51); Py_VISIT(traverse_module_state->__pyx_tuple__52); Py_VISIT(traverse_module_state->__pyx_tuple__54); Py_VISIT(traverse_module_state->__pyx_tuple__56); Py_VISIT(traverse_module_state->__pyx_tuple__57); Py_VISIT(traverse_module_state->__pyx_tuple__59); Py_VISIT(traverse_module_state->__pyx_tuple__60); Py_VISIT(traverse_module_state->__pyx_tuple__62); Py_VISIT(traverse_module_state->__pyx_tuple__63); Py_VISIT(traverse_module_state->__pyx_tuple__65); Py_VISIT(traverse_module_state->__pyx_tuple__66); Py_VISIT(traverse_module_state->__pyx_tuple__68); Py_VISIT(traverse_module_state->__pyx_tuple__70); Py_VISIT(traverse_module_state->__pyx_tuple__71); Py_VISIT(traverse_module_state->__pyx_tuple__73); Py_VISIT(traverse_module_state->__pyx_tuple__75); Py_VISIT(traverse_module_state->__pyx_codeobj__28); Py_VISIT(traverse_module_state->__pyx_codeobj__30); Py_VISIT(traverse_module_state->__pyx_codeobj__32); Py_VISIT(traverse_module_state->__pyx_codeobj__34); Py_VISIT(traverse_module_state->__pyx_codeobj__36); Py_VISIT(traverse_module_state->__pyx_codeobj__38); Py_VISIT(traverse_module_state->__pyx_codeobj__41); Py_VISIT(traverse_module_state->__pyx_codeobj__42); Py_VISIT(traverse_module_state->__pyx_codeobj__44); Py_VISIT(traverse_module_state->__pyx_codeobj__46); Py_VISIT(traverse_module_state->__pyx_codeobj__48); Py_VISIT(traverse_module_state->__pyx_codeobj__50); Py_VISIT(traverse_module_state->__pyx_codeobj__53); Py_VISIT(traverse_module_state->__pyx_codeobj__55); Py_VISIT(traverse_module_state->__pyx_codeobj__58); Py_VISIT(traverse_module_state->__pyx_codeobj__61); Py_VISIT(traverse_module_state->__pyx_codeobj__64); Py_VISIT(traverse_module_state->__pyx_codeobj__67); Py_VISIT(traverse_module_state->__pyx_codeobj__69); Py_VISIT(traverse_module_state->__pyx_codeobj__72); Py_VISIT(traverse_module_state->__pyx_codeobj__74); return 0; } #endif /* #### Code section: module_state_defines ### */ #if CYTHON_USE_MODULE_STATE #define __pyx_d __pyx_mstate_global->__pyx_d #define __pyx_b __pyx_mstate_global->__pyx_b #define __pyx_cython_runtime __pyx_mstate_global->__pyx_cython_runtime #define __pyx_empty_tuple __pyx_mstate_global->__pyx_empty_tuple #define __pyx_empty_bytes __pyx_mstate_global->__pyx_empty_bytes #define __pyx_empty_unicode __pyx_mstate_global->__pyx_empty_unicode #ifdef __Pyx_CyFunction_USED #define __pyx_CyFunctionType __pyx_mstate_global->__pyx_CyFunctionType #endif #ifdef __Pyx_FusedFunction_USED #define __pyx_FusedFunctionType __pyx_mstate_global->__pyx_FusedFunctionType #endif #define __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first __pyx_mstate_global->__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first #define __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first __pyx_mstate_global->__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first #define __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile __pyx_mstate_global->__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile #define __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile __pyx_mstate_global->__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile #define __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr __pyx_mstate_global->__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr #define __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr __pyx_mstate_global->__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr #define __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr __pyx_mstate_global->__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr #define __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr __pyx_mstate_global->__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr #define __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info __pyx_mstate_global->__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info #define __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info __pyx_mstate_global->__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info #define __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr __pyx_mstate_global->__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr #define __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr __pyx_mstate_global->__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr #define __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr __pyx_mstate_global->__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr #define __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr __pyx_mstate_global->__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr #define __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img __pyx_mstate_global->__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img #define __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img __pyx_mstate_global->__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img #define __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr __pyx_mstate_global->__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr #define __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr __pyx_mstate_global->__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr #define __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__ __pyx_mstate_global->__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__ #define __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__ __pyx_mstate_global->__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__ #define __pyx_kp_u_0 __pyx_mstate_global->__pyx_kp_u_0 #define __pyx_kp_u_0f __pyx_mstate_global->__pyx_kp_u_0f #define __pyx_kp_u_1 __pyx_mstate_global->__pyx_kp_u_1 #define __pyx_kp_u_10 __pyx_mstate_global->__pyx_kp_u_10 #define __pyx_kp_u_12 __pyx_mstate_global->__pyx_kp_u_12 #define __pyx_kp_u_12_2 __pyx_mstate_global->__pyx_kp_u_12_2 #define __pyx_kp_u_12_4g __pyx_mstate_global->__pyx_kp_u_12_4g #define __pyx_kp_u_12s __pyx_mstate_global->__pyx_kp_u_12s #define __pyx_kp_u_14_3f __pyx_mstate_global->__pyx_kp_u_14_3f #define __pyx_kp_u_14_4g __pyx_mstate_global->__pyx_kp_u_14_4g #define __pyx_kp_u_14s __pyx_mstate_global->__pyx_kp_u_14s #define __pyx_kp_u_1f_GFLOPs __pyx_mstate_global->__pyx_kp_u_1f_GFLOPs #define __pyx_kp_u_20 __pyx_mstate_global->__pyx_kp_u_20 #define __pyx_kp_u_24s __pyx_mstate_global->__pyx_kp_u_24s #define __pyx_kp_u_3g_global_sparsity __pyx_mstate_global->__pyx_kp_u_3g_global_sparsity #define __pyx_kp_u_40 __pyx_mstate_global->__pyx_kp_u_40 #define __pyx_kp_u_5 __pyx_mstate_global->__pyx_kp_u_5 #define __pyx_kp_u_5g_40s_9s_12g_20s_10_3g_10_3g __pyx_mstate_global->__pyx_kp_u_5g_40s_9s_12g_20s_10_3g_10_3g #define __pyx_kp_u_9 __pyx_mstate_global->__pyx_kp_u_9 #define __pyx_n_s_AssertionError __pyx_mstate_global->__pyx_n_s_AssertionError #define __pyx_n_s_BatchNorm2d __pyx_mstate_global->__pyx_n_s_BatchNorm2d #define __pyx_n_u_CPU __pyx_mstate_global->__pyx_n_u_CPU #define __pyx_kp_u_CUDA __pyx_mstate_global->__pyx_kp_u_CUDA #define __pyx_n_u_CUDA_VISIBLE_DEVICES __pyx_mstate_global->__pyx_n_u_CUDA_VISIBLE_DEVICES #define __pyx_n_s_CalledProcessError __pyx_mstate_global->__pyx_n_s_CalledProcessError #define __pyx_n_s_Conv2d __pyx_mstate_global->__pyx_n_s_Conv2d #define __pyx_n_s_DataParallel __pyx_mstate_global->__pyx_n_s_DataParallel #define __pyx_n_s_DistributedDataParallel __pyx_mstate_global->__pyx_n_s_DistributedDataParallel #define __pyx_n_s_EarlyStopping __pyx_mstate_global->__pyx_n_s_EarlyStopping #define __pyx_n_s_EarlyStopping___call __pyx_mstate_global->__pyx_n_s_EarlyStopping___call #define __pyx_n_s_EarlyStopping___init __pyx_mstate_global->__pyx_n_s_EarlyStopping___init #define __pyx_n_s_F __pyx_mstate_global->__pyx_n_s_F #define __pyx_n_u_GFLOPs __pyx_mstate_global->__pyx_n_u_GFLOPs #define __pyx_kp_u_GPU_mem_GB __pyx_mstate_global->__pyx_kp_u_GPU_mem_GB #define __pyx_n_s_Hardswish __pyx_mstate_global->__pyx_n_s_Hardswish #define __pyx_n_s_ImportError __pyx_mstate_global->__pyx_n_s_ImportError #define __pyx_kp_u_Invalid_CUDA_device __pyx_mstate_global->__pyx_kp_u_Invalid_CUDA_device #define __pyx_n_s_LOGGER __pyx_mstate_global->__pyx_n_s_LOGGER #define __pyx_n_s_LeakyReLU __pyx_mstate_global->__pyx_n_s_LeakyReLU #define __pyx_n_u_Linux __pyx_mstate_global->__pyx_n_u_Linux #define __pyx_kp_u_MiB __pyx_mstate_global->__pyx_kp_u_MiB #define __pyx_n_s_ModelEMA __pyx_mstate_global->__pyx_n_s_ModelEMA #define __pyx_n_s_ModelEMA___init __pyx_mstate_global->__pyx_n_s_ModelEMA___init #define __pyx_n_s_ModelEMA___init___locals_lambda __pyx_mstate_global->__pyx_n_s_ModelEMA___init___locals_lambda #define __pyx_n_s_ModelEMA_update __pyx_mstate_global->__pyx_n_s_ModelEMA_update #define __pyx_n_s_ModelEMA_update_attr __pyx_mstate_global->__pyx_n_s_ModelEMA_update_attr #define __pyx_kp_s_Model_Exponential_Moving_Averag __pyx_mstate_global->__pyx_kp_s_Model_Exponential_Moving_Averag #define __pyx_kp_u_Model_Summary __pyx_mstate_global->__pyx_kp_u_Model_Summary #define __pyx_n_s_Module __pyx_mstate_global->__pyx_n_s_Module #define __pyx_kp_u_None __pyx_mstate_global->__pyx_kp_u_None #define __pyx_n_u_Params __pyx_mstate_global->__pyx_n_u_Params #define __pyx_n_s_Path __pyx_mstate_global->__pyx_n_s_Path #define __pyx_kp_u_Pruning_model __pyx_mstate_global->__pyx_kp_u_Pruning_model #define __pyx_n_s_ReLU __pyx_mstate_global->__pyx_n_s_ReLU #define __pyx_n_s_ReLU6 __pyx_mstate_global->__pyx_n_s_ReLU6 #define __pyx_n_s_STDOUT __pyx_mstate_global->__pyx_n_s_STDOUT #define __pyx_n_s_SiLU __pyx_mstate_global->__pyx_n_s_SiLU #define __pyx_kp_u_Stopping_training_early_as_no_im __pyx_mstate_global->__pyx_kp_u_Stopping_training_early_as_no_im #define __pyx_n_s_Tensor __pyx_mstate_global->__pyx_n_s_Tensor #define __pyx_n_u_Windows __pyx_mstate_global->__pyx_n_u_Windows #define __pyx_kp_u_YOLOv5 __pyx_mstate_global->__pyx_kp_u_YOLOv5 #define __pyx_kp_u__10 __pyx_mstate_global->__pyx_kp_u__10 #define __pyx_n_s__13 __pyx_mstate_global->__pyx_n_s__13 #define __pyx_kp_u__17 __pyx_mstate_global->__pyx_kp_u__17 #define __pyx_kp_u__2 __pyx_mstate_global->__pyx_kp_u__2 #define __pyx_n_s__20 __pyx_mstate_global->__pyx_n_s__20 #define __pyx_n_u__20 __pyx_mstate_global->__pyx_n_u__20 #define __pyx_kp_u__4 __pyx_mstate_global->__pyx_kp_u__4 #define __pyx_kp_u__5 __pyx_mstate_global->__pyx_kp_u__5 #define __pyx_kp_u__7 __pyx_mstate_global->__pyx_kp_u__7 #define __pyx_n_s__76 __pyx_mstate_global->__pyx_n_s__76 #define __pyx_kp_u__9 __pyx_mstate_global->__pyx_kp_u__9 #define __pyx_n_s_a __pyx_mstate_global->__pyx_n_s_a #define __pyx_n_s_align_corners __pyx_mstate_global->__pyx_n_s_align_corners #define __pyx_n_s_amount __pyx_mstate_global->__pyx_n_s_amount #define __pyx_n_s_args __pyx_mstate_global->__pyx_n_s_args #define __pyx_n_u_ascii __pyx_mstate_global->__pyx_n_u_ascii #define __pyx_n_s_asyncio_coroutines __pyx_mstate_global->__pyx_n_s_asyncio_coroutines #define __pyx_n_s_b __pyx_mstate_global->__pyx_n_s_b #define __pyx_n_s_b_bn __pyx_mstate_global->__pyx_n_s_b_bn #define __pyx_n_s_b_conv __pyx_mstate_global->__pyx_n_s_b_conv #define __pyx_n_s_backward __pyx_mstate_global->__pyx_n_s_backward #define __pyx_kp_u_backward_ms __pyx_mstate_global->__pyx_kp_u_backward_ms #define __pyx_n_s_barrier __pyx_mstate_global->__pyx_n_s_barrier #define __pyx_n_s_batch_size __pyx_mstate_global->__pyx_n_s_batch_size #define __pyx_kp_u_batch_size_2 __pyx_mstate_global->__pyx_kp_u_batch_size_2 #define __pyx_n_s_best_epoch __pyx_mstate_global->__pyx_n_s_best_epoch #define __pyx_n_s_best_fitness __pyx_mstate_global->__pyx_n_s_best_fitness #define __pyx_kp_u_best_model_saved_as_best_pt_To __pyx_mstate_global->__pyx_kp_u_best_model_saved_as_best_pt_To #define __pyx_n_s_bias __pyx_mstate_global->__pyx_n_s_bias #define __pyx_n_u_bilinear __pyx_mstate_global->__pyx_n_u_bilinear #define __pyx_n_s_bn __pyx_mstate_global->__pyx_n_s_bn #define __pyx_n_s_call __pyx_mstate_global->__pyx_n_s_call #define __pyx_n_s_capture_output __pyx_mstate_global->__pyx_n_s_capture_output #define __pyx_n_s_ceil __pyx_mstate_global->__pyx_n_s_ceil #define __pyx_n_u_ch __pyx_mstate_global->__pyx_n_u_ch #define __pyx_n_s_check __pyx_mstate_global->__pyx_n_s_check #define __pyx_n_s_check_output __pyx_mstate_global->__pyx_n_s_check_output #define __pyx_n_s_class_getitem __pyx_mstate_global->__pyx_n_s_class_getitem #define __pyx_n_s_cline_in_traceback __pyx_mstate_global->__pyx_n_s_cline_in_traceback #define __pyx_n_s_clone __pyx_mstate_global->__pyx_n_s_clone #define __pyx_n_s_close __pyx_mstate_global->__pyx_n_s_close #define __pyx_n_s_cmd __pyx_mstate_global->__pyx_n_s_cmd #define __pyx_n_s_contextlib __pyx_mstate_global->__pyx_n_s_contextlib #define __pyx_n_s_contextmanager __pyx_mstate_global->__pyx_n_s_contextmanager #define __pyx_n_s_conv __pyx_mstate_global->__pyx_n_s_conv #define __pyx_n_s_copy __pyx_mstate_global->__pyx_n_s_copy #define __pyx_n_s_copy_2 __pyx_mstate_global->__pyx_n_s_copy_2 #define __pyx_n_s_copy_attr __pyx_mstate_global->__pyx_n_s_copy_attr #define __pyx_n_s_cpu __pyx_mstate_global->__pyx_n_s_cpu #define __pyx_n_u_cpu __pyx_mstate_global->__pyx_n_u_cpu #define __pyx_kp_u_cuda __pyx_mstate_global->__pyx_kp_u_cuda #define __pyx_kp_u_cuda_0 __pyx_mstate_global->__pyx_kp_u_cuda_0 #define __pyx_n_s_cuda_2 __pyx_mstate_global->__pyx_n_s_cuda_2 #define __pyx_n_s_d __pyx_mstate_global->__pyx_n_s_d #define __pyx_n_s_date_modified __pyx_mstate_global->__pyx_n_s_date_modified #define __pyx_n_s_datetime __pyx_mstate_global->__pyx_n_s_datetime #define __pyx_n_s_day __pyx_mstate_global->__pyx_n_s_day #define __pyx_n_s_de_parallel __pyx_mstate_global->__pyx_n_s_de_parallel #define __pyx_n_s_decay __pyx_mstate_global->__pyx_n_s_decay #define __pyx_n_s_decode __pyx_mstate_global->__pyx_n_s_decode #define __pyx_n_s_deepcopy __pyx_mstate_global->__pyx_n_s_deepcopy #define __pyx_n_s_delta __pyx_mstate_global->__pyx_n_s_delta #define __pyx_kp_u_describe_tags_long_always __pyx_mstate_global->__pyx_kp_u_describe_tags_long_always #define __pyx_n_s_detach __pyx_mstate_global->__pyx_n_s_detach #define __pyx_n_s_device __pyx_mstate_global->__pyx_n_s_device #define __pyx_n_s_device_count __pyx_mstate_global->__pyx_n_s_device_count #define __pyx_kp_u_device_count_function_only_works __pyx_mstate_global->__pyx_kp_u_device_count_function_only_works #define __pyx_n_s_device_ids __pyx_mstate_global->__pyx_n_s_device_ids #define __pyx_n_s_devices __pyx_mstate_global->__pyx_n_s_devices #define __pyx_n_s_diag __pyx_mstate_global->__pyx_n_s_diag #define __pyx_n_s_dict __pyx_mstate_global->__pyx_n_s_dict #define __pyx_kp_u_disable __pyx_mstate_global->__pyx_kp_u_disable #define __pyx_n_s_dist __pyx_mstate_global->__pyx_n_s_dist #define __pyx_n_s_distributed __pyx_mstate_global->__pyx_n_s_distributed #define __pyx_n_s_div __pyx_mstate_global->__pyx_n_s_div #define __pyx_n_s_doc __pyx_mstate_global->__pyx_n_s_doc #define __pyx_n_s_dtype __pyx_mstate_global->__pyx_n_s_dtype #define __pyx_n_s_e __pyx_mstate_global->__pyx_n_s_e #define __pyx_n_s_ema __pyx_mstate_global->__pyx_n_s_ema #define __pyx_n_s_empty_cache __pyx_mstate_global->__pyx_n_s_empty_cache #define __pyx_kp_u_enable __pyx_mstate_global->__pyx_kp_u_enable #define __pyx_n_s_encode __pyx_mstate_global->__pyx_n_s_encode #define __pyx_n_s_end __pyx_mstate_global->__pyx_n_s_end #define __pyx_n_s_enter __pyx_mstate_global->__pyx_n_s_enter #define __pyx_n_s_enumerate __pyx_mstate_global->__pyx_n_s_enumerate #define __pyx_n_s_environ __pyx_mstate_global->__pyx_n_s_environ #define __pyx_n_s_epoch __pyx_mstate_global->__pyx_n_s_epoch #define __pyx_kp_u_epochs_Best_results_observed_at __pyx_mstate_global->__pyx_kp_u_epochs_Best_results_observed_at #define __pyx_n_s_eps __pyx_mstate_global->__pyx_n_s_eps #define __pyx_n_s_eval __pyx_mstate_global->__pyx_n_s_eval #define __pyx_n_s_exclude __pyx_mstate_global->__pyx_n_s_exclude #define __pyx_n_s_exit __pyx_mstate_global->__pyx_n_s_exit #define __pyx_n_s_exp __pyx_mstate_global->__pyx_n_s_exp #define __pyx_n_s_file __pyx_mstate_global->__pyx_n_s_file #define __pyx_n_s_find_modules __pyx_mstate_global->__pyx_n_s_find_modules #define __pyx_n_s_fitness __pyx_mstate_global->__pyx_n_s_fitness #define __pyx_n_s_float16 __pyx_mstate_global->__pyx_n_s_float16 #define __pyx_n_s_flops __pyx_mstate_global->__pyx_n_s_flops #define __pyx_kp_u_forward_ms __pyx_mstate_global->__pyx_kp_u_forward_ms #define __pyx_n_s_fromtimestamp __pyx_mstate_global->__pyx_n_s_fromtimestamp #define __pyx_n_s_fs __pyx_mstate_global->__pyx_n_s_fs #define __pyx_n_s_functional __pyx_mstate_global->__pyx_n_s_functional #define __pyx_n_s_fuse_conv_and_bn __pyx_mstate_global->__pyx_n_s_fuse_conv_and_bn #define __pyx_n_s_fusedconv __pyx_mstate_global->__pyx_n_s_fusedconv #define __pyx_kp_u_gc __pyx_mstate_global->__pyx_kp_u_gc #define __pyx_n_s_genexpr __pyx_mstate_global->__pyx_n_s_genexpr #define __pyx_n_s_get __pyx_mstate_global->__pyx_n_s_get #define __pyx_n_s_get_device_properties __pyx_mstate_global->__pyx_n_s_get_device_properties #define __pyx_kp_u_git_C __pyx_mstate_global->__pyx_kp_u_git_C #define __pyx_n_s_git_describe __pyx_mstate_global->__pyx_n_s_git_describe #define __pyx_n_u_gradient __pyx_mstate_global->__pyx_n_u_gradient #define __pyx_kp_u_gradients __pyx_mstate_global->__pyx_kp_u_gradients #define __pyx_n_s_groups __pyx_mstate_global->__pyx_n_s_groups #define __pyx_n_s_gs __pyx_mstate_global->__pyx_n_s_gs #define __pyx_n_s_h __pyx_mstate_global->__pyx_n_s_h #define __pyx_n_s_half __pyx_mstate_global->__pyx_n_s_half #define __pyx_n_u_half __pyx_mstate_global->__pyx_n_u_half #define __pyx_n_s_i __pyx_mstate_global->__pyx_n_s_i #define __pyx_n_u_ignore __pyx_mstate_global->__pyx_n_u_ignore #define __pyx_n_s_img __pyx_mstate_global->__pyx_n_s_img #define __pyx_n_s_img_size __pyx_mstate_global->__pyx_n_s_img_size #define __pyx_n_s_import __pyx_mstate_global->__pyx_n_s_import #define __pyx_n_s_in_channels __pyx_mstate_global->__pyx_n_s_in_channels #define __pyx_n_s_include __pyx_mstate_global->__pyx_n_s_include #define __pyx_n_u_inf __pyx_mstate_global->__pyx_n_u_inf #define __pyx_n_s_info __pyx_mstate_global->__pyx_n_s_info #define __pyx_n_s_init __pyx_mstate_global->__pyx_n_s_init #define __pyx_n_s_init_subclass __pyx_mstate_global->__pyx_n_s_init_subclass #define __pyx_n_s_initialize_weights __pyx_mstate_global->__pyx_n_s_initialize_weights #define __pyx_n_s_initializing __pyx_mstate_global->__pyx_n_s_initializing #define __pyx_n_s_inplace __pyx_mstate_global->__pyx_n_s_inplace #define __pyx_n_s_input __pyx_mstate_global->__pyx_n_s_input #define __pyx_n_u_input __pyx_mstate_global->__pyx_n_u_input #define __pyx_n_s_inputs __pyx_mstate_global->__pyx_n_s_inputs #define __pyx_n_s_int __pyx_mstate_global->__pyx_n_s_int #define __pyx_n_s_interpolate __pyx_mstate_global->__pyx_n_s_interpolate #define __pyx_n_s_is_available __pyx_mstate_global->__pyx_n_s_is_available #define __pyx_n_s_is_coroutine __pyx_mstate_global->__pyx_n_s_is_coroutine #define __pyx_n_s_is_floating_point __pyx_mstate_global->__pyx_n_s_is_floating_point #define __pyx_n_s_is_parallel __pyx_mstate_global->__pyx_n_s_is_parallel #define __pyx_kp_u_isenabled __pyx_mstate_global->__pyx_kp_u_isenabled #define __pyx_n_s_items __pyx_mstate_global->__pyx_n_s_items #define __pyx_n_s_k __pyx_mstate_global->__pyx_n_s_k #define __pyx_n_s_kernel_size __pyx_mstate_global->__pyx_n_s_kernel_size #define __pyx_n_s_l1_unstructured __pyx_mstate_global->__pyx_n_s_l1_unstructured #define __pyx_n_u_layer __pyx_mstate_global->__pyx_n_u_layer #define __pyx_kp_u_layers __pyx_mstate_global->__pyx_kp_u_layers #define __pyx_n_u_list __pyx_mstate_global->__pyx_n_u_list #define __pyx_n_s_local_rank __pyx_mstate_global->__pyx_n_s_local_rank #define __pyx_n_s_lower __pyx_mstate_global->__pyx_n_s_lower #define __pyx_n_s_m __pyx_mstate_global->__pyx_n_s_m #define __pyx_n_s_main __pyx_mstate_global->__pyx_n_s_main #define __pyx_n_s_math __pyx_mstate_global->__pyx_n_s_math #define __pyx_n_s_max __pyx_mstate_global->__pyx_n_s_max #define __pyx_n_s_mclass __pyx_mstate_global->__pyx_n_s_mclass #define __pyx_n_s_mean __pyx_mstate_global->__pyx_n_s_mean #define __pyx_n_s_mem __pyx_mstate_global->__pyx_n_s_mem #define __pyx_n_s_memory_reserved __pyx_mstate_global->__pyx_n_s_memory_reserved #define __pyx_n_s_metaclass __pyx_mstate_global->__pyx_n_s_metaclass #define __pyx_n_s_mm __pyx_mstate_global->__pyx_n_s_mm #define __pyx_n_s_mode __pyx_mstate_global->__pyx_n_s_mode #define __pyx_n_s_model __pyx_mstate_global->__pyx_n_s_model #define __pyx_n_s_model_info __pyx_mstate_global->__pyx_n_s_model_info #define __pyx_n_s_model_info_locals_genexpr __pyx_mstate_global->__pyx_n_s_model_info_locals_genexpr #define __pyx_n_s_module __pyx_mstate_global->__pyx_n_s_module #define __pyx_n_s_module_2 __pyx_mstate_global->__pyx_n_s_module_2 #define __pyx_n_s_module_list __pyx_mstate_global->__pyx_n_s_module_list #define __pyx_kp_u_module_list_2 __pyx_mstate_global->__pyx_kp_u_module_list_2 #define __pyx_n_s_modules __pyx_mstate_global->__pyx_n_s_modules #define __pyx_n_s_momentum __pyx_mstate_global->__pyx_n_s_momentum #define __pyx_n_s_month __pyx_mstate_global->__pyx_n_s_month #define __pyx_n_s_msd __pyx_mstate_global->__pyx_n_s_msd #define __pyx_n_u_mu __pyx_mstate_global->__pyx_n_u_mu #define __pyx_n_s_mul __pyx_mstate_global->__pyx_n_s_mul #define __pyx_n_s_n __pyx_mstate_global->__pyx_n_s_n #define __pyx_n_s_n_g __pyx_mstate_global->__pyx_n_s_n_g #define __pyx_n_s_n_p __pyx_mstate_global->__pyx_n_s_n_p #define __pyx_n_s_name __pyx_mstate_global->__pyx_n_s_name #define __pyx_n_u_name __pyx_mstate_global->__pyx_n_u_name #define __pyx_n_s_name_2 __pyx_mstate_global->__pyx_n_s_name_2 #define __pyx_n_s_named_modules __pyx_mstate_global->__pyx_n_s_named_modules #define __pyx_n_s_named_parameters __pyx_mstate_global->__pyx_n_s_named_parameters #define __pyx_n_u_nan __pyx_mstate_global->__pyx_n_u_nan #define __pyx_n_s_newline __pyx_mstate_global->__pyx_n_s_newline #define __pyx_n_s_nn __pyx_mstate_global->__pyx_n_s_nn #define __pyx_n_s_no_grad __pyx_mstate_global->__pyx_n_s_no_grad #define __pyx_kp_u_not_multiple_of_GPU_count __pyx_mstate_global->__pyx_kp_u_not_multiple_of_GPU_count #define __pyx_n_s_numel __pyx_mstate_global->__pyx_n_s_numel #define __pyx_kp_u_nvidia_smi_L_wc_l __pyx_mstate_global->__pyx_kp_u_nvidia_smi_L_wc_l #define __pyx_n_s_ops __pyx_mstate_global->__pyx_n_s_ops #define __pyx_n_s_os __pyx_mstate_global->__pyx_n_s_os #define __pyx_n_s_out_channels __pyx_mstate_global->__pyx_n_s_out_channels #define __pyx_n_u_output __pyx_mstate_global->__pyx_n_u_output #define __pyx_n_s_p __pyx_mstate_global->__pyx_n_s_p #define __pyx_n_s_pad __pyx_mstate_global->__pyx_n_s_pad #define __pyx_n_s_padding __pyx_mstate_global->__pyx_n_s_padding #define __pyx_n_s_parallel __pyx_mstate_global->__pyx_n_s_parallel #define __pyx_n_s_parameters __pyx_mstate_global->__pyx_n_s_parameters #define __pyx_n_u_parameters __pyx_mstate_global->__pyx_n_u_parameters #define __pyx_kp_u_parameters_2 __pyx_mstate_global->__pyx_kp_u_parameters_2 #define __pyx_n_s_parent __pyx_mstate_global->__pyx_n_s_parent #define __pyx_kp_u_pass_a_new_patience_value_i_e_p __pyx_mstate_global->__pyx_kp_u_pass_a_new_patience_value_i_e_p #define __pyx_n_s_path __pyx_mstate_global->__pyx_n_s_path #define __pyx_n_s_pathlib __pyx_mstate_global->__pyx_n_s_pathlib #define __pyx_n_s_patience __pyx_mstate_global->__pyx_n_s_patience #define __pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils __pyx_mstate_global->__pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils #define __pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils_2 __pyx_mstate_global->__pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils_2 #define __pyx_kp_s_pdf_toolbox_lib_dia_yolov5_utils_3 __pyx_mstate_global->__pyx_kp_s_pdf_toolbox_lib_dia_yolov5_utils_3 #define __pyx_n_s_platform __pyx_mstate_global->__pyx_n_s_platform #define __pyx_n_s_possible_stop __pyx_mstate_global->__pyx_n_s_possible_stop #define __pyx_n_s_prepare __pyx_mstate_global->__pyx_n_s_prepare #define __pyx_n_s_print __pyx_mstate_global->__pyx_n_s_print #define __pyx_n_u_process_group __pyx_mstate_global->__pyx_n_u_process_group #define __pyx_n_s_profile __pyx_mstate_global->__pyx_n_s_profile #define __pyx_n_s_profile_locals_genexpr __pyx_mstate_global->__pyx_n_s_profile_locals_genexpr #define __pyx_n_s_prune __pyx_mstate_global->__pyx_n_s_prune #define __pyx_n_s_qualname __pyx_mstate_global->__pyx_n_s_qualname #define __pyx_n_s_range __pyx_mstate_global->__pyx_n_s_range #define __pyx_n_s_ratio __pyx_mstate_global->__pyx_n_s_ratio #define __pyx_n_u_reducer __pyx_mstate_global->__pyx_n_u_reducer #define __pyx_n_s_remove __pyx_mstate_global->__pyx_n_s_remove #define __pyx_n_s_replace __pyx_mstate_global->__pyx_n_s_replace #define __pyx_kp_u_requested_use_device_cpu_or_pas __pyx_mstate_global->__pyx_kp_u_requested_use_device_cpu_or_pas #define __pyx_n_s_requires_grad __pyx_mstate_global->__pyx_n_s_requires_grad #define __pyx_n_s_requires_grad_2 __pyx_mstate_global->__pyx_n_s_requires_grad_2 #define __pyx_n_s_reshape __pyx_mstate_global->__pyx_n_s_reshape #define __pyx_n_s_results __pyx_mstate_global->__pyx_n_s_results #define __pyx_n_s_rstrip __pyx_mstate_global->__pyx_n_s_rstrip #define __pyx_n_s_run __pyx_mstate_global->__pyx_n_s_run #define __pyx_n_s_running_mean __pyx_mstate_global->__pyx_n_s_running_mean #define __pyx_n_s_running_var __pyx_mstate_global->__pyx_n_s_running_var #define __pyx_n_s_s __pyx_mstate_global->__pyx_n_s_s #define __pyx_n_s_s_in __pyx_mstate_global->__pyx_n_s_s_in #define __pyx_n_s_s_out __pyx_mstate_global->__pyx_n_s_s_out #define __pyx_n_s_same_shape __pyx_mstate_global->__pyx_n_s_same_shape #define __pyx_n_s_scale_img __pyx_mstate_global->__pyx_n_s_scale_img #define __pyx_n_s_scale_img_locals_genexpr __pyx_mstate_global->__pyx_n_s_scale_img_locals_genexpr #define __pyx_n_s_select_device __pyx_mstate_global->__pyx_n_s_select_device #define __pyx_n_s_self __pyx_mstate_global->__pyx_n_s_self #define __pyx_n_s_send __pyx_mstate_global->__pyx_n_s_send #define __pyx_n_s_set_name __pyx_mstate_global->__pyx_n_s_set_name #define __pyx_n_s_shape __pyx_mstate_global->__pyx_n_s_shape #define __pyx_n_u_shape __pyx_mstate_global->__pyx_n_u_shape #define __pyx_n_s_shell __pyx_mstate_global->__pyx_n_s_shell #define __pyx_n_u_sigma __pyx_mstate_global->__pyx_n_u_sigma #define __pyx_n_s_size __pyx_mstate_global->__pyx_n_s_size #define __pyx_n_s_space __pyx_mstate_global->__pyx_n_s_space #define __pyx_n_s_sparsity __pyx_mstate_global->__pyx_n_s_sparsity #define __pyx_n_s_spec __pyx_mstate_global->__pyx_n_s_spec #define __pyx_n_s_split __pyx_mstate_global->__pyx_n_s_split #define __pyx_n_s_sqrt __pyx_mstate_global->__pyx_n_s_sqrt #define __pyx_n_s_st_mtime __pyx_mstate_global->__pyx_n_s_st_mtime #define __pyx_n_s_startswith __pyx_mstate_global->__pyx_n_s_startswith #define __pyx_n_s_stat __pyx_mstate_global->__pyx_n_s_stat #define __pyx_n_s_state_dict __pyx_mstate_global->__pyx_n_s_state_dict #define __pyx_n_s_std __pyx_mstate_global->__pyx_n_s_std #define __pyx_n_s_stderr __pyx_mstate_global->__pyx_n_s_stderr #define __pyx_n_s_stdout __pyx_mstate_global->__pyx_n_s_stdout #define __pyx_n_s_stop __pyx_mstate_global->__pyx_n_s_stop #define __pyx_n_s_stride __pyx_mstate_global->__pyx_n_s_stride #define __pyx_n_u_stride __pyx_mstate_global->__pyx_n_u_stride #define __pyx_n_s_strip __pyx_mstate_global->__pyx_n_s_strip #define __pyx_n_s_subprocess __pyx_mstate_global->__pyx_n_s_subprocess #define __pyx_n_s_sum __pyx_mstate_global->__pyx_n_s_sum #define __pyx_n_s_super __pyx_mstate_global->__pyx_n_s_super #define __pyx_n_s_synchronize __pyx_mstate_global->__pyx_n_s_synchronize #define __pyx_n_s_sys __pyx_mstate_global->__pyx_n_s_sys #define __pyx_n_s_system __pyx_mstate_global->__pyx_n_s_system #define __pyx_n_s_t __pyx_mstate_global->__pyx_n_s_t #define __pyx_n_s_tb __pyx_mstate_global->__pyx_n_s_tb #define __pyx_n_s_test __pyx_mstate_global->__pyx_n_s_test #define __pyx_n_s_tf __pyx_mstate_global->__pyx_n_s_tf #define __pyx_n_s_thop __pyx_mstate_global->__pyx_n_s_thop #define __pyx_n_s_throw __pyx_mstate_global->__pyx_n_s_throw #define __pyx_n_s_time __pyx_mstate_global->__pyx_n_s_time #define __pyx_n_s_time_sync __pyx_mstate_global->__pyx_n_s_time_sync #define __pyx_n_s_to __pyx_mstate_global->__pyx_n_s_to #define __pyx_n_u_to __pyx_mstate_global->__pyx_n_u_to #define __pyx_kp_u_torch __pyx_mstate_global->__pyx_kp_u_torch #define __pyx_n_s_torch_2 __pyx_mstate_global->__pyx_n_s_torch_2 #define __pyx_n_s_torch_distributed __pyx_mstate_global->__pyx_n_s_torch_distributed #define __pyx_n_s_torch_distributed_zero_first __pyx_mstate_global->__pyx_n_s_torch_distributed_zero_first #define __pyx_n_s_torch_nn __pyx_mstate_global->__pyx_n_s_torch_nn #define __pyx_n_s_torch_nn_functional __pyx_mstate_global->__pyx_n_s_torch_nn_functional #define __pyx_n_s_torch_nn_utils_prune __pyx_mstate_global->__pyx_n_s_torch_nn_utils_prune #define __pyx_n_s_total_memory __pyx_mstate_global->__pyx_n_s_total_memory #define __pyx_n_s_update __pyx_mstate_global->__pyx_n_s_update #define __pyx_n_s_update_attr __pyx_mstate_global->__pyx_n_s_update_attr #define __pyx_n_s_updates __pyx_mstate_global->__pyx_n_s_updates #define __pyx_n_s_utils __pyx_mstate_global->__pyx_n_s_utils #define __pyx_n_s_v __pyx_mstate_global->__pyx_n_s_v #define __pyx_n_s_value __pyx_mstate_global->__pyx_n_s_value #define __pyx_n_s_verbose __pyx_mstate_global->__pyx_n_s_verbose #define __pyx_n_s_version __pyx_mstate_global->__pyx_n_s_version #define __pyx_n_s_view __pyx_mstate_global->__pyx_n_s_view #define __pyx_n_s_w __pyx_mstate_global->__pyx_n_s_w #define __pyx_n_s_w_bn __pyx_mstate_global->__pyx_n_s_w_bn #define __pyx_n_s_w_conv __pyx_mstate_global->__pyx_n_s_w_conv #define __pyx_n_s_weight __pyx_mstate_global->__pyx_n_s_weight #define __pyx_n_u_weight __pyx_mstate_global->__pyx_n_u_weight #define __pyx_n_s_x __pyx_mstate_global->__pyx_n_s_x #define __pyx_n_s_y __pyx_mstate_global->__pyx_n_s_y #define __pyx_n_s_yaml __pyx_mstate_global->__pyx_n_s_yaml #define __pyx_n_s_year __pyx_mstate_global->__pyx_n_s_year #define __pyx_n_s_zeros __pyx_mstate_global->__pyx_n_s_zeros #define __pyx_float_0_0 __pyx_mstate_global->__pyx_float_0_0 #define __pyx_float_0_3 __pyx_mstate_global->__pyx_float_0_3 #define __pyx_float_1_0 __pyx_mstate_global->__pyx_float_1_0 #define __pyx_float_1E9 __pyx_mstate_global->__pyx_float_1E9 #define __pyx_float_0_03 __pyx_mstate_global->__pyx_float_0_03 #define __pyx_float_1eneg_3 __pyx_mstate_global->__pyx_float_1eneg_3 #define __pyx_float_0_447 __pyx_mstate_global->__pyx_float_0_447 #define __pyx_float_0_9999 __pyx_mstate_global->__pyx_float_0_9999 #define __pyx_int_0 __pyx_mstate_global->__pyx_int_0 #define __pyx_int_1 __pyx_mstate_global->__pyx_int_1 #define __pyx_int_2 __pyx_mstate_global->__pyx_int_2 #define __pyx_int_3 __pyx_mstate_global->__pyx_int_3 #define __pyx_int_10 __pyx_mstate_global->__pyx_int_10 #define __pyx_int_30 __pyx_mstate_global->__pyx_int_30 #define __pyx_int_32 __pyx_mstate_global->__pyx_int_32 #define __pyx_int_640 __pyx_mstate_global->__pyx_int_640 #define __pyx_int_1000 __pyx_mstate_global->__pyx_int_1000 #define __pyx_int_2000 __pyx_mstate_global->__pyx_int_2000 #define __pyx_int_1048576 __pyx_mstate_global->__pyx_int_1048576 #define __pyx_int_neg_1 __pyx_mstate_global->__pyx_int_neg_1 #define __pyx_codeobj_ __pyx_mstate_global->__pyx_codeobj_ #define __pyx_slice__3 __pyx_mstate_global->__pyx_slice__3 #define __pyx_tuple__6 __pyx_mstate_global->__pyx_tuple__6 #define __pyx_tuple__8 __pyx_mstate_global->__pyx_tuple__8 #define __pyx_slice__19 __pyx_mstate_global->__pyx_slice__19 #define __pyx_tuple__11 __pyx_mstate_global->__pyx_tuple__11 #define __pyx_tuple__12 __pyx_mstate_global->__pyx_tuple__12 #define __pyx_tuple__14 __pyx_mstate_global->__pyx_tuple__14 #define __pyx_tuple__15 __pyx_mstate_global->__pyx_tuple__15 #define __pyx_tuple__16 __pyx_mstate_global->__pyx_tuple__16 #define __pyx_tuple__18 __pyx_mstate_global->__pyx_tuple__18 #define __pyx_tuple__21 __pyx_mstate_global->__pyx_tuple__21 #define __pyx_tuple__22 __pyx_mstate_global->__pyx_tuple__22 #define __pyx_tuple__23 __pyx_mstate_global->__pyx_tuple__23 #define __pyx_tuple__24 __pyx_mstate_global->__pyx_tuple__24 #define __pyx_tuple__25 __pyx_mstate_global->__pyx_tuple__25 #define __pyx_tuple__26 __pyx_mstate_global->__pyx_tuple__26 #define __pyx_tuple__27 __pyx_mstate_global->__pyx_tuple__27 #define __pyx_tuple__29 __pyx_mstate_global->__pyx_tuple__29 #define __pyx_tuple__31 __pyx_mstate_global->__pyx_tuple__31 #define __pyx_tuple__33 __pyx_mstate_global->__pyx_tuple__33 #define __pyx_tuple__35 __pyx_mstate_global->__pyx_tuple__35 #define __pyx_tuple__37 __pyx_mstate_global->__pyx_tuple__37 #define __pyx_tuple__39 __pyx_mstate_global->__pyx_tuple__39 #define __pyx_tuple__40 __pyx_mstate_global->__pyx_tuple__40 #define __pyx_tuple__43 __pyx_mstate_global->__pyx_tuple__43 #define __pyx_tuple__45 __pyx_mstate_global->__pyx_tuple__45 #define __pyx_tuple__47 __pyx_mstate_global->__pyx_tuple__47 #define __pyx_tuple__49 __pyx_mstate_global->__pyx_tuple__49 #define __pyx_tuple__51 __pyx_mstate_global->__pyx_tuple__51 #define __pyx_tuple__52 __pyx_mstate_global->__pyx_tuple__52 #define __pyx_tuple__54 __pyx_mstate_global->__pyx_tuple__54 #define __pyx_tuple__56 __pyx_mstate_global->__pyx_tuple__56 #define __pyx_tuple__57 __pyx_mstate_global->__pyx_tuple__57 #define __pyx_tuple__59 __pyx_mstate_global->__pyx_tuple__59 #define __pyx_tuple__60 __pyx_mstate_global->__pyx_tuple__60 #define __pyx_tuple__62 __pyx_mstate_global->__pyx_tuple__62 #define __pyx_tuple__63 __pyx_mstate_global->__pyx_tuple__63 #define __pyx_tuple__65 __pyx_mstate_global->__pyx_tuple__65 #define __pyx_tuple__66 __pyx_mstate_global->__pyx_tuple__66 #define __pyx_tuple__68 __pyx_mstate_global->__pyx_tuple__68 #define __pyx_tuple__70 __pyx_mstate_global->__pyx_tuple__70 #define __pyx_tuple__71 __pyx_mstate_global->__pyx_tuple__71 #define __pyx_tuple__73 __pyx_mstate_global->__pyx_tuple__73 #define __pyx_tuple__75 __pyx_mstate_global->__pyx_tuple__75 #define __pyx_codeobj__28 __pyx_mstate_global->__pyx_codeobj__28 #define __pyx_codeobj__30 __pyx_mstate_global->__pyx_codeobj__30 #define __pyx_codeobj__32 __pyx_mstate_global->__pyx_codeobj__32 #define __pyx_codeobj__34 __pyx_mstate_global->__pyx_codeobj__34 #define __pyx_codeobj__36 __pyx_mstate_global->__pyx_codeobj__36 #define __pyx_codeobj__38 __pyx_mstate_global->__pyx_codeobj__38 #define __pyx_codeobj__41 __pyx_mstate_global->__pyx_codeobj__41 #define __pyx_codeobj__42 __pyx_mstate_global->__pyx_codeobj__42 #define __pyx_codeobj__44 __pyx_mstate_global->__pyx_codeobj__44 #define __pyx_codeobj__46 __pyx_mstate_global->__pyx_codeobj__46 #define __pyx_codeobj__48 __pyx_mstate_global->__pyx_codeobj__48 #define __pyx_codeobj__50 __pyx_mstate_global->__pyx_codeobj__50 #define __pyx_codeobj__53 __pyx_mstate_global->__pyx_codeobj__53 #define __pyx_codeobj__55 __pyx_mstate_global->__pyx_codeobj__55 #define __pyx_codeobj__58 __pyx_mstate_global->__pyx_codeobj__58 #define __pyx_codeobj__61 __pyx_mstate_global->__pyx_codeobj__61 #define __pyx_codeobj__64 __pyx_mstate_global->__pyx_codeobj__64 #define __pyx_codeobj__67 __pyx_mstate_global->__pyx_codeobj__67 #define __pyx_codeobj__69 __pyx_mstate_global->__pyx_codeobj__69 #define __pyx_codeobj__72 __pyx_mstate_global->__pyx_codeobj__72 #define __pyx_codeobj__74 __pyx_mstate_global->__pyx_codeobj__74 #endif /* #### Code section: module_code ### */ static PyObject *__pyx_gb_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_2generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":32 * * * @contextmanager # <<<<<<<<<<<<<< * def torch_distributed_zero_first(local_rank: int): * """ */ /* Python wrapper */ static PyObject *__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_1torch_distributed_zero_first(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ PyDoc_STRVAR(__pyx_doc_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_torch_distributed_zero_first, "\n Decorator to make all processes in distributed training wait for each local_master to do something.\n "); static PyMethodDef __pyx_mdef_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_1torch_distributed_zero_first = {"torch_distributed_zero_first", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_1torch_distributed_zero_first, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_torch_distributed_zero_first}; static PyObject *__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_1torch_distributed_zero_first(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_local_rank = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("torch_distributed_zero_first (wrapper)", 0); { #if CYTHON_USE_MODULE_STATE PyObject **__pyx_pyargnames[] = {&__pyx_n_s_local_rank,0}; #else static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_local_rank,0}; #endif PyObject* values[1] = {0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_local_rank)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 32, __pyx_L3_error) else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "torch_distributed_zero_first") < 0)) __PYX_ERR(0, 32, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); } __pyx_v_local_rank = values[0]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("torch_distributed_zero_first", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 32, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.torch_distributed_zero_first", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_torch_distributed_zero_first(__pyx_self, __pyx_v_local_rank); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_torch_distributed_zero_first(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_local_rank) { struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("torch_distributed_zero_first", 0); __pyx_cur_scope = (struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first *)__pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first(__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(0, 32, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_local_rank = __pyx_v_local_rank; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_local_rank); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_local_rank); { __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_2generator, __pyx_codeobj_, (PyObject *) __pyx_cur_scope, __pyx_n_s_torch_distributed_zero_first, __pyx_n_s_torch_distributed_zero_first, __pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils); if (unlikely(!gen)) __PYX_ERR(0, 32, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.torch_distributed_zero_first", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_2generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first *__pyx_cur_scope = ((struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("torch_distributed_zero_first", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L7_resume_from_yield; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 32, __pyx_L1_error) /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":37 * Decorator to make all processes in distributed training wait for each local_master to do something. * """ * if local_rank not in [-1, 0]: # <<<<<<<<<<<<<< * dist.barrier(device_ids=[local_rank]) * yield */ __Pyx_INCREF(__pyx_cur_scope->__pyx_v_local_rank); __pyx_t_1 = __pyx_cur_scope->__pyx_v_local_rank; __pyx_t_3 = __Pyx_PyInt_NeObjC(__pyx_t_1, __pyx_int_neg_1, -1L, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 37, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 37, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_4) { } else { __pyx_t_2 = __pyx_t_4; goto __pyx_L5_bool_binop_done; } __pyx_t_3 = __Pyx_PyInt_NeObjC(__pyx_t_1, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 37, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 37, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_2 = __pyx_t_4; __pyx_L5_bool_binop_done:; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_4 = (__pyx_t_2 != 0); if (__pyx_t_4) { /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":38 * """ * if local_rank not in [-1, 0]: * dist.barrier(device_ids=[local_rank]) # <<<<<<<<<<<<<< * yield * if local_rank == 0: */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_dist); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_barrier); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = PyList_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_local_rank); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_local_rank); PyList_SET_ITEM(__pyx_t_5, 0, __pyx_cur_scope->__pyx_v_local_rank); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_device_ids, __pyx_t_5) < 0) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":37 * Decorator to make all processes in distributed training wait for each local_master to do something. * """ * if local_rank not in [-1, 0]: # <<<<<<<<<<<<<< * dist.barrier(device_ids=[local_rank]) * yield */ } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":39 * if local_rank not in [-1, 0]: * dist.barrier(device_ids=[local_rank]) * yield # <<<<<<<<<<<<<< * if local_rank == 0: * dist.barrier(device_ids=[0]) */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, yielding value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L7_resume_from_yield:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 39, __pyx_L1_error) /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":40 * dist.barrier(device_ids=[local_rank]) * yield * if local_rank == 0: # <<<<<<<<<<<<<< * dist.barrier(device_ids=[0]) * */ __pyx_t_5 = __Pyx_PyInt_EqObjC(__pyx_cur_scope->__pyx_v_local_rank, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 40, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 40, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_4) { /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":41 * yield * if local_rank == 0: * dist.barrier(device_ids=[0]) # <<<<<<<<<<<<<< * * */ __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_dist); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 41, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_barrier); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 41, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 41, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 41, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyList_SET_ITEM(__pyx_t_3, 0, __pyx_int_0); if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_device_ids, __pyx_t_3) < 0) __PYX_ERR(0, 41, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 41, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":40 * dist.barrier(device_ids=[local_rank]) * yield * if local_rank == 0: # <<<<<<<<<<<<<< * dist.barrier(device_ids=[0]) * */ } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":32 * * * @contextmanager # <<<<<<<<<<<<<< * def torch_distributed_zero_first(local_rank: int): * """ */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_Generator_Replace_StopIteration(0); __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("torch_distributed_zero_first", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":44 * * * def date_modified(path=__file__): # <<<<<<<<<<<<<< * # return human-readable file modification date, i.e. '2021-3-26' * t = datetime.datetime.fromtimestamp(Path(path).stat().st_mtime) */ static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_35__defaults__(CYTHON_UNUSED PyObject *__pyx_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__defaults__", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 44, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_self)->__pyx_arg_path); __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_self)->__pyx_arg_path); PyTuple_SET_ITEM(__pyx_t_1, 0, __Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_self)->__pyx_arg_path); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 44, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyTuple_SET_ITEM(__pyx_t_2, 1, Py_None); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_4date_modified(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_4date_modified = {"date_modified", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_4date_modified, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_4date_modified(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_path = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("date_modified (wrapper)", 0); { #if CYTHON_USE_MODULE_STATE PyObject **__pyx_pyargnames[] = {&__pyx_n_s_path,0}; #else static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_path,0}; #endif PyObject* values[1] = {0}; __pyx_defaults *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_self); values[0] = __pyx_dynamic_args->__pyx_arg_path; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_path); if (value) { values[0] = value; kw_args--; } else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 44, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "date_modified") < 0)) __PYX_ERR(0, 44, __pyx_L3_error) } } else { switch (__pyx_nargs) { case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_path = values[0]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("date_modified", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 44, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.date_modified", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_3date_modified(__pyx_self, __pyx_v_path); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_3date_modified(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_path) { PyObject *__pyx_v_t = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; int __pyx_t_7; Py_ssize_t __pyx_t_8; Py_UCS4 __pyx_t_9; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("date_modified", 0); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":46 * def date_modified(path=__file__): * # return human-readable file modification date, i.e. '2021-3-26' * t = datetime.datetime.fromtimestamp(Path(path).stat().st_mtime) # <<<<<<<<<<<<<< * return f'{t.year}-{t.month}-{t.day}' * */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_datetime); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 46, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_datetime); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 46, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_fromtimestamp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 46, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_Path); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 46, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_7 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_v_path}; __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 46, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_stat); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 46, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_7 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_4, }; __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 0+__pyx_t_7); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 46, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_st_mtime); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 46, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_7 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_5}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 46, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_v_t = __pyx_t_1; __pyx_t_1 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":47 * # return human-readable file modification date, i.e. '2021-3-26' * t = datetime.datetime.fromtimestamp(Path(path).stat().st_mtime) * return f'{t.year}-{t.month}-{t.day}' # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 47, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_8 = 0; __pyx_t_9 = 127; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_t, __pyx_n_s_year); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 47, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __Pyx_PyObject_FormatSimple(__pyx_t_2, __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 47, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_9 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_9) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_9; __pyx_t_8 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u__2); __pyx_t_8 += 1; __Pyx_GIVEREF(__pyx_kp_u__2); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_kp_u__2); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_t, __pyx_n_s_month); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 47, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 = __Pyx_PyObject_FormatSimple(__pyx_t_5, __pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 47, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_9 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) > __pyx_t_9) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) : __pyx_t_9; __pyx_t_8 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_2); __pyx_t_2 = 0; __Pyx_INCREF(__pyx_kp_u__2); __pyx_t_8 += 1; __Pyx_GIVEREF(__pyx_kp_u__2); PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_kp_u__2); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_t, __pyx_n_s_day); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 47, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __Pyx_PyObject_FormatSimple(__pyx_t_2, __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 47, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_9 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_9) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_9; __pyx_t_8 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 4, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_1, 5, __pyx_t_8, __pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 47, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_5; __pyx_t_5 = 0; goto __pyx_L0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":44 * * * def date_modified(path=__file__): # <<<<<<<<<<<<<< * # return human-readable file modification date, i.e. '2021-3-26' * t = datetime.datetime.fromtimestamp(Path(path).stat().st_mtime) */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.date_modified", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_t); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":50 * * * def git_describe(path=Path(__file__).parent): # path must be a directory # <<<<<<<<<<<<<< * # return human-readable git description, i.e. v5.0-5-g3e25f1e https://git-scm.com/docs/git-describe * s = f'git -C {path} describe --tags --long --always' */ static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_37__defaults__(CYTHON_UNUSED PyObject *__pyx_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__defaults__", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 50, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults1, __pyx_self)->__pyx_arg_path); __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults1, __pyx_self)->__pyx_arg_path); PyTuple_SET_ITEM(__pyx_t_1, 0, __Pyx_CyFunction_Defaults(__pyx_defaults1, __pyx_self)->__pyx_arg_path); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 50, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyTuple_SET_ITEM(__pyx_t_2, 1, Py_None); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_6git_describe(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_6git_describe = {"git_describe", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_6git_describe, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_6git_describe(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_path = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("git_describe (wrapper)", 0); { #if CYTHON_USE_MODULE_STATE PyObject **__pyx_pyargnames[] = {&__pyx_n_s_path,0}; #else static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_path,0}; #endif PyObject* values[1] = {0}; __pyx_defaults1 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults1, __pyx_self); values[0] = __pyx_dynamic_args->__pyx_arg_path; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_path); if (value) { values[0] = value; kw_args--; } else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 50, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "git_describe") < 0)) __PYX_ERR(0, 50, __pyx_L3_error) } } else { switch (__pyx_nargs) { case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_path = values[0]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("git_describe", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 50, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.git_describe", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_5git_describe(__pyx_self, __pyx_v_path); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_5git_describe(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_path) { PyObject *__pyx_v_s = NULL; CYTHON_UNUSED PyObject *__pyx_v_e = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; Py_ssize_t __pyx_t_2; Py_UCS4 __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; int __pyx_t_12; PyObject *__pyx_t_13 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("git_describe", 0); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":52 * def git_describe(path=Path(__file__).parent): # path must be a directory * # return human-readable git description, i.e. v5.0-5-g3e25f1e https://git-scm.com/docs/git-describe * s = f'git -C {path} describe --tags --long --always' # <<<<<<<<<<<<<< * try: * return subprocess.check_output(s, shell=True, stderr=subprocess.STDOUT).decode()[:-1] */ __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = 0; __pyx_t_3 = 127; __Pyx_INCREF(__pyx_kp_u_git_C); __pyx_t_2 += 7; __Pyx_GIVEREF(__pyx_kp_u_git_C); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_kp_u_git_C); __pyx_t_4 = __Pyx_PyObject_FormatSimple(__pyx_v_path, __pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_4); __pyx_t_4 = 0; __Pyx_INCREF(__pyx_kp_u_describe_tags_long_always); __pyx_t_2 += 32; __Pyx_GIVEREF(__pyx_kp_u_describe_tags_long_always); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_kp_u_describe_tags_long_always); __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_1, 3, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_s = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":53 * # return human-readable git description, i.e. v5.0-5-g3e25f1e https://git-scm.com/docs/git-describe * s = f'git -C {path} describe --tags --long --always' * try: # <<<<<<<<<<<<<< * return subprocess.check_output(s, shell=True, stderr=subprocess.STDOUT).decode()[:-1] * except subprocess.CalledProcessError as e: */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7); __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_7); /*try:*/ { /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":54 * s = f'git -C {path} describe --tags --long --always' * try: * return subprocess.check_output(s, shell=True, stderr=subprocess.STDOUT).decode()[:-1] # <<<<<<<<<<<<<< * except subprocess.CalledProcessError as e: * return '' # not a git repository */ __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_subprocess); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 54, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_check_output); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 54, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 54, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_s); __Pyx_GIVEREF(__pyx_v_s); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_s); __pyx_t_9 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 54, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_9); if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_shell, Py_True) < 0) __PYX_ERR(0, 54, __pyx_L3_error) __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_subprocess); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 54, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_STDOUT); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 54, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_stderr, __pyx_t_11) < 0) __PYX_ERR(0, 54, __pyx_L3_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_1, __pyx_t_9); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 54, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_decode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 54, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = NULL; __pyx_t_12 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) { __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_11)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); __pyx_t_12 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_11, }; __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_9, __pyx_callargs+1-__pyx_t_12, 0+__pyx_t_12); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 54, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __pyx_t_9 = __Pyx_PyObject_GetSlice(__pyx_t_4, 0, -1L, NULL, NULL, &__pyx_slice__3, 0, 1, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 54, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_r = __pyx_t_9; __pyx_t_9 = 0; goto __pyx_L7_try_return; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":53 * # return human-readable git description, i.e. v5.0-5-g3e25f1e https://git-scm.com/docs/git-describe * s = f'git -C {path} describe --tags --long --always' * try: # <<<<<<<<<<<<<< * return subprocess.check_output(s, shell=True, stderr=subprocess.STDOUT).decode()[:-1] * except subprocess.CalledProcessError as e: */ } __pyx_L3_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":55 * try: * return subprocess.check_output(s, shell=True, stderr=subprocess.STDOUT).decode()[:-1] * except subprocess.CalledProcessError as e: # <<<<<<<<<<<<<< * return '' # not a git repository * */ __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_4, &__pyx_t_11); __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_subprocess); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 55, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_CalledProcessError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 55, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_12 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_9, __pyx_t_8); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_ErrRestore(__pyx_t_9, __pyx_t_4, __pyx_t_11); __pyx_t_9 = 0; __pyx_t_4 = 0; __pyx_t_11 = 0; if (__pyx_t_12) { __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.git_describe", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_4, &__pyx_t_9) < 0) __PYX_ERR(0, 55, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_GOTREF(__pyx_t_4); __Pyx_GOTREF(__pyx_t_9); __Pyx_INCREF(__pyx_t_4); __pyx_v_e = __pyx_t_4; /*try:*/ { /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":56 * return subprocess.check_output(s, shell=True, stderr=subprocess.STDOUT).decode()[:-1] * except subprocess.CalledProcessError as e: * return '' # not a git repository # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_kp_u__4); __pyx_r = __pyx_kp_u__4; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; goto __pyx_L13_return; } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":55 * try: * return subprocess.check_output(s, shell=True, stderr=subprocess.STDOUT).decode()[:-1] * except subprocess.CalledProcessError as e: # <<<<<<<<<<<<<< * return '' # not a git repository * */ /*finally:*/ { __pyx_L13_return: { __pyx_t_13 = __pyx_r; __pyx_r = 0; __Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0; __pyx_r = __pyx_t_13; __pyx_t_13 = 0; goto __pyx_L6_except_return; } } } goto __pyx_L5_except_error; __pyx_L5_except_error:; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":53 * # return human-readable git description, i.e. v5.0-5-g3e25f1e https://git-scm.com/docs/git-describe * s = f'git -C {path} describe --tags --long --always' * try: # <<<<<<<<<<<<<< * return subprocess.check_output(s, shell=True, stderr=subprocess.STDOUT).decode()[:-1] * except subprocess.CalledProcessError as e: */ __Pyx_XGIVEREF(__pyx_t_5); __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7); goto __pyx_L1_error; __pyx_L7_try_return:; __Pyx_XGIVEREF(__pyx_t_5); __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7); goto __pyx_L0; __pyx_L6_except_return:; __Pyx_XGIVEREF(__pyx_t_5); __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7); goto __pyx_L0; } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":50 * * * def git_describe(path=Path(__file__).parent): # path must be a directory # <<<<<<<<<<<<<< * # return human-readable git description, i.e. v5.0-5-g3e25f1e https://git-scm.com/docs/git-describe * s = f'git -C {path} describe --tags --long --always' */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __Pyx_XDECREF(__pyx_t_11); __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.git_describe", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_s); __Pyx_XDECREF(__pyx_v_e); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":59 * * * def device_count(): # <<<<<<<<<<<<<< * # Returns number of CUDA devices available. Safe version of torch.cuda.device_count(). Only works on Linux. * assert platform.system() == 'Linux', 'device_count() function only works on Linux' */ /* Python wrapper */ static PyObject *__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_8device_count(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyMethodDef __pyx_mdef_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_8device_count = {"device_count", (PyCFunction)__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_8device_count, METH_NOARGS, 0}; static PyObject *__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_8device_count(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("device_count (wrapper)", 0); __pyx_r = __pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_7device_count(__pyx_self); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_7device_count(CYTHON_UNUSED PyObject *__pyx_self) { PyObject *__pyx_v_cmd = NULL; CYTHON_UNUSED PyObject *__pyx_v_e = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; int __pyx_t_5; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("device_count", 0); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":61 * def device_count(): * # Returns number of CUDA devices available. Safe version of torch.cuda.device_count(). Only works on Linux. * assert platform.system() == 'Linux', 'device_count() function only works on Linux' # <<<<<<<<<<<<<< * try: * cmd = 'nvidia-smi -L | wc -l' */ #ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_platform); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 61, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_system); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 61, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_2, }; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 61, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_Linux, Py_EQ)); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 61, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_5)) { __Pyx_Raise(__pyx_builtin_AssertionError, __pyx_kp_u_device_count_function_only_works, 0, 0); __PYX_ERR(0, 61, __pyx_L1_error) } } #else if ((1)); else __PYX_ERR(0, 61, __pyx_L1_error) #endif /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":62 * # Returns number of CUDA devices available. Safe version of torch.cuda.device_count(). Only works on Linux. * assert platform.system() == 'Linux', 'device_count() function only works on Linux' * try: # <<<<<<<<<<<<<< * cmd = 'nvidia-smi -L | wc -l' * return int(subprocess.run(cmd, shell=True, capture_output=True, check=True).stdout.decode().split()[-1]) */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); /*try:*/ { /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":63 * assert platform.system() == 'Linux', 'device_count() function only works on Linux' * try: * cmd = 'nvidia-smi -L | wc -l' # <<<<<<<<<<<<<< * return int(subprocess.run(cmd, shell=True, capture_output=True, check=True).stdout.decode().split()[-1]) * except Exception as e: */ __Pyx_INCREF(__pyx_kp_u_nvidia_smi_L_wc_l); __pyx_v_cmd = __pyx_kp_u_nvidia_smi_L_wc_l; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":64 * try: * cmd = 'nvidia-smi -L | wc -l' * return int(subprocess.run(cmd, shell=True, capture_output=True, check=True).stdout.decode().split()[-1]) # <<<<<<<<<<<<<< * except Exception as e: * return 0 */ __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_subprocess); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 64, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_run); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 64, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 64, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_v_cmd); __Pyx_GIVEREF(__pyx_v_cmd); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_cmd); __pyx_t_10 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 64, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_10); if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_shell, Py_True) < 0) __PYX_ERR(0, 64, __pyx_L3_error) if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_capture_output, Py_True) < 0) __PYX_ERR(0, 64, __pyx_L3_error) if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_check, Py_True) < 0) __PYX_ERR(0, 64, __pyx_L3_error) __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_2, __pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 64, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_stdout); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 64, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_decode); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 64, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_11, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_10, }; __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_11, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 64, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 64, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_11); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_11, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_3, }; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_11, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 64, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } __pyx_t_11 = __Pyx_GetItemInt(__pyx_t_1, -1L, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 64, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyNumber_Int(__pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 64, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L7_try_return; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":62 * # Returns number of CUDA devices available. Safe version of torch.cuda.device_count(). Only works on Linux. * assert platform.system() == 'Linux', 'device_count() function only works on Linux' * try: # <<<<<<<<<<<<<< * cmd = 'nvidia-smi -L | wc -l' * return int(subprocess.run(cmd, shell=True, capture_output=True, check=True).stdout.decode().split()[-1]) */ } __pyx_L3_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":65 * cmd = 'nvidia-smi -L | wc -l' * return int(subprocess.run(cmd, shell=True, capture_output=True, check=True).stdout.decode().split()[-1]) * except Exception as e: # <<<<<<<<<<<<<< * return 0 * */ __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_4) { __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.device_count", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_11, &__pyx_t_3) < 0) __PYX_ERR(0, 65, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_11); __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_11); __pyx_v_e = __pyx_t_11; /*try:*/ { /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":66 * return int(subprocess.run(cmd, shell=True, capture_output=True, check=True).stdout.decode().split()[-1]) * except Exception as e: * return 0 # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_int_0); __pyx_r = __pyx_int_0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; goto __pyx_L13_return; } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":65 * cmd = 'nvidia-smi -L | wc -l' * return int(subprocess.run(cmd, shell=True, capture_output=True, check=True).stdout.decode().split()[-1]) * except Exception as e: # <<<<<<<<<<<<<< * return 0 * */ /*finally:*/ { __pyx_L13_return: { __pyx_t_12 = __pyx_r; __pyx_r = 0; __Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0; __pyx_r = __pyx_t_12; __pyx_t_12 = 0; goto __pyx_L6_except_return; } } } goto __pyx_L5_except_error; __pyx_L5_except_error:; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":62 * # Returns number of CUDA devices available. Safe version of torch.cuda.device_count(). Only works on Linux. * assert platform.system() == 'Linux', 'device_count() function only works on Linux' * try: # <<<<<<<<<<<<<< * cmd = 'nvidia-smi -L | wc -l' * return int(subprocess.run(cmd, shell=True, capture_output=True, check=True).stdout.decode().split()[-1]) */ __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8); goto __pyx_L1_error; __pyx_L7_try_return:; __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8); goto __pyx_L0; __pyx_L6_except_return:; __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8); goto __pyx_L0; } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":59 * * * def device_count(): # <<<<<<<<<<<<<< * # Returns number of CUDA devices available. Safe version of torch.cuda.device_count(). Only works on Linux. * assert platform.system() == 'Linux', 'device_count() function only works on Linux' */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __Pyx_XDECREF(__pyx_t_11); __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.device_count", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_cmd); __Pyx_XDECREF(__pyx_v_e); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":69 * * * def select_device(device='', batch_size=0, newline=True): # <<<<<<<<<<<<<< * # device = 'cpu' or '0' or '0,1,2,3' * s = f'YOLOv5 {git_describe() or date_modified()} torch {torch.__version__} ' # string */ /* Python wrapper */ static PyObject *__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_10select_device(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_10select_device = {"select_device", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_10select_device, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_10select_device(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_device = 0; PyObject *__pyx_v_batch_size = 0; PyObject *__pyx_v_newline = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("select_device (wrapper)", 0); { #if CYTHON_USE_MODULE_STATE PyObject **__pyx_pyargnames[] = {&__pyx_n_s_device,&__pyx_n_s_batch_size,&__pyx_n_s_newline,0}; #else static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_device,&__pyx_n_s_batch_size,&__pyx_n_s_newline,0}; #endif PyObject* values[3] = {0,0,0}; values[0] = ((PyObject *)((PyObject*)__pyx_kp_u__4)); values[1] = ((PyObject *)((PyObject *)__pyx_int_0)); values[2] = ((PyObject *)((PyObject *)Py_True)); if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_device); if (value) { values[0] = value; kw_args--; } else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 69, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 1: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_batch_size); if (value) { values[1] = value; kw_args--; } else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 69, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_newline); if (value) { values[2] = value; kw_args--; } else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 69, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "select_device") < 0)) __PYX_ERR(0, 69, __pyx_L3_error) } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_device = values[0]; __pyx_v_batch_size = values[1]; __pyx_v_newline = values[2]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("select_device", 0, 0, 3, __pyx_nargs); __PYX_ERR(0, 69, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.select_device", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_9select_device(__pyx_self, __pyx_v_device, __pyx_v_batch_size, __pyx_v_newline); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_9select_device(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_device, PyObject *__pyx_v_batch_size, PyObject *__pyx_v_newline) { PyObject *__pyx_v_s = NULL; PyObject *__pyx_v_cpu = NULL; PyObject *__pyx_v_cuda = NULL; PyObject *__pyx_v_devices = NULL; PyObject *__pyx_v_n = NULL; PyObject *__pyx_v_space = NULL; PyObject *__pyx_v_i = NULL; PyObject *__pyx_v_d = NULL; PyObject *__pyx_v_p = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; Py_ssize_t __pyx_t_2; Py_UCS4 __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; int __pyx_t_8; int __pyx_t_9; int __pyx_t_10; PyObject *(*__pyx_t_11)(PyObject *); Py_ssize_t __pyx_t_12; PyObject *__pyx_t_13 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("select_device", 0); __Pyx_INCREF(__pyx_v_device); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":71 * def select_device(device='', batch_size=0, newline=True): * # device = 'cpu' or '0' or '0,1,2,3' * s = f'YOLOv5 {git_describe() or date_modified()} torch {torch.__version__} ' # string # <<<<<<<<<<<<<< * device = str(device).strip().lower().replace('cuda:', '') # to string, 'cuda:0' to '0' * cpu = device == 'cpu' */ __pyx_t_1 = PyTuple_New(5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = 0; __pyx_t_3 = 127; __Pyx_INCREF(__pyx_kp_u_YOLOv5); __pyx_t_3 = (1114111 > __pyx_t_3) ? 1114111 : __pyx_t_3; __pyx_t_2 += 9; __Pyx_GIVEREF(__pyx_kp_u_YOLOv5); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_kp_u_YOLOv5); __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_git_describe); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_8 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_7, }; __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 0+__pyx_t_8); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(0, 71, __pyx_L1_error) if (!__pyx_t_9) { __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else { __Pyx_INCREF(__pyx_t_5); __pyx_t_4 = __pyx_t_5; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L3_bool_binop_done; } __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_date_modified); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_8 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_7, }; __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 0+__pyx_t_8); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_INCREF(__pyx_t_5); __pyx_t_4 = __pyx_t_5; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_L3_bool_binop_done:; __pyx_t_5 = __Pyx_PyObject_FormatSimple(__pyx_t_4, __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u_torch); __pyx_t_2 += 7; __Pyx_GIVEREF(__pyx_kp_u_torch); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_kp_u_torch); __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_torch_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_version); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_FormatSimple(__pyx_t_4, __pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_kp_u__5); __pyx_t_2 += 1; __Pyx_GIVEREF(__pyx_kp_u__5); PyTuple_SET_ITEM(__pyx_t_1, 4, __pyx_kp_u__5); __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_1, 5, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_s = __pyx_t_5; __pyx_t_5 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":72 * # device = 'cpu' or '0' or '0,1,2,3' * s = f'YOLOv5 {git_describe() or date_modified()} torch {torch.__version__} ' # string * device = str(device).strip().lower().replace('cuda:', '') # to string, 'cuda:0' to '0' # <<<<<<<<<<<<<< * cpu = device == 'cpu' * if cpu: */ __pyx_t_4 = __Pyx_PyObject_Str(__pyx_v_device); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_strip); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_8 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_4, }; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 0+__pyx_t_8); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_lower); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_8 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_1, }; __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 0+__pyx_t_8); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_replace); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF_SET(__pyx_v_device, __pyx_t_5); __pyx_t_5 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":73 * s = f'YOLOv5 {git_describe() or date_modified()} torch {torch.__version__} ' # string * device = str(device).strip().lower().replace('cuda:', '') # to string, 'cuda:0' to '0' * cpu = device == 'cpu' # <<<<<<<<<<<<<< * if cpu: * os.environ['CUDA_VISIBLE_DEVICES'] = '-1' # force torch.cuda.is_available() = False */ __pyx_t_5 = PyObject_RichCompare(__pyx_v_device, __pyx_n_u_cpu, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 73, __pyx_L1_error) __pyx_v_cpu = __pyx_t_5; __pyx_t_5 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":74 * device = str(device).strip().lower().replace('cuda:', '') # to string, 'cuda:0' to '0' * cpu = device == 'cpu' * if cpu: # <<<<<<<<<<<<<< * os.environ['CUDA_VISIBLE_DEVICES'] = '-1' # force torch.cuda.is_available() = False * elif device: # non-cpu device requested */ __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_cpu); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(0, 74, __pyx_L1_error) if (__pyx_t_9) { /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":75 * cpu = device == 'cpu' * if cpu: * os.environ['CUDA_VISIBLE_DEVICES'] = '-1' # force torch.cuda.is_available() = False # <<<<<<<<<<<<<< * elif device: # non-cpu device requested * os.environ['CUDA_VISIBLE_DEVICES'] = device # set environment variable - must be before assert is_available() */ __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_os); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 75, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_environ); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 75, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely((PyObject_SetItem(__pyx_t_6, __pyx_n_u_CUDA_VISIBLE_DEVICES, __pyx_kp_u_1) < 0))) __PYX_ERR(0, 75, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":74 * device = str(device).strip().lower().replace('cuda:', '') # to string, 'cuda:0' to '0' * cpu = device == 'cpu' * if cpu: # <<<<<<<<<<<<<< * os.environ['CUDA_VISIBLE_DEVICES'] = '-1' # force torch.cuda.is_available() = False * elif device: # non-cpu device requested */ goto __pyx_L5; } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":76 * if cpu: * os.environ['CUDA_VISIBLE_DEVICES'] = '-1' # force torch.cuda.is_available() = False * elif device: # non-cpu device requested # <<<<<<<<<<<<<< * os.environ['CUDA_VISIBLE_DEVICES'] = device # set environment variable - must be before assert is_available() * assert torch.cuda.is_available() and torch.cuda.device_count() >= len(device.replace(',', '')), \ */ __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_device); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(0, 76, __pyx_L1_error) if (__pyx_t_9) { /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":77 * os.environ['CUDA_VISIBLE_DEVICES'] = '-1' # force torch.cuda.is_available() = False * elif device: # non-cpu device requested * os.environ['CUDA_VISIBLE_DEVICES'] = device # set environment variable - must be before assert is_available() # <<<<<<<<<<<<<< * assert torch.cuda.is_available() and torch.cuda.device_count() >= len(device.replace(',', '')), \ * f"Invalid CUDA '--device {device}' requested, use '--device cpu' or pass valid CUDA device(s)" */ __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_os); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_environ); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely((PyObject_SetItem(__pyx_t_5, __pyx_n_u_CUDA_VISIBLE_DEVICES, __pyx_v_device) < 0))) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":78 * elif device: # non-cpu device requested * os.environ['CUDA_VISIBLE_DEVICES'] = device # set environment variable - must be before assert is_available() * assert torch.cuda.is_available() and torch.cuda.device_count() >= len(device.replace(',', '')), \ # <<<<<<<<<<<<<< * f"Invalid CUDA '--device {device}' requested, use '--device cpu' or pass valid CUDA device(s)" * */ #ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_torch_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_cuda_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_is_available); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_8 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_1, }; __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 0+__pyx_t_8); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_10) { } else { __pyx_t_9 = __pyx_t_10; goto __pyx_L6_bool_binop_done; } __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_torch_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_cuda_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_device_count); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_8 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_1, }; __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 0+__pyx_t_8); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_device, __pyx_n_s_replace); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_2 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = PyObject_RichCompare(__pyx_t_5, __pyx_t_1, Py_GE); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_9 = __pyx_t_10; __pyx_L6_bool_binop_done:; if (unlikely(!__pyx_t_9)) { /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":79 * os.environ['CUDA_VISIBLE_DEVICES'] = device # set environment variable - must be before assert is_available() * assert torch.cuda.is_available() and torch.cuda.device_count() >= len(device.replace(',', '')), \ * f"Invalid CUDA '--device {device}' requested, use '--device cpu' or pass valid CUDA device(s)" # <<<<<<<<<<<<<< * * cuda = not cpu and torch.cuda.is_available() */ __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 79, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = 0; __pyx_t_3 = 127; __Pyx_INCREF(__pyx_kp_u_Invalid_CUDA_device); __pyx_t_2 += 23; __Pyx_GIVEREF(__pyx_kp_u_Invalid_CUDA_device); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_kp_u_Invalid_CUDA_device); __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_v_device, __pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 79, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1); __pyx_t_1 = 0; __Pyx_INCREF(__pyx_kp_u_requested_use_device_cpu_or_pas); __pyx_t_2 += 60; __Pyx_GIVEREF(__pyx_kp_u_requested_use_device_cpu_or_pas); PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_kp_u_requested_use_device_cpu_or_pas); __pyx_t_1 = __Pyx_PyUnicode_Join(__pyx_t_6, 3, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 79, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_Raise(__pyx_builtin_AssertionError, __pyx_t_1, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 78, __pyx_L1_error) } } #else if ((1)); else __PYX_ERR(0, 78, __pyx_L1_error) #endif /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":76 * if cpu: * os.environ['CUDA_VISIBLE_DEVICES'] = '-1' # force torch.cuda.is_available() = False * elif device: # non-cpu device requested # <<<<<<<<<<<<<< * os.environ['CUDA_VISIBLE_DEVICES'] = device # set environment variable - must be before assert is_available() * assert torch.cuda.is_available() and torch.cuda.device_count() >= len(device.replace(',', '')), \ */ } __pyx_L5:; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":81 * f"Invalid CUDA '--device {device}' requested, use '--device cpu' or pass valid CUDA device(s)" * * cuda = not cpu and torch.cuda.is_available() # <<<<<<<<<<<<<< * if cuda: * devices = device.split(',') if device else '0' # range(torch.cuda.device_count()) # i.e. 0,1,6,7 */ __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_cpu); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(0, 81, __pyx_L1_error) __pyx_t_10 = (!__pyx_t_9); if (__pyx_t_10) { } else { __pyx_t_6 = __Pyx_PyBool_FromLong(__pyx_t_10); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 81, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L8_bool_binop_done; } __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_torch_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 81, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_cuda_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 81, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_is_available); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 81, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_8 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_4, }; __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_8, 0+__pyx_t_8); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 81, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_INCREF(__pyx_t_6); __pyx_t_1 = __pyx_t_6; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_L8_bool_binop_done:; __pyx_v_cuda = __pyx_t_1; __pyx_t_1 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":82 * * cuda = not cpu and torch.cuda.is_available() * if cuda: # <<<<<<<<<<<<<< * devices = device.split(',') if device else '0' # range(torch.cuda.device_count()) # i.e. 0,1,6,7 * n = len(devices) # device count */ __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_cuda); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 82, __pyx_L1_error) if (__pyx_t_10) { /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":83 * cuda = not cpu and torch.cuda.is_available() * if cuda: * devices = device.split(',') if device else '0' # range(torch.cuda.device_count()) # i.e. 0,1,6,7 # <<<<<<<<<<<<<< * n = len(devices) # device count * if n > 1 and batch_size > 0: # check batch_size is divisible by device_count */ __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_device); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 83, __pyx_L1_error) if (__pyx_t_10) { __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_device, __pyx_n_s_split); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 83, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_8 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_kp_u__7}; __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 83, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_t_1 = __pyx_t_6; __pyx_t_6 = 0; } else { __Pyx_INCREF(__pyx_kp_u_0); __pyx_t_1 = __pyx_kp_u_0; } __pyx_v_devices = __pyx_t_1; __pyx_t_1 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":84 * if cuda: * devices = device.split(',') if device else '0' # range(torch.cuda.device_count()) # i.e. 0,1,6,7 * n = len(devices) # device count # <<<<<<<<<<<<<< * if n > 1 and batch_size > 0: # check batch_size is divisible by device_count * assert batch_size % n == 0, f'batch-size {batch_size} not multiple of GPU count {n}' */ __pyx_t_2 = PyObject_Length(__pyx_v_devices); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(0, 84, __pyx_L1_error) __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 84, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_n = __pyx_t_1; __pyx_t_1 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":85 * devices = device.split(',') if device else '0' # range(torch.cuda.device_count()) # i.e. 0,1,6,7 * n = len(devices) # device count * if n > 1 and batch_size > 0: # check batch_size is divisible by device_count # <<<<<<<<<<<<<< * assert batch_size % n == 0, f'batch-size {batch_size} not multiple of GPU count {n}' * space = ' ' * (len(s) + 1) */ __pyx_t_1 = PyObject_RichCompare(__pyx_v_n, __pyx_int_1, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 85, __pyx_L1_error) __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(0, 85, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_9) { } else { __pyx_t_10 = __pyx_t_9; goto __pyx_L12_bool_binop_done; } __pyx_t_1 = PyObject_RichCompare(__pyx_v_batch_size, __pyx_int_0, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 85, __pyx_L1_error) __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(0, 85, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_10 = __pyx_t_9; __pyx_L12_bool_binop_done:; if (__pyx_t_10) { /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":86 * n = len(devices) # device count * if n > 1 and batch_size > 0: # check batch_size is divisible by device_count * assert batch_size % n == 0, f'batch-size {batch_size} not multiple of GPU count {n}' # <<<<<<<<<<<<<< * space = ' ' * (len(s) + 1) * for i, d in enumerate(devices): */ #ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { __pyx_t_1 = PyNumber_Remainder(__pyx_v_batch_size, __pyx_v_n); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 86, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_t_1, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 86, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 86, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_10)) { __pyx_t_6 = PyTuple_New(4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 86, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = 0; __pyx_t_3 = 127; __Pyx_INCREF(__pyx_kp_u_batch_size_2); __pyx_t_2 += 11; __Pyx_GIVEREF(__pyx_kp_u_batch_size_2); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_kp_u_batch_size_2); __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_v_batch_size, __pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 86, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1); __pyx_t_1 = 0; __Pyx_INCREF(__pyx_kp_u_not_multiple_of_GPU_count); __pyx_t_2 += 27; __Pyx_GIVEREF(__pyx_kp_u_not_multiple_of_GPU_count); PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_kp_u_not_multiple_of_GPU_count); __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_v_n, __pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 86, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) : __pyx_t_3; __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyUnicode_Join(__pyx_t_6, 4, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 86, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_Raise(__pyx_builtin_AssertionError, __pyx_t_1, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 86, __pyx_L1_error) } } #else if ((1)); else __PYX_ERR(0, 86, __pyx_L1_error) #endif /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":85 * devices = device.split(',') if device else '0' # range(torch.cuda.device_count()) # i.e. 0,1,6,7 * n = len(devices) # device count * if n > 1 and batch_size > 0: # check batch_size is divisible by device_count # <<<<<<<<<<<<<< * assert batch_size % n == 0, f'batch-size {batch_size} not multiple of GPU count {n}' * space = ' ' * (len(s) + 1) */ } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":87 * if n > 1 and batch_size > 0: # check batch_size is divisible by device_count * assert batch_size % n == 0, f'batch-size {batch_size} not multiple of GPU count {n}' * space = ' ' * (len(s) + 1) # <<<<<<<<<<<<<< * for i, d in enumerate(devices): * p = torch.cuda.get_device_properties(i) */ __pyx_t_2 = PyObject_Length(__pyx_v_s); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(0, 87, __pyx_L1_error) __pyx_t_1 = PyInt_FromSsize_t((__pyx_t_2 + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = PyNumber_Multiply(__pyx_kp_u__5, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!(likely(PyUnicode_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None) || __Pyx_RaiseUnexpectedTypeError("unicode", __pyx_t_6))) __PYX_ERR(0, 87, __pyx_L1_error) __pyx_v_space = ((PyObject*)__pyx_t_6); __pyx_t_6 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":88 * assert batch_size % n == 0, f'batch-size {batch_size} not multiple of GPU count {n}' * space = ' ' * (len(s) + 1) * for i, d in enumerate(devices): # <<<<<<<<<<<<<< * p = torch.cuda.get_device_properties(i) * s += f"{'' if i == 0 else space}CUDA:{d} ({p.name}, {p.total_memory / 1024 ** 2:.0f}MiB)\n" # bytes to MB */ __Pyx_INCREF(__pyx_int_0); __pyx_t_6 = __pyx_int_0; if (likely(PyList_CheckExact(__pyx_v_devices)) || PyTuple_CheckExact(__pyx_v_devices)) { __pyx_t_1 = __pyx_v_devices; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; __pyx_t_11 = NULL; } else { __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_devices); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 88, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_11 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 88, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_11)) { if (likely(PyList_CheckExact(__pyx_t_1))) { if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_5); __pyx_t_2++; if (unlikely((0 < 0))) __PYX_ERR(0, 88, __pyx_L1_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 88, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif } else { if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_5); __pyx_t_2++; if (unlikely((0 < 0))) __PYX_ERR(0, 88, __pyx_L1_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 88, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif } } else { __pyx_t_5 = __pyx_t_11(__pyx_t_1); if (unlikely(!__pyx_t_5)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 88, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_5); } __Pyx_XDECREF_SET(__pyx_v_d, __pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_t_6); __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_6); __pyx_t_5 = __Pyx_PyInt_AddObjC(__pyx_t_6, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 88, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = __pyx_t_5; __pyx_t_5 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":89 * space = ' ' * (len(s) + 1) * for i, d in enumerate(devices): * p = torch.cuda.get_device_properties(i) # <<<<<<<<<<<<<< * s += f"{'' if i == 0 else space}CUDA:{d} ({p.name}, {p.total_memory / 1024 ** 2:.0f}MiB)\n" # bytes to MB * else: */ __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_torch_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 89, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_cuda_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 89, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_get_device_properties); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 89, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_8 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_v_i}; __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 89, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_XDECREF_SET(__pyx_v_p, __pyx_t_5); __pyx_t_5 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":90 * for i, d in enumerate(devices): * p = torch.cuda.get_device_properties(i) * s += f"{'' if i == 0 else space}CUDA:{d} ({p.name}, {p.total_memory / 1024 ** 2:.0f}MiB)\n" # bytes to MB # <<<<<<<<<<<<<< * else: * s += 'CPU\n' */ __pyx_t_5 = PyTuple_New(8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 90, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_12 = 0; __pyx_t_3 = 127; __pyx_t_7 = __Pyx_PyInt_EqObjC(__pyx_v_i, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 90, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 90, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (__pyx_t_10) { __Pyx_INCREF(__pyx_kp_u__4); __pyx_t_4 = __pyx_kp_u__4; } else { __Pyx_INCREF(__pyx_v_space); __pyx_t_4 = __pyx_v_space; } __pyx_t_7 = __Pyx_PyUnicode_Unicode(__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 90, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) : __pyx_t_3; __pyx_t_12 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_7); __pyx_t_7 = 0; __Pyx_INCREF(__pyx_kp_u_CUDA); __pyx_t_12 += 5; __Pyx_GIVEREF(__pyx_kp_u_CUDA); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_kp_u_CUDA); __pyx_t_7 = __Pyx_PyObject_FormatSimple(__pyx_v_d, __pyx_empty_unicode); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 90, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) : __pyx_t_3; __pyx_t_12 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_7); __pyx_t_7 = 0; __Pyx_INCREF(__pyx_kp_u__9); __pyx_t_12 += 2; __Pyx_GIVEREF(__pyx_kp_u__9); PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_kp_u__9); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_p, __pyx_n_s_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 90, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_4 = __Pyx_PyObject_FormatSimple(__pyx_t_7, __pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 90, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) : __pyx_t_3; __pyx_t_12 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 4, __pyx_t_4); __pyx_t_4 = 0; __Pyx_INCREF(__pyx_kp_u__10); __pyx_t_12 += 2; __Pyx_GIVEREF(__pyx_kp_u__10); PyTuple_SET_ITEM(__pyx_t_5, 5, __pyx_kp_u__10); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_p, __pyx_n_s_total_memory); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 90, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = __Pyx_PyInt_TrueDivideObjC(__pyx_t_4, __pyx_int_1048576, 0x100000, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 90, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_Format(__pyx_t_7, __pyx_kp_u_0f); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 90, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_3 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) > __pyx_t_3) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) : __pyx_t_3; __pyx_t_12 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 6, __pyx_t_4); __pyx_t_4 = 0; __Pyx_INCREF(__pyx_kp_u_MiB); __pyx_t_12 += 5; __Pyx_GIVEREF(__pyx_kp_u_MiB); PyTuple_SET_ITEM(__pyx_t_5, 7, __pyx_kp_u_MiB); __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_5, 8, __pyx_t_12, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 90, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyUnicode_ConcatInPlaceSafe(__pyx_v_s, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 90, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF_SET(__pyx_v_s, __pyx_t_5); __pyx_t_5 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":88 * assert batch_size % n == 0, f'batch-size {batch_size} not multiple of GPU count {n}' * space = ' ' * (len(s) + 1) * for i, d in enumerate(devices): # <<<<<<<<<<<<<< * p = torch.cuda.get_device_properties(i) * s += f"{'' if i == 0 else space}CUDA:{d} ({p.name}, {p.total_memory / 1024 ** 2:.0f}MiB)\n" # bytes to MB */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":82 * * cuda = not cpu and torch.cuda.is_available() * if cuda: # <<<<<<<<<<<<<< * devices = device.split(',') if device else '0' # range(torch.cuda.device_count()) # i.e. 0,1,6,7 * n = len(devices) # device count */ goto __pyx_L10; } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":92 * s += f"{'' if i == 0 else space}CUDA:{d} ({p.name}, {p.total_memory / 1024 ** 2:.0f}MiB)\n" # bytes to MB * else: * s += 'CPU\n' # <<<<<<<<<<<<<< * * if not newline: */ /*else*/ { __pyx_t_6 = __Pyx_PyUnicode_ConcatInPlace(__pyx_v_s, __pyx_n_u_CPU); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 92, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF_SET(__pyx_v_s, __pyx_t_6); __pyx_t_6 = 0; } __pyx_L10:; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":94 * s += 'CPU\n' * * if not newline: # <<<<<<<<<<<<<< * s = s.rstrip() * LOGGER.info(s.encode().decode('ascii', 'ignore') if platform.system() == 'Windows' else s) # emoji-safe */ __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_newline); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 94, __pyx_L1_error) __pyx_t_9 = ((!__pyx_t_10) != 0); if (__pyx_t_9) { /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":95 * * if not newline: * s = s.rstrip() # <<<<<<<<<<<<<< * LOGGER.info(s.encode().decode('ascii', 'ignore') if platform.system() == 'Windows' else s) # emoji-safe * return torch.device('cuda:0' if cuda else 'cpu') */ __pyx_t_6 = __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyUnicode_Type_rstrip, __pyx_v_s); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 95, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF_SET(__pyx_v_s, __pyx_t_6); __pyx_t_6 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":94 * s += 'CPU\n' * * if not newline: # <<<<<<<<<<<<<< * s = s.rstrip() * LOGGER.info(s.encode().decode('ascii', 'ignore') if platform.system() == 'Windows' else s) # emoji-safe */ } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":96 * if not newline: * s = s.rstrip() * LOGGER.info(s.encode().decode('ascii', 'ignore') if platform.system() == 'Windows' else s) # emoji-safe # <<<<<<<<<<<<<< * return torch.device('cuda:0' if cuda else 'cpu') * */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_LOGGER); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 96, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_info); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 96, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_platform); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 96, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_system); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 96, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_13); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_13, function); __pyx_t_8 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_7, }; __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_8, 0+__pyx_t_8); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 96, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; } __pyx_t_9 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_n_u_Windows, Py_EQ)); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(0, 96, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_9) { __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_s, __pyx_n_s_encode); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 96, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_13); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_13, function); __pyx_t_8 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_7, }; __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_8, 0+__pyx_t_8); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 96, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; } __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_decode); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 96, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_tuple__11, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 96, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_1 = __pyx_t_4; __pyx_t_4 = 0; } else { __Pyx_INCREF(__pyx_v_s); __pyx_t_1 = __pyx_v_s; } __pyx_t_4 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_8 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_1}; __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 96, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":97 * s = s.rstrip() * LOGGER.info(s.encode().decode('ascii', 'ignore') if platform.system() == 'Windows' else s) # emoji-safe * return torch.device('cuda:0' if cuda else 'cpu') # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_torch_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 97, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_device); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 97, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_cuda); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(0, 97, __pyx_L1_error) if (__pyx_t_9) { __Pyx_INCREF(__pyx_kp_u_cuda_0); __pyx_t_5 = __pyx_kp_u_cuda_0; } else { __Pyx_INCREF(__pyx_n_u_cpu); __pyx_t_5 = __pyx_n_u_cpu; } __pyx_t_4 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_8 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5}; __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 97, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __pyx_r = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":69 * * * def select_device(device='', batch_size=0, newline=True): # <<<<<<<<<<<<<< * # device = 'cpu' or '0' or '0,1,2,3' * s = f'YOLOv5 {git_describe() or date_modified()} torch {torch.__version__} ' # string */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_13); __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.select_device", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_s); __Pyx_XDECREF(__pyx_v_cpu); __Pyx_XDECREF(__pyx_v_cuda); __Pyx_XDECREF(__pyx_v_devices); __Pyx_XDECREF(__pyx_v_n); __Pyx_XDECREF(__pyx_v_space); __Pyx_XDECREF(__pyx_v_i); __Pyx_XDECREF(__pyx_v_d); __Pyx_XDECREF(__pyx_v_p); __Pyx_XDECREF(__pyx_v_device); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":100 * * * def time_sync(): # <<<<<<<<<<<<<< * # pytorch-accurate time * if torch.cuda.is_available(): */ /* Python wrapper */ static PyObject *__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_12time_sync(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyMethodDef __pyx_mdef_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_12time_sync = {"time_sync", (PyCFunction)__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_12time_sync, METH_NOARGS, 0}; static PyObject *__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_12time_sync(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("time_sync (wrapper)", 0); __pyx_r = __pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_11time_sync(__pyx_self); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_11time_sync(CYTHON_UNUSED PyObject *__pyx_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("time_sync", 0); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":102 * def time_sync(): * # pytorch-accurate time * if torch.cuda.is_available(): # <<<<<<<<<<<<<< * torch.cuda.synchronize() * return time.time() */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_torch_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_cuda_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_is_available); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_3, }; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 102, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_5) { /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":103 * # pytorch-accurate time * if torch.cuda.is_available(): * torch.cuda.synchronize() # <<<<<<<<<<<<<< * return time.time() * */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_torch_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_cuda_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_synchronize); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_3, }; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":102 * def time_sync(): * # pytorch-accurate time * if torch.cuda.is_available(): # <<<<<<<<<<<<<< * torch.cuda.synchronize() * return time.time() */ } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":104 * if torch.cuda.is_available(): * torch.cuda.synchronize() * return time.time() # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_time); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 104, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_time); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 104, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_2, }; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 104, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":100 * * * def time_sync(): # <<<<<<<<<<<<<< * # pytorch-accurate time * if torch.cuda.is_available(): */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.time_sync", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":107 * * * def profile(input, ops, n=10, device=None): # <<<<<<<<<<<<<< * # YOLOv5 speed/memory/FLOPs profiler * # */ /* Python wrapper */ static PyObject *__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_14profile(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_14profile = {"profile", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_14profile, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_14profile(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_input = 0; PyObject *__pyx_v_ops = 0; PyObject *__pyx_v_n = 0; PyObject *__pyx_v_device = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("profile (wrapper)", 0); { #if CYTHON_USE_MODULE_STATE PyObject **__pyx_pyargnames[] = {&__pyx_n_s_input,&__pyx_n_s_ops,&__pyx_n_s_n,&__pyx_n_s_device,0}; #else static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_input,&__pyx_n_s_ops,&__pyx_n_s_n,&__pyx_n_s_device,0}; #endif PyObject* values[4] = {0,0,0,0}; values[2] = ((PyObject *)((PyObject *)__pyx_int_10)); values[3] = ((PyObject *)((PyObject *)Py_None)); if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_input)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 107, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ops)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 107, __pyx_L3_error) else { __Pyx_RaiseArgtupleInvalid("profile", 0, 2, 4, 1); __PYX_ERR(0, 107, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n); if (value) { values[2] = value; kw_args--; } else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 107, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_device); if (value) { values[3] = value; kw_args--; } else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 107, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "profile") < 0)) __PYX_ERR(0, 107, __pyx_L3_error) } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_input = values[0]; __pyx_v_ops = values[1]; __pyx_v_n = values[2]; __pyx_v_device = values[3]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("profile", 0, 2, 4, __pyx_nargs); __PYX_ERR(0, 107, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.profile", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_13profile(__pyx_self, __pyx_v_input, __pyx_v_ops, __pyx_v_n, __pyx_v_device); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_7profile_2generator1(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":139 * t[1] = time_sync() * try: * _ = (sum(yi.sum() for yi in y) if isinstance(y, list) else y).sum().backward() # <<<<<<<<<<<<<< * t[2] = time_sync() * except Exception as e: # no backward method */ static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_7profile_genexpr(PyObject *__pyx_self) { struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("genexpr", 0); __pyx_cur_scope = (struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr *)__pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr(__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(0, 139, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile *) __pyx_self; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_outer_scope); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_outer_scope); { __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_7profile_2generator1, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_profile_locals_genexpr, __pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils); if (unlikely(!gen)) __PYX_ERR(0, 139, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.profile.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_7profile_2generator1(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr *__pyx_cur_scope = ((struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; Py_ssize_t __pyx_t_2; PyObject *(*__pyx_t_3)(PyObject *); PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; int __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("genexpr", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L6_resume_from_yield; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 139, __pyx_L1_error) if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_y)) { __Pyx_RaiseClosureNameError("y"); __PYX_ERR(0, 139, __pyx_L1_error) } if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_y)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_y)) { __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_y; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; __pyx_t_3 = NULL; } else { __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_y); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 139, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_3)) { if (likely(PyList_CheckExact(__pyx_t_1))) { if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely((0 < 0))) __PYX_ERR(0, 139, __pyx_L1_error) #else __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif } else { if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely((0 < 0))) __PYX_ERR(0, 139, __pyx_L1_error) #else __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif } } else { __pyx_t_4 = __pyx_t_3(__pyx_t_1); if (unlikely(!__pyx_t_4)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 139, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_4); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_yi); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_yi, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_yi, __pyx_n_s_sum); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_7 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_6, }; __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 0+__pyx_t_7); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_r = __pyx_t_4; __pyx_t_4 = 0; __Pyx_XGIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; __pyx_cur_scope->__pyx_t_1 = __pyx_t_2; __pyx_cur_scope->__pyx_t_2 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, yielding value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L6_resume_from_yield:; __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_1); __pyx_t_2 = __pyx_cur_scope->__pyx_t_1; __pyx_t_3 = __pyx_cur_scope->__pyx_t_2; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 139, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_Generator_Replace_StopIteration(0); __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_7profile_5generator2(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":149 * s_in = tuple(x.shape) if isinstance(x, torch.Tensor) else 'list' * s_out = tuple(y.shape) if isinstance(y, torch.Tensor) else 'list' * p = sum(list(x.numel() for x in m.parameters())) if isinstance(m, nn.Module) else 0 # parameters # <<<<<<<<<<<<<< * print(f'{p:12}{flops:12.4g}{mem:>14.3f}{tf:14.4g}{tb:14.4g}{str(s_in):>24s}{str(s_out):>24s}') * results.append([p, flops, mem, tf, tb, s_in, s_out]) */ static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_7profile_3genexpr(PyObject *__pyx_self) { struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("genexpr", 0); __pyx_cur_scope = (struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr *)__pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr(__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(0, 149, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile *) __pyx_self; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_outer_scope); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_outer_scope); { __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_7profile_5generator2, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_profile_locals_genexpr, __pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils); if (unlikely(!gen)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.profile.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_7profile_5generator2(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr *__pyx_cur_scope = ((struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; Py_ssize_t __pyx_t_5; PyObject *(*__pyx_t_6)(PyObject *); PyObject *__pyx_t_7 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("genexpr", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 149, __pyx_L1_error) __pyx_r = PyList_New(0); if (unlikely(!__pyx_r)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_r); if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_m)) { __Pyx_RaiseClosureNameError("m"); __PYX_ERR(0, 149, __pyx_L1_error) } __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_m, __pyx_n_s_parameters); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_3, }; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { __pyx_t_5 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 149, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (likely(!__pyx_t_6)) { if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely((0 < 0))) __PYX_ERR(0, 149, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely((0 < 0))) __PYX_ERR(0, 149, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } } else { __pyx_t_1 = __pyx_t_6(__pyx_t_2); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 149, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_1); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_x); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_x, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_numel); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_7, }; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } if (unlikely(__Pyx_ListComp_Append(__pyx_r, (PyObject*)__pyx_t_1))) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; __Pyx_Generator_Replace_StopIteration(0); __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":107 * * * def profile(input, ops, n=10, device=None): # <<<<<<<<<<<<<< * # YOLOv5 speed/memory/FLOPs profiler * # */ static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_13profile(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_input, PyObject *__pyx_v_ops, PyObject *__pyx_v_n, PyObject *__pyx_v_device) { struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile *__pyx_cur_scope; PyObject *__pyx_v_results = NULL; PyObject *__pyx_v_x = NULL; PyObject *__pyx_v_tf = NULL; PyObject *__pyx_v_tb = NULL; PyObject *__pyx_v_t = NULL; PyObject *__pyx_v_flops = NULL; CYTHON_UNUSED PyObject *__pyx_v__ = NULL; PyObject *__pyx_v_e = NULL; PyObject *__pyx_v_mem = NULL; PyObject *__pyx_v_s_in = NULL; PyObject *__pyx_v_s_out = NULL; PyObject *__pyx_v_p = NULL; PyObject *__pyx_gb_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_7profile_2generator1 = 0; PyObject *__pyx_gb_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_7profile_5generator2 = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; int __pyx_t_6; Py_ssize_t __pyx_t_7; Py_UCS4 __pyx_t_8; PyObject *(*__pyx_t_9)(PyObject *); Py_ssize_t __pyx_t_10; PyObject *(*__pyx_t_11)(PyObject *); PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; int __pyx_t_14; int __pyx_t_15; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; Py_ssize_t __pyx_t_19; PyObject *(*__pyx_t_20)(PyObject *); PyObject *__pyx_t_21 = NULL; PyObject *__pyx_t_22 = NULL; PyObject *__pyx_t_23 = NULL; PyObject *__pyx_t_24 = NULL; PyObject *__pyx_t_25 = NULL; double __pyx_t_26; int __pyx_t_27; char const *__pyx_t_28; PyObject *__pyx_t_29 = NULL; PyObject *__pyx_t_30 = NULL; PyObject *__pyx_t_31 = NULL; PyObject *__pyx_t_32 = NULL; PyObject *__pyx_t_33 = NULL; PyObject *__pyx_t_34 = NULL; int __pyx_t_35; char const *__pyx_t_36; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("profile", 0); __pyx_cur_scope = (struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile *)__pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile(__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(0, 107, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __Pyx_INCREF(__pyx_v_device); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":116 * # profile(input, [m1, m2], n=100) # profile over 100 iterations * * results = [] # <<<<<<<<<<<<<< * device = device or select_device() * print(f"{'Params':>12s}{'GFLOPs':>12s}{'GPU_mem (GB)':>14s}{'forward (ms)':>14s}{'backward (ms)':>14s}" */ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 116, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_results = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":117 * * results = [] * device = device or select_device() # <<<<<<<<<<<<<< * print(f"{'Params':>12s}{'GFLOPs':>12s}{'GPU_mem (GB)':>14s}{'forward (ms)':>14s}{'backward (ms)':>14s}" * f"{'input':>24s}{'output':>24s}") */ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_device); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 117, __pyx_L1_error) if (!__pyx_t_2) { } else { __Pyx_INCREF(__pyx_v_device); __pyx_t_1 = __pyx_v_device; goto __pyx_L3_bool_binop_done; } __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_select_device); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; __pyx_t_6 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_6 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_5, }; __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_INCREF(__pyx_t_3); __pyx_t_1 = __pyx_t_3; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_L3_bool_binop_done:; __Pyx_DECREF_SET(__pyx_v_device, __pyx_t_1); __pyx_t_1 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":118 * results = [] * device = device or select_device() * print(f"{'Params':>12s}{'GFLOPs':>12s}{'GPU_mem (GB)':>14s}{'forward (ms)':>14s}{'backward (ms)':>14s}" # <<<<<<<<<<<<<< * f"{'input':>24s}{'output':>24s}") * */ __pyx_t_1 = PyTuple_New(7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = 0; __pyx_t_8 = 127; __pyx_t_3 = __Pyx_PyObject_Format(__pyx_n_u_Params, __pyx_kp_u_12s); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) > __pyx_t_8) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) : __pyx_t_8; __pyx_t_7 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Format(__pyx_n_u_GFLOPs, __pyx_kp_u_12s); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) > __pyx_t_8) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) : __pyx_t_8; __pyx_t_7 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Format(__pyx_kp_u_GPU_mem_GB, __pyx_kp_u_14s); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) > __pyx_t_8) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) : __pyx_t_8; __pyx_t_7 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Format(__pyx_kp_u_forward_ms, __pyx_kp_u_14s); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) > __pyx_t_8) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) : __pyx_t_8; __pyx_t_7 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Format(__pyx_kp_u_backward_ms, __pyx_kp_u_14s); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) > __pyx_t_8) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) : __pyx_t_8; __pyx_t_7 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 4, __pyx_t_3); __pyx_t_3 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":119 * device = device or select_device() * print(f"{'Params':>12s}{'GFLOPs':>12s}{'GPU_mem (GB)':>14s}{'forward (ms)':>14s}{'backward (ms)':>14s}" * f"{'input':>24s}{'output':>24s}") # <<<<<<<<<<<<<< * * for x in input if isinstance(input, list) else [input]: */ __pyx_t_3 = __Pyx_PyObject_Format(__pyx_n_u_input, __pyx_kp_u_24s); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) > __pyx_t_8) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) : __pyx_t_8; __pyx_t_7 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 5, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Format(__pyx_n_u_output, __pyx_kp_u_24s); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) > __pyx_t_8) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) : __pyx_t_8; __pyx_t_7 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 6, __pyx_t_3); __pyx_t_3 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":118 * results = [] * device = device or select_device() * print(f"{'Params':>12s}{'GFLOPs':>12s}{'GPU_mem (GB)':>14s}{'forward (ms)':>14s}{'backward (ms)':>14s}" # <<<<<<<<<<<<<< * f"{'input':>24s}{'output':>24s}") * */ __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_1, 7, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_print, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":121 * f"{'input':>24s}{'output':>24s}") * * for x in input if isinstance(input, list) else [input]: # <<<<<<<<<<<<<< * x = x.to(device) * x.requires_grad = True */ __pyx_t_2 = PyList_Check(__pyx_v_input); if ((__pyx_t_2 != 0)) { __Pyx_INCREF(__pyx_v_input); __pyx_t_1 = __pyx_v_input; } else { __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_input); __Pyx_GIVEREF(__pyx_v_input); PyList_SET_ITEM(__pyx_t_3, 0, __pyx_v_input); __pyx_t_1 = __pyx_t_3; __pyx_t_3 = 0; } if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); __pyx_t_7 = 0; __pyx_t_9 = NULL; } else { __pyx_t_7 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 121, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (likely(!__pyx_t_9)) { if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_1); __pyx_t_7++; if (unlikely((0 < 0))) __PYX_ERR(0, 121, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_1); __pyx_t_7++; if (unlikely((0 < 0))) __PYX_ERR(0, 121, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } } else { __pyx_t_1 = __pyx_t_9(__pyx_t_3); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 121, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_1); } __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_1); __pyx_t_1 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":122 * * for x in input if isinstance(input, list) else [input]: * x = x.to(device) # <<<<<<<<<<<<<< * x.requires_grad = True * for m in ops if isinstance(ops, list) else [ops]: */ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_to); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; __pyx_t_6 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_6 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_device}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF_SET(__pyx_v_x, __pyx_t_1); __pyx_t_1 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":123 * for x in input if isinstance(input, list) else [input]: * x = x.to(device) * x.requires_grad = True # <<<<<<<<<<<<<< * for m in ops if isinstance(ops, list) else [ops]: * m = m.to(device) if hasattr(m, 'to') else m # device */ if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_requires_grad, Py_True) < 0) __PYX_ERR(0, 123, __pyx_L1_error) /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":124 * x = x.to(device) * x.requires_grad = True * for m in ops if isinstance(ops, list) else [ops]: # <<<<<<<<<<<<<< * m = m.to(device) if hasattr(m, 'to') else m # device * m = m.half() if hasattr(m, 'half') and isinstance(x, torch.Tensor) and x.dtype is torch.float16 else m */ __pyx_t_2 = PyList_Check(__pyx_v_ops); if ((__pyx_t_2 != 0)) { __Pyx_INCREF(__pyx_v_ops); __pyx_t_1 = __pyx_v_ops; } else { __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_v_ops); __Pyx_GIVEREF(__pyx_v_ops); PyList_SET_ITEM(__pyx_t_4, 0, __pyx_v_ops); __pyx_t_1 = __pyx_t_4; __pyx_t_4 = 0; } if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_4 = __pyx_t_1; __Pyx_INCREF(__pyx_t_4); __pyx_t_10 = 0; __pyx_t_11 = NULL; } else { __pyx_t_10 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_11 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 124, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (likely(!__pyx_t_11)) { if (likely(PyList_CheckExact(__pyx_t_4))) { if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_4)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_10); __Pyx_INCREF(__pyx_t_1); __pyx_t_10++; if (unlikely((0 < 0))) __PYX_ERR(0, 124, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_4)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_10); __Pyx_INCREF(__pyx_t_1); __pyx_t_10++; if (unlikely((0 < 0))) __PYX_ERR(0, 124, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } } else { __pyx_t_1 = __pyx_t_11(__pyx_t_4); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 124, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_1); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_m); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_m, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":125 * x.requires_grad = True * for m in ops if isinstance(ops, list) else [ops]: * m = m.to(device) if hasattr(m, 'to') else m # device # <<<<<<<<<<<<<< * m = m.half() if hasattr(m, 'half') and isinstance(x, torch.Tensor) and x.dtype is torch.float16 else m * tf, tb, t = 0, 0, [0, 0, 0] # dt forward, backward */ __pyx_t_5 = __pyx_cur_scope->__pyx_v_m; __Pyx_INCREF(__pyx_t_5); __pyx_t_2 = __Pyx_HasAttr(__pyx_t_5, __pyx_n_u_to); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 125, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if ((__pyx_t_2 != 0)) { __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_m, __pyx_n_s_to); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_13 = NULL; __pyx_t_6 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_12))) { __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_13)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); __pyx_t_6 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_13, __pyx_v_device}; __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_12, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } __pyx_t_1 = __pyx_t_5; __pyx_t_5 = 0; } else { __Pyx_INCREF(__pyx_cur_scope->__pyx_v_m); __pyx_t_1 = __pyx_cur_scope->__pyx_v_m; } __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_m); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_m, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":126 * for m in ops if isinstance(ops, list) else [ops]: * m = m.to(device) if hasattr(m, 'to') else m # device * m = m.half() if hasattr(m, 'half') and isinstance(x, torch.Tensor) and x.dtype is torch.float16 else m # <<<<<<<<<<<<<< * tf, tb, t = 0, 0, [0, 0, 0] # dt forward, backward * try: */ __pyx_t_5 = __pyx_cur_scope->__pyx_v_m; __Pyx_INCREF(__pyx_t_5); __pyx_t_14 = __Pyx_HasAttr(__pyx_t_5, __pyx_n_u_half); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 126, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_15 = (__pyx_t_14 != 0); if (__pyx_t_15) { } else { __pyx_t_2 = __pyx_t_15; goto __pyx_L9_bool_binop_done; } __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_torch_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_Tensor); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_15 = PyObject_IsInstance(__pyx_v_x, __pyx_t_12); if (unlikely(__pyx_t_15 == ((int)-1))) __PYX_ERR(0, 126, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_14 = (__pyx_t_15 != 0); if (__pyx_t_14) { } else { __pyx_t_2 = __pyx_t_14; goto __pyx_L9_bool_binop_done; } __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_dtype); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_torch_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_float16); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_14 = (__pyx_t_12 == __pyx_t_13); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_15 = (__pyx_t_14 != 0); __pyx_t_2 = __pyx_t_15; __pyx_L9_bool_binop_done:; if (__pyx_t_2) { __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_m, __pyx_n_s_half); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_5 = NULL; __pyx_t_6 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_12))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); __pyx_t_6 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_5, }; __pyx_t_13 = __Pyx_PyObject_FastCall(__pyx_t_12, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } __pyx_t_1 = __pyx_t_13; __pyx_t_13 = 0; } else { __Pyx_INCREF(__pyx_cur_scope->__pyx_v_m); __pyx_t_1 = __pyx_cur_scope->__pyx_v_m; } __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_m); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_m, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":127 * m = m.to(device) if hasattr(m, 'to') else m # device * m = m.half() if hasattr(m, 'half') and isinstance(x, torch.Tensor) and x.dtype is torch.float16 else m * tf, tb, t = 0, 0, [0, 0, 0] # dt forward, backward # <<<<<<<<<<<<<< * try: * flops = thop.profile(m, inputs=(x,), verbose=False)[0] / 1E9 * 2 # GFLOPs */ __pyx_t_1 = __pyx_int_0; __Pyx_INCREF(__pyx_t_1); __pyx_t_13 = __pyx_int_0; __Pyx_INCREF(__pyx_t_13); __pyx_t_12 = PyList_New(3); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyList_SET_ITEM(__pyx_t_12, 0, __pyx_int_0); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyList_SET_ITEM(__pyx_t_12, 1, __pyx_int_0); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyList_SET_ITEM(__pyx_t_12, 2, __pyx_int_0); __Pyx_XDECREF_SET(__pyx_v_tf, __pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF_SET(__pyx_v_tb, __pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF_SET(__pyx_v_t, ((PyObject*)__pyx_t_12)); __pyx_t_12 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":128 * m = m.half() if hasattr(m, 'half') and isinstance(x, torch.Tensor) and x.dtype is torch.float16 else m * tf, tb, t = 0, 0, [0, 0, 0] # dt forward, backward * try: # <<<<<<<<<<<<<< * flops = thop.profile(m, inputs=(x,), verbose=False)[0] / 1E9 * 2 # GFLOPs * except: */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); /*try:*/ { /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":129 * tf, tb, t = 0, 0, [0, 0, 0] # dt forward, backward * try: * flops = thop.profile(m, inputs=(x,), verbose=False)[0] / 1E9 * 2 # GFLOPs # <<<<<<<<<<<<<< * except: * flops = 0 */ __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_thop); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 129, __pyx_L12_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_profile); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 129, __pyx_L12_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyTuple_New(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 129, __pyx_L12_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_INCREF(__pyx_cur_scope->__pyx_v_m); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_m); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_cur_scope->__pyx_v_m); __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 129, __pyx_L12_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 129, __pyx_L12_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_v_x); __Pyx_GIVEREF(__pyx_v_x); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_x); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_inputs, __pyx_t_5) < 0) __PYX_ERR(0, 129, __pyx_L12_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_verbose, Py_False) < 0) __PYX_ERR(0, 129, __pyx_L12_error) __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_12, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 129, __pyx_L12_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_5, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 129, __pyx_L12_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyFloat_TrueDivideObjC(__pyx_t_1, __pyx_float_1E9, 1E9, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 129, __pyx_L12_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_MultiplyObjC(__pyx_t_5, __pyx_int_2, 2, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 129, __pyx_L12_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF_SET(__pyx_v_flops, __pyx_t_1); __pyx_t_1 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":128 * m = m.half() if hasattr(m, 'half') and isinstance(x, torch.Tensor) and x.dtype is torch.float16 else m * tf, tb, t = 0, 0, [0, 0, 0] # dt forward, backward * try: # <<<<<<<<<<<<<< * flops = thop.profile(m, inputs=(x,), verbose=False)[0] / 1E9 * 2 # GFLOPs * except: */ } __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; goto __pyx_L19_try_end; __pyx_L12_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":130 * try: * flops = thop.profile(m, inputs=(x,), verbose=False)[0] / 1E9 * 2 # GFLOPs * except: # <<<<<<<<<<<<<< * flops = 0 * */ /*except:*/ { __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.profile", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_5, &__pyx_t_12) < 0) __PYX_ERR(0, 130, __pyx_L14_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_12); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":131 * flops = thop.profile(m, inputs=(x,), verbose=False)[0] / 1E9 * 2 # GFLOPs * except: * flops = 0 # <<<<<<<<<<<<<< * * try: */ __Pyx_INCREF(__pyx_int_0); __Pyx_XDECREF_SET(__pyx_v_flops, __pyx_int_0); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; goto __pyx_L13_exception_handled; } __pyx_L14_except_error:; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":128 * m = m.half() if hasattr(m, 'half') and isinstance(x, torch.Tensor) and x.dtype is torch.float16 else m * tf, tb, t = 0, 0, [0, 0, 0] # dt forward, backward * try: # <<<<<<<<<<<<<< * flops = thop.profile(m, inputs=(x,), verbose=False)[0] / 1E9 * 2 # GFLOPs * except: */ __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18); goto __pyx_L1_error; __pyx_L13_exception_handled:; __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18); __pyx_L19_try_end:; } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":133 * flops = 0 * * try: # <<<<<<<<<<<<<< * for _ in range(n): * t[0] = time_sync() */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_18, &__pyx_t_17, &__pyx_t_16); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_16); /*try:*/ { /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":134 * * try: * for _ in range(n): # <<<<<<<<<<<<<< * t[0] = time_sync() * y = m(x) */ __pyx_t_12 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_v_n); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 134, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_12); if (likely(PyList_CheckExact(__pyx_t_12)) || PyTuple_CheckExact(__pyx_t_12)) { __pyx_t_5 = __pyx_t_12; __Pyx_INCREF(__pyx_t_5); __pyx_t_19 = 0; __pyx_t_20 = NULL; } else { __pyx_t_19 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 134, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_20 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_5); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 134, __pyx_L22_error) } __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; for (;;) { if (likely(!__pyx_t_20)) { if (likely(PyList_CheckExact(__pyx_t_5))) { if (__pyx_t_19 >= PyList_GET_SIZE(__pyx_t_5)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_12 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_19); __Pyx_INCREF(__pyx_t_12); __pyx_t_19++; if (unlikely((0 < 0))) __PYX_ERR(0, 134, __pyx_L22_error) #else __pyx_t_12 = PySequence_ITEM(__pyx_t_5, __pyx_t_19); __pyx_t_19++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 134, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_12); #endif } else { if (__pyx_t_19 >= PyTuple_GET_SIZE(__pyx_t_5)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_12 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_19); __Pyx_INCREF(__pyx_t_12); __pyx_t_19++; if (unlikely((0 < 0))) __PYX_ERR(0, 134, __pyx_L22_error) #else __pyx_t_12 = PySequence_ITEM(__pyx_t_5, __pyx_t_19); __pyx_t_19++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 134, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_12); #endif } } else { __pyx_t_12 = __pyx_t_20(__pyx_t_5); if (unlikely(!__pyx_t_12)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 134, __pyx_L22_error) } break; } __Pyx_GOTREF(__pyx_t_12); } __Pyx_XDECREF_SET(__pyx_v__, __pyx_t_12); __pyx_t_12 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":135 * try: * for _ in range(n): * t[0] = time_sync() # <<<<<<<<<<<<<< * y = m(x) * t[1] = time_sync() */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_time_sync); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 135, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_13 = NULL; __pyx_t_6 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_13)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_6 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_13, }; __pyx_t_12 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 135, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } if (unlikely((__Pyx_SetItemInt(__pyx_v_t, 0, __pyx_t_12, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0))) __PYX_ERR(0, 135, __pyx_L22_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":136 * for _ in range(n): * t[0] = time_sync() * y = m(x) # <<<<<<<<<<<<<< * t[1] = time_sync() * try: */ __Pyx_INCREF(__pyx_cur_scope->__pyx_v_m); __pyx_t_1 = __pyx_cur_scope->__pyx_v_m; __pyx_t_13 = NULL; __pyx_t_6 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_13)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_6 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_13, __pyx_v_x}; __pyx_t_12 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 136, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_y); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_y, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_12); __pyx_t_12 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":137 * t[0] = time_sync() * y = m(x) * t[1] = time_sync() # <<<<<<<<<<<<<< * try: * _ = (sum(yi.sum() for yi in y) if isinstance(y, list) else y).sum().backward() */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_time_sync); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 137, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_13 = NULL; __pyx_t_6 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_13)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_6 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_13, }; __pyx_t_12 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 137, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } if (unlikely((__Pyx_SetItemInt(__pyx_v_t, 1, __pyx_t_12, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0))) __PYX_ERR(0, 137, __pyx_L22_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":138 * y = m(x) * t[1] = time_sync() * try: # <<<<<<<<<<<<<< * _ = (sum(yi.sum() for yi in y) if isinstance(y, list) else y).sum().backward() * t[2] = time_sync() */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_21, &__pyx_t_22, &__pyx_t_23); __Pyx_XGOTREF(__pyx_t_21); __Pyx_XGOTREF(__pyx_t_22); __Pyx_XGOTREF(__pyx_t_23); /*try:*/ { /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":139 * t[1] = time_sync() * try: * _ = (sum(yi.sum() for yi in y) if isinstance(y, list) else y).sum().backward() # <<<<<<<<<<<<<< * t[2] = time_sync() * except Exception as e: # no backward method */ __pyx_t_24 = __pyx_cur_scope->__pyx_v_y; __Pyx_INCREF(__pyx_t_24); __pyx_t_2 = PyList_Check(__pyx_t_24); __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0; if ((__pyx_t_2 != 0)) { __pyx_t_24 = __pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_7profile_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 139, __pyx_L32_error) __Pyx_GOTREF(__pyx_t_24); __pyx_t_25 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_24); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 139, __pyx_L32_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0; __pyx_t_13 = __pyx_t_25; __pyx_t_25 = 0; } else { __Pyx_INCREF(__pyx_cur_scope->__pyx_v_y); __pyx_t_13 = __pyx_cur_scope->__pyx_v_y; } __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_sum); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 139, __pyx_L32_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = NULL; __pyx_t_6 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_25))) { __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_25); if (likely(__pyx_t_13)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_25); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_25, function); __pyx_t_6 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_13, }; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_25, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 139, __pyx_L32_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; } __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_backward); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 139, __pyx_L32_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; __pyx_t_6 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_25))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_25); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_25); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_25, function); __pyx_t_6 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_1, }; __pyx_t_12 = __Pyx_PyObject_FastCall(__pyx_t_25, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 139, __pyx_L32_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; } __Pyx_DECREF_SET(__pyx_v__, __pyx_t_12); __pyx_t_12 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":140 * try: * _ = (sum(yi.sum() for yi in y) if isinstance(y, list) else y).sum().backward() * t[2] = time_sync() # <<<<<<<<<<<<<< * except Exception as e: # no backward method * # print(e) # for debug */ __Pyx_GetModuleGlobalName(__pyx_t_25, __pyx_n_s_time_sync); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 140, __pyx_L32_error) __Pyx_GOTREF(__pyx_t_25); __pyx_t_1 = NULL; __pyx_t_6 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_25))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_25); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_25); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_25, function); __pyx_t_6 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_1, }; __pyx_t_12 = __Pyx_PyObject_FastCall(__pyx_t_25, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 140, __pyx_L32_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; } if (unlikely((__Pyx_SetItemInt(__pyx_v_t, 2, __pyx_t_12, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0))) __PYX_ERR(0, 140, __pyx_L32_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":138 * y = m(x) * t[1] = time_sync() * try: # <<<<<<<<<<<<<< * _ = (sum(yi.sum() for yi in y) if isinstance(y, list) else y).sum().backward() * t[2] = time_sync() */ } __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0; goto __pyx_L39_try_end; __pyx_L32_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0; __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":141 * _ = (sum(yi.sum() for yi in y) if isinstance(y, list) else y).sum().backward() * t[2] = time_sync() * except Exception as e: # no backward method # <<<<<<<<<<<<<< * # print(e) # for debug * t[2] = float('nan') */ __pyx_t_6 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_6) { __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.profile", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_12, &__pyx_t_25, &__pyx_t_1) < 0) __PYX_ERR(0, 141, __pyx_L34_except_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_GOTREF(__pyx_t_25); __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_25); __pyx_v_e = __pyx_t_25; /*try:*/ { /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":143 * except Exception as e: # no backward method * # print(e) # for debug * t[2] = float('nan') # <<<<<<<<<<<<<< * tf += (t[1] - t[0]) * 1000 / n # ms per op forward * tb += (t[2] - t[1]) * 1000 / n # ms per op backward */ __pyx_t_26 = __Pyx_PyUnicode_AsDouble(__pyx_n_u_nan); if (unlikely(__pyx_t_26 == ((double)((double)-1)) && PyErr_Occurred())) __PYX_ERR(0, 143, __pyx_L45_error) __pyx_t_13 = PyFloat_FromDouble(__pyx_t_26); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 143, __pyx_L45_error) __Pyx_GOTREF(__pyx_t_13); if (unlikely((__Pyx_SetItemInt(__pyx_v_t, 2, __pyx_t_13, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0))) __PYX_ERR(0, 143, __pyx_L45_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":141 * _ = (sum(yi.sum() for yi in y) if isinstance(y, list) else y).sum().backward() * t[2] = time_sync() * except Exception as e: # no backward method # <<<<<<<<<<<<<< * # print(e) # for debug * t[2] = float('nan') */ /*finally:*/ { /*normal exit:*/{ __Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0; goto __pyx_L46; } __pyx_L45_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_29 = 0; __pyx_t_30 = 0; __pyx_t_31 = 0; __pyx_t_32 = 0; __pyx_t_33 = 0; __pyx_t_34 = 0; __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_32, &__pyx_t_33, &__pyx_t_34); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_29, &__pyx_t_30, &__pyx_t_31) < 0)) __Pyx_ErrFetch(&__pyx_t_29, &__pyx_t_30, &__pyx_t_31); __Pyx_XGOTREF(__pyx_t_29); __Pyx_XGOTREF(__pyx_t_30); __Pyx_XGOTREF(__pyx_t_31); __Pyx_XGOTREF(__pyx_t_32); __Pyx_XGOTREF(__pyx_t_33); __Pyx_XGOTREF(__pyx_t_34); __pyx_t_6 = __pyx_lineno; __pyx_t_27 = __pyx_clineno; __pyx_t_28 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_32); __Pyx_XGIVEREF(__pyx_t_33); __Pyx_XGIVEREF(__pyx_t_34); __Pyx_ExceptionReset(__pyx_t_32, __pyx_t_33, __pyx_t_34); } __Pyx_XGIVEREF(__pyx_t_29); __Pyx_XGIVEREF(__pyx_t_30); __Pyx_XGIVEREF(__pyx_t_31); __Pyx_ErrRestore(__pyx_t_29, __pyx_t_30, __pyx_t_31); __pyx_t_29 = 0; __pyx_t_30 = 0; __pyx_t_31 = 0; __pyx_t_32 = 0; __pyx_t_33 = 0; __pyx_t_34 = 0; __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_27; __pyx_filename = __pyx_t_28; goto __pyx_L34_except_error; } __pyx_L46:; } __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L33_exception_handled; } goto __pyx_L34_except_error; __pyx_L34_except_error:; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":138 * y = m(x) * t[1] = time_sync() * try: # <<<<<<<<<<<<<< * _ = (sum(yi.sum() for yi in y) if isinstance(y, list) else y).sum().backward() * t[2] = time_sync() */ __Pyx_XGIVEREF(__pyx_t_21); __Pyx_XGIVEREF(__pyx_t_22); __Pyx_XGIVEREF(__pyx_t_23); __Pyx_ExceptionReset(__pyx_t_21, __pyx_t_22, __pyx_t_23); goto __pyx_L22_error; __pyx_L33_exception_handled:; __Pyx_XGIVEREF(__pyx_t_21); __Pyx_XGIVEREF(__pyx_t_22); __Pyx_XGIVEREF(__pyx_t_23); __Pyx_ExceptionReset(__pyx_t_21, __pyx_t_22, __pyx_t_23); __pyx_L39_try_end:; } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":144 * # print(e) # for debug * t[2] = float('nan') * tf += (t[1] - t[0]) * 1000 / n # ms per op forward # <<<<<<<<<<<<<< * tb += (t[2] - t[1]) * 1000 / n # ms per op backward * mem = torch.cuda.memory_reserved() / 1E9 if torch.cuda.is_available() else 0 # (GB) */ __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_t, 1, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 144, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_25 = __Pyx_GetItemInt_List(__pyx_v_t, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 144, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_25); __pyx_t_12 = PyNumber_Subtract(__pyx_t_1, __pyx_t_25); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 144, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __pyx_t_25 = __Pyx_PyInt_MultiplyObjC(__pyx_t_12, __pyx_int_1000, 0x3E8, 0, 0); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 144, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_PyNumber_Divide(__pyx_t_25, __pyx_v_n); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 144, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __pyx_t_25 = PyNumber_InPlaceAdd(__pyx_v_tf, __pyx_t_12); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 144, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF_SET(__pyx_v_tf, __pyx_t_25); __pyx_t_25 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":145 * t[2] = float('nan') * tf += (t[1] - t[0]) * 1000 / n # ms per op forward * tb += (t[2] - t[1]) * 1000 / n # ms per op backward # <<<<<<<<<<<<<< * mem = torch.cuda.memory_reserved() / 1E9 if torch.cuda.is_available() else 0 # (GB) * s_in = tuple(x.shape) if isinstance(x, torch.Tensor) else 'list' */ __pyx_t_25 = __Pyx_GetItemInt_List(__pyx_v_t, 2, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 145, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_25); __pyx_t_12 = __Pyx_GetItemInt_List(__pyx_v_t, 1, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 145, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_1 = PyNumber_Subtract(__pyx_t_25, __pyx_t_12); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 145, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_PyInt_MultiplyObjC(__pyx_t_1, __pyx_int_1000, 0x3E8, 0, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 145, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_t_12, __pyx_v_n); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 145, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyNumber_InPlaceAdd(__pyx_v_tb, __pyx_t_1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 145, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF_SET(__pyx_v_tb, __pyx_t_12); __pyx_t_12 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":134 * * try: * for _ in range(n): # <<<<<<<<<<<<<< * t[0] = time_sync() * y = m(x) */ } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":146 * tf += (t[1] - t[0]) * 1000 / n # ms per op forward * tb += (t[2] - t[1]) * 1000 / n # ms per op backward * mem = torch.cuda.memory_reserved() / 1E9 if torch.cuda.is_available() else 0 # (GB) # <<<<<<<<<<<<<< * s_in = tuple(x.shape) if isinstance(x, torch.Tensor) else 'list' * s_out = tuple(y.shape) if isinstance(y, torch.Tensor) else 'list' */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_torch_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 146, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_cuda_2); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 146, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_25, __pyx_n_s_is_available); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 146, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __pyx_t_25 = NULL; __pyx_t_27 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_25 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_25)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_25); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_27 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_25, }; __pyx_t_12 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_27, 0+__pyx_t_27); __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 146, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 146, __pyx_L22_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (__pyx_t_2) { __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_torch_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 146, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_cuda_2); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 146, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_25, __pyx_n_s_memory_reserved); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 146, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __pyx_t_25 = NULL; __pyx_t_27 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_25 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_25)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_25); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_27 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_25, }; __pyx_t_12 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_27, 0+__pyx_t_27); __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 146, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __pyx_t_1 = __Pyx_PyFloat_TrueDivideObjC(__pyx_t_12, __pyx_float_1E9, 1E9, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 146, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_5 = __pyx_t_1; __pyx_t_1 = 0; } else { __Pyx_INCREF(__pyx_int_0); __pyx_t_5 = __pyx_int_0; } __Pyx_XDECREF_SET(__pyx_v_mem, __pyx_t_5); __pyx_t_5 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":147 * tb += (t[2] - t[1]) * 1000 / n # ms per op backward * mem = torch.cuda.memory_reserved() / 1E9 if torch.cuda.is_available() else 0 # (GB) * s_in = tuple(x.shape) if isinstance(x, torch.Tensor) else 'list' # <<<<<<<<<<<<<< * s_out = tuple(y.shape) if isinstance(y, torch.Tensor) else 'list' * p = sum(list(x.numel() for x in m.parameters())) if isinstance(m, nn.Module) else 0 # parameters */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_torch_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 147, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_Tensor); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 147, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_2 = PyObject_IsInstance(__pyx_v_x, __pyx_t_12); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 147, __pyx_L22_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if ((__pyx_t_2 != 0)) { __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_shape); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 147, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_1 = __Pyx_PySequence_Tuple(__pyx_t_12); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 147, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_5 = __pyx_t_1; __pyx_t_1 = 0; } else { __Pyx_INCREF(__pyx_n_u_list); __pyx_t_5 = __pyx_n_u_list; } __Pyx_XDECREF_SET(__pyx_v_s_in, __pyx_t_5); __pyx_t_5 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":148 * mem = torch.cuda.memory_reserved() / 1E9 if torch.cuda.is_available() else 0 # (GB) * s_in = tuple(x.shape) if isinstance(x, torch.Tensor) else 'list' * s_out = tuple(y.shape) if isinstance(y, torch.Tensor) else 'list' # <<<<<<<<<<<<<< * p = sum(list(x.numel() for x in m.parameters())) if isinstance(m, nn.Module) else 0 # parameters * print(f'{p:12}{flops:12.4g}{mem:>14.3f}{tf:14.4g}{tb:14.4g}{str(s_in):>24s}{str(s_out):>24s}') */ if (unlikely(!__pyx_cur_scope->__pyx_v_y)) { __Pyx_RaiseUnboundLocalError("y"); __PYX_ERR(0, 148, __pyx_L22_error) } __pyx_t_1 = __pyx_cur_scope->__pyx_v_y; __Pyx_INCREF(__pyx_t_1); __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_torch_2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 148, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_Tensor); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 148, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_2 = PyObject_IsInstance(__pyx_t_1, __pyx_t_25); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 148, __pyx_L22_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; if ((__pyx_t_2 != 0)) { if (unlikely(!__pyx_cur_scope->__pyx_v_y)) { __Pyx_RaiseUnboundLocalError("y"); __PYX_ERR(0, 148, __pyx_L22_error) } __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_y, __pyx_n_s_shape); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 148, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_25); __pyx_t_1 = __Pyx_PySequence_Tuple(__pyx_t_25); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 148, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __pyx_t_5 = __pyx_t_1; __pyx_t_1 = 0; } else { __Pyx_INCREF(__pyx_n_u_list); __pyx_t_5 = __pyx_n_u_list; } __Pyx_XDECREF_SET(__pyx_v_s_out, __pyx_t_5); __pyx_t_5 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":149 * s_in = tuple(x.shape) if isinstance(x, torch.Tensor) else 'list' * s_out = tuple(y.shape) if isinstance(y, torch.Tensor) else 'list' * p = sum(list(x.numel() for x in m.parameters())) if isinstance(m, nn.Module) else 0 # parameters # <<<<<<<<<<<<<< * print(f'{p:12}{flops:12.4g}{mem:>14.3f}{tf:14.4g}{tb:14.4g}{str(s_in):>24s}{str(s_out):>24s}') * results.append([p, flops, mem, tf, tb, s_in, s_out]) */ __pyx_t_1 = __pyx_cur_scope->__pyx_v_m; __Pyx_INCREF(__pyx_t_1); __Pyx_GetModuleGlobalName(__pyx_t_25, __pyx_n_s_nn); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 149, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_25); __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_25, __pyx_n_s_Module); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 149, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __pyx_t_2 = PyObject_IsInstance(__pyx_t_1, __pyx_t_12); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 149, __pyx_L22_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if ((__pyx_t_2 != 0)) { __pyx_t_12 = __pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_7profile_3genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 149, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_1 = __Pyx_Generator_Next(__pyx_t_12); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 149, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 149, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_5 = __pyx_t_12; __pyx_t_12 = 0; } else { __Pyx_INCREF(__pyx_int_0); __pyx_t_5 = __pyx_int_0; } __Pyx_XDECREF_SET(__pyx_v_p, __pyx_t_5); __pyx_t_5 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":150 * s_out = tuple(y.shape) if isinstance(y, torch.Tensor) else 'list' * p = sum(list(x.numel() for x in m.parameters())) if isinstance(m, nn.Module) else 0 # parameters * print(f'{p:12}{flops:12.4g}{mem:>14.3f}{tf:14.4g}{tb:14.4g}{str(s_in):>24s}{str(s_out):>24s}') # <<<<<<<<<<<<<< * results.append([p, flops, mem, tf, tb, s_in, s_out]) * except Exception as e: */ __pyx_t_5 = PyTuple_New(7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 150, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_19 = 0; __pyx_t_8 = 127; __pyx_t_12 = __Pyx_PyObject_Format(__pyx_v_p, __pyx_kp_u_12); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 150, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_8 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_12) > __pyx_t_8) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_12) : __pyx_t_8; __pyx_t_19 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_12); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_PyObject_Format(__pyx_v_flops, __pyx_kp_u_12_4g); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 150, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_8 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_12) > __pyx_t_8) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_12) : __pyx_t_8; __pyx_t_19 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_12); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_PyObject_Format(__pyx_v_mem, __pyx_kp_u_14_3f); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 150, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_8 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_12) > __pyx_t_8) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_12) : __pyx_t_8; __pyx_t_19 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_12); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_PyObject_Format(__pyx_v_tf, __pyx_kp_u_14_4g); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 150, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_8 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_12) > __pyx_t_8) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_12) : __pyx_t_8; __pyx_t_19 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_12); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_PyObject_Format(__pyx_v_tb, __pyx_kp_u_14_4g); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 150, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_8 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_12) > __pyx_t_8) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_12) : __pyx_t_8; __pyx_t_19 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_12); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_5, 4, __pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_PyObject_Str(__pyx_v_s_in); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 150, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_1 = __Pyx_PyObject_Format(__pyx_t_12, __pyx_kp_u_24s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 150, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_8 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) > __pyx_t_8) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) : __pyx_t_8; __pyx_t_19 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 5, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_Str(__pyx_v_s_out); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 150, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_12 = __Pyx_PyObject_Format(__pyx_t_1, __pyx_kp_u_24s); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 150, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_8 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_12) > __pyx_t_8) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_12) : __pyx_t_8; __pyx_t_19 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_12); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_5, 6, __pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_PyUnicode_Join(__pyx_t_5, 7, __pyx_t_19, __pyx_t_8); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 150, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_print, __pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 150, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":151 * p = sum(list(x.numel() for x in m.parameters())) if isinstance(m, nn.Module) else 0 # parameters * print(f'{p:12}{flops:12.4g}{mem:>14.3f}{tf:14.4g}{tb:14.4g}{str(s_in):>24s}{str(s_out):>24s}') * results.append([p, flops, mem, tf, tb, s_in, s_out]) # <<<<<<<<<<<<<< * except Exception as e: * print(e) */ __pyx_t_5 = PyList_New(7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 151, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_v_p); __Pyx_GIVEREF(__pyx_v_p); PyList_SET_ITEM(__pyx_t_5, 0, __pyx_v_p); __Pyx_INCREF(__pyx_v_flops); __Pyx_GIVEREF(__pyx_v_flops); PyList_SET_ITEM(__pyx_t_5, 1, __pyx_v_flops); __Pyx_INCREF(__pyx_v_mem); __Pyx_GIVEREF(__pyx_v_mem); PyList_SET_ITEM(__pyx_t_5, 2, __pyx_v_mem); __Pyx_INCREF(__pyx_v_tf); __Pyx_GIVEREF(__pyx_v_tf); PyList_SET_ITEM(__pyx_t_5, 3, __pyx_v_tf); __Pyx_INCREF(__pyx_v_tb); __Pyx_GIVEREF(__pyx_v_tb); PyList_SET_ITEM(__pyx_t_5, 4, __pyx_v_tb); __Pyx_INCREF(__pyx_v_s_in); __Pyx_GIVEREF(__pyx_v_s_in); PyList_SET_ITEM(__pyx_t_5, 5, __pyx_v_s_in); __Pyx_INCREF(__pyx_v_s_out); __Pyx_GIVEREF(__pyx_v_s_out); PyList_SET_ITEM(__pyx_t_5, 6, __pyx_v_s_out); __pyx_t_35 = __Pyx_PyList_Append(__pyx_v_results, __pyx_t_5); if (unlikely(__pyx_t_35 == ((int)-1))) __PYX_ERR(0, 151, __pyx_L22_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":133 * flops = 0 * * try: # <<<<<<<<<<<<<< * for _ in range(n): * t[0] = time_sync() */ } __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; goto __pyx_L29_try_end; __pyx_L22_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0; __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":152 * print(f'{p:12}{flops:12.4g}{mem:>14.3f}{tf:14.4g}{tb:14.4g}{str(s_in):>24s}{str(s_out):>24s}') * results.append([p, flops, mem, tf, tb, s_in, s_out]) * except Exception as e: # <<<<<<<<<<<<<< * print(e) * results.append(None) */ __pyx_t_27 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_27) { __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.profile", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_12, &__pyx_t_1) < 0) __PYX_ERR(0, 152, __pyx_L24_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_12); __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_12); __Pyx_XDECREF_SET(__pyx_v_e, __pyx_t_12); /*try:*/ { /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":153 * results.append([p, flops, mem, tf, tb, s_in, s_out]) * except Exception as e: * print(e) # <<<<<<<<<<<<<< * results.append(None) * torch.cuda.empty_cache() */ __pyx_t_25 = __Pyx_PyObject_CallOneArg(__pyx_builtin_print, __pyx_v_e); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 153, __pyx_L56_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":154 * except Exception as e: * print(e) * results.append(None) # <<<<<<<<<<<<<< * torch.cuda.empty_cache() * return results */ __pyx_t_35 = __Pyx_PyList_Append(__pyx_v_results, Py_None); if (unlikely(__pyx_t_35 == ((int)-1))) __PYX_ERR(0, 154, __pyx_L56_error) } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":152 * print(f'{p:12}{flops:12.4g}{mem:>14.3f}{tf:14.4g}{tb:14.4g}{str(s_in):>24s}{str(s_out):>24s}') * results.append([p, flops, mem, tf, tb, s_in, s_out]) * except Exception as e: # <<<<<<<<<<<<<< * print(e) * results.append(None) */ /*finally:*/ { /*normal exit:*/{ __Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0; goto __pyx_L57; } __pyx_L56_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_23 = 0; __pyx_t_22 = 0; __pyx_t_21 = 0; __pyx_t_34 = 0; __pyx_t_33 = 0; __pyx_t_32 = 0; __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0; __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_34, &__pyx_t_33, &__pyx_t_32); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_23, &__pyx_t_22, &__pyx_t_21) < 0)) __Pyx_ErrFetch(&__pyx_t_23, &__pyx_t_22, &__pyx_t_21); __Pyx_XGOTREF(__pyx_t_23); __Pyx_XGOTREF(__pyx_t_22); __Pyx_XGOTREF(__pyx_t_21); __Pyx_XGOTREF(__pyx_t_34); __Pyx_XGOTREF(__pyx_t_33); __Pyx_XGOTREF(__pyx_t_32); __pyx_t_27 = __pyx_lineno; __pyx_t_6 = __pyx_clineno; __pyx_t_36 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0; } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_34); __Pyx_XGIVEREF(__pyx_t_33); __Pyx_XGIVEREF(__pyx_t_32); __Pyx_ExceptionReset(__pyx_t_34, __pyx_t_33, __pyx_t_32); } __Pyx_XGIVEREF(__pyx_t_23); __Pyx_XGIVEREF(__pyx_t_22); __Pyx_XGIVEREF(__pyx_t_21); __Pyx_ErrRestore(__pyx_t_23, __pyx_t_22, __pyx_t_21); __pyx_t_23 = 0; __pyx_t_22 = 0; __pyx_t_21 = 0; __pyx_t_34 = 0; __pyx_t_33 = 0; __pyx_t_32 = 0; __pyx_lineno = __pyx_t_27; __pyx_clineno = __pyx_t_6; __pyx_filename = __pyx_t_36; goto __pyx_L24_except_error; } __pyx_L57:; } __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L23_exception_handled; } goto __pyx_L24_except_error; __pyx_L24_except_error:; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":133 * flops = 0 * * try: # <<<<<<<<<<<<<< * for _ in range(n): * t[0] = time_sync() */ __Pyx_XGIVEREF(__pyx_t_18); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_ExceptionReset(__pyx_t_18, __pyx_t_17, __pyx_t_16); goto __pyx_L1_error; __pyx_L23_exception_handled:; __Pyx_XGIVEREF(__pyx_t_18); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_ExceptionReset(__pyx_t_18, __pyx_t_17, __pyx_t_16); __pyx_L29_try_end:; } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":155 * print(e) * results.append(None) * torch.cuda.empty_cache() # <<<<<<<<<<<<<< * return results * */ __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_torch_2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 155, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_cuda_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 155, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty_cache); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 155, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; __pyx_t_6 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_12))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); __pyx_t_6 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_5, }; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_12, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 155, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":124 * x = x.to(device) * x.requires_grad = True * for m in ops if isinstance(ops, list) else [ops]: # <<<<<<<<<<<<<< * m = m.to(device) if hasattr(m, 'to') else m # device * m = m.half() if hasattr(m, 'half') and isinstance(x, torch.Tensor) and x.dtype is torch.float16 else m */ } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":121 * f"{'input':>24s}{'output':>24s}") * * for x in input if isinstance(input, list) else [input]: # <<<<<<<<<<<<<< * x = x.to(device) * x.requires_grad = True */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":156 * results.append(None) * torch.cuda.empty_cache() * return results # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_results); __pyx_r = __pyx_v_results; goto __pyx_L0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":107 * * * def profile(input, ops, n=10, device=None): # <<<<<<<<<<<<<< * # YOLOv5 speed/memory/FLOPs profiler * # */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_12); __Pyx_XDECREF(__pyx_t_13); __Pyx_XDECREF(__pyx_t_24); __Pyx_XDECREF(__pyx_t_25); __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.profile", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_results); __Pyx_XDECREF(__pyx_v_x); __Pyx_XDECREF(__pyx_v_tf); __Pyx_XDECREF(__pyx_v_tb); __Pyx_XDECREF(__pyx_v_t); __Pyx_XDECREF(__pyx_v_flops); __Pyx_XDECREF(__pyx_v__); __Pyx_XDECREF(__pyx_v_e); __Pyx_XDECREF(__pyx_v_mem); __Pyx_XDECREF(__pyx_v_s_in); __Pyx_XDECREF(__pyx_v_s_out); __Pyx_XDECREF(__pyx_v_p); __Pyx_XDECREF(__pyx_gb_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_7profile_2generator1); __Pyx_XDECREF(__pyx_gb_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_7profile_5generator2); __Pyx_XDECREF(__pyx_v_device); __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":159 * * * def is_parallel(model): # <<<<<<<<<<<<<< * # Returns True if model is of type DP or DDP * return type(model) in (nn.parallel.DataParallel, nn.parallel.DistributedDataParallel) */ /* Python wrapper */ static PyObject *__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_16is_parallel(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_16is_parallel = {"is_parallel", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_16is_parallel, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_16is_parallel(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_model = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("is_parallel (wrapper)", 0); { #if CYTHON_USE_MODULE_STATE PyObject **__pyx_pyargnames[] = {&__pyx_n_s_model,0}; #else static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_model,0}; #endif PyObject* values[1] = {0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_model)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 159, __pyx_L3_error) else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_parallel") < 0)) __PYX_ERR(0, 159, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); } __pyx_v_model = values[0]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("is_parallel", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 159, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.is_parallel", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_15is_parallel(__pyx_self, __pyx_v_model); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_15is_parallel(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_model) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("is_parallel", 0); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":161 * def is_parallel(model): * # Returns True if model is of type DP or DDP * return type(model) in (nn.parallel.DataParallel, nn.parallel.DistributedDataParallel) # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_v_model))); __pyx_t_1 = ((PyObject *)Py_TYPE(__pyx_v_model)); __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_nn); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_parallel); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_DataParallel); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyObject_RichCompare(((PyObject *)__pyx_t_1), __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 161, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 161, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!__pyx_t_5) { } else { __pyx_t_2 = __pyx_t_5; goto __pyx_L3_bool_binop_done; } __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_nn); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_parallel); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_DistributedDataParallel); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_t_1), __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 161, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 161, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_2 = __pyx_t_5; __pyx_L3_bool_binop_done:; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":159 * * * def is_parallel(model): # <<<<<<<<<<<<<< * # Returns True if model is of type DP or DDP * return type(model) in (nn.parallel.DataParallel, nn.parallel.DistributedDataParallel) */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.is_parallel", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":164 * * * def de_parallel(model): # <<<<<<<<<<<<<< * # De-parallelize a model: returns single-GPU model if model is of type DP or DDP * return model.module if is_parallel(model) else model */ /* Python wrapper */ static PyObject *__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_18de_parallel(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_18de_parallel = {"de_parallel", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_18de_parallel, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_18de_parallel(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_model = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("de_parallel (wrapper)", 0); { #if CYTHON_USE_MODULE_STATE PyObject **__pyx_pyargnames[] = {&__pyx_n_s_model,0}; #else static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_model,0}; #endif PyObject* values[1] = {0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_model)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 164, __pyx_L3_error) else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "de_parallel") < 0)) __PYX_ERR(0, 164, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); } __pyx_v_model = values[0]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("de_parallel", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 164, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.de_parallel", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_17de_parallel(__pyx_self, __pyx_v_model); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_17de_parallel(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_model) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_t_6; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("de_parallel", 0); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":166 * def de_parallel(model): * # De-parallelize a model: returns single-GPU model if model is of type DP or DDP * return model.module if is_parallel(model) else model # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_is_parallel); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 166, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_5 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_model}; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 166, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 166, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_6) { __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_model, __pyx_n_s_module); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 166, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __pyx_t_2; __pyx_t_2 = 0; } else { __Pyx_INCREF(__pyx_v_model); __pyx_t_1 = __pyx_v_model; } __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":164 * * * def de_parallel(model): # <<<<<<<<<<<<<< * # De-parallelize a model: returns single-GPU model if model is of type DP or DDP * return model.module if is_parallel(model) else model */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.de_parallel", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":169 * * * def initialize_weights(model): # <<<<<<<<<<<<<< * for m in model.modules(): * t = type(m) */ /* Python wrapper */ static PyObject *__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_20initialize_weights(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_20initialize_weights = {"initialize_weights", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_20initialize_weights, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_20initialize_weights(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_model = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("initialize_weights (wrapper)", 0); { #if CYTHON_USE_MODULE_STATE PyObject **__pyx_pyargnames[] = {&__pyx_n_s_model,0}; #else static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_model,0}; #endif PyObject* values[1] = {0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_model)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 169, __pyx_L3_error) else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "initialize_weights") < 0)) __PYX_ERR(0, 169, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); } __pyx_v_model = values[0]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("initialize_weights", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 169, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.initialize_weights", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_19initialize_weights(__pyx_self, __pyx_v_model); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_19initialize_weights(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_model) { PyObject *__pyx_v_m = NULL; PyTypeObject *__pyx_v_t = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; Py_ssize_t __pyx_t_5; PyObject *(*__pyx_t_6)(PyObject *); int __pyx_t_7; int __pyx_t_8; PyTypeObject *__pyx_t_9 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("initialize_weights", 0); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":170 * * def initialize_weights(model): * for m in model.modules(): # <<<<<<<<<<<<<< * t = type(m) * if t is nn.Conv2d: */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_model, __pyx_n_s_modules); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_3, }; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { __pyx_t_5 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 170, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (likely(!__pyx_t_6)) { if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely((0 < 0))) __PYX_ERR(0, 170, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely((0 < 0))) __PYX_ERR(0, 170, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } } else { __pyx_t_1 = __pyx_t_6(__pyx_t_2); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 170, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_1); } __Pyx_XDECREF_SET(__pyx_v_m, __pyx_t_1); __pyx_t_1 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":171 * def initialize_weights(model): * for m in model.modules(): * t = type(m) # <<<<<<<<<<<<<< * if t is nn.Conv2d: * pass # nn.init.kaiming_normal_(m.weight, mode='fan_out', nonlinearity='relu') */ __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_v_m))); __Pyx_XDECREF_SET(__pyx_v_t, ((PyTypeObject*)((PyObject *)Py_TYPE(__pyx_v_m)))); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":172 * for m in model.modules(): * t = type(m) * if t is nn.Conv2d: # <<<<<<<<<<<<<< * pass # nn.init.kaiming_normal_(m.weight, mode='fan_out', nonlinearity='relu') * elif t is nn.BatchNorm2d: */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_nn); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_Conv2d); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_7 = (__pyx_v_t == ((PyTypeObject*)__pyx_t_3)); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_8 = (__pyx_t_7 != 0); if (__pyx_t_8) { goto __pyx_L5; } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":174 * if t is nn.Conv2d: * pass # nn.init.kaiming_normal_(m.weight, mode='fan_out', nonlinearity='relu') * elif t is nn.BatchNorm2d: # <<<<<<<<<<<<<< * m.eps = 1e-3 * m.momentum = 0.03 */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_nn); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_BatchNorm2d); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_8 = (__pyx_v_t == ((PyTypeObject*)__pyx_t_1)); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_7 = (__pyx_t_8 != 0); if (__pyx_t_7) { /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":175 * pass # nn.init.kaiming_normal_(m.weight, mode='fan_out', nonlinearity='relu') * elif t is nn.BatchNorm2d: * m.eps = 1e-3 # <<<<<<<<<<<<<< * m.momentum = 0.03 * elif t in [nn.Hardswish, nn.LeakyReLU, nn.ReLU, nn.ReLU6, nn.SiLU]: */ if (__Pyx_PyObject_SetAttrStr(__pyx_v_m, __pyx_n_s_eps, __pyx_float_1eneg_3) < 0) __PYX_ERR(0, 175, __pyx_L1_error) /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":176 * elif t is nn.BatchNorm2d: * m.eps = 1e-3 * m.momentum = 0.03 # <<<<<<<<<<<<<< * elif t in [nn.Hardswish, nn.LeakyReLU, nn.ReLU, nn.ReLU6, nn.SiLU]: * m.inplace = True */ if (__Pyx_PyObject_SetAttrStr(__pyx_v_m, __pyx_n_s_momentum, __pyx_float_0_03) < 0) __PYX_ERR(0, 176, __pyx_L1_error) /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":174 * if t is nn.Conv2d: * pass # nn.init.kaiming_normal_(m.weight, mode='fan_out', nonlinearity='relu') * elif t is nn.BatchNorm2d: # <<<<<<<<<<<<<< * m.eps = 1e-3 * m.momentum = 0.03 */ goto __pyx_L5; } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":177 * m.eps = 1e-3 * m.momentum = 0.03 * elif t in [nn.Hardswish, nn.LeakyReLU, nn.ReLU, nn.ReLU6, nn.SiLU]: # <<<<<<<<<<<<<< * m.inplace = True * */ __Pyx_INCREF((PyObject *)__pyx_v_t); __pyx_t_9 = __pyx_v_t; __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_nn); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_Hardswish); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_t_9), __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 177, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 177, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!__pyx_t_8) { } else { __pyx_t_7 = __pyx_t_8; goto __pyx_L6_bool_binop_done; } __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_nn); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_LeakyReLU); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_t_9), __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 177, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 177, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!__pyx_t_8) { } else { __pyx_t_7 = __pyx_t_8; goto __pyx_L6_bool_binop_done; } __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_nn); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ReLU); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_t_9), __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 177, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 177, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!__pyx_t_8) { } else { __pyx_t_7 = __pyx_t_8; goto __pyx_L6_bool_binop_done; } __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_nn); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ReLU6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_t_9), __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 177, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 177, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!__pyx_t_8) { } else { __pyx_t_7 = __pyx_t_8; goto __pyx_L6_bool_binop_done; } __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_nn); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_SiLU); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_t_9), __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 177, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 177, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_7 = __pyx_t_8; __pyx_L6_bool_binop_done:; __Pyx_DECREF((PyObject *)__pyx_t_9); __pyx_t_9 = 0; __pyx_t_8 = (__pyx_t_7 != 0); if (__pyx_t_8) { /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":178 * m.momentum = 0.03 * elif t in [nn.Hardswish, nn.LeakyReLU, nn.ReLU, nn.ReLU6, nn.SiLU]: * m.inplace = True # <<<<<<<<<<<<<< * * */ if (__Pyx_PyObject_SetAttrStr(__pyx_v_m, __pyx_n_s_inplace, Py_True) < 0) __PYX_ERR(0, 178, __pyx_L1_error) /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":177 * m.eps = 1e-3 * m.momentum = 0.03 * elif t in [nn.Hardswish, nn.LeakyReLU, nn.ReLU, nn.ReLU6, nn.SiLU]: # <<<<<<<<<<<<<< * m.inplace = True * */ } __pyx_L5:; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":170 * * def initialize_weights(model): * for m in model.modules(): # <<<<<<<<<<<<<< * t = type(m) * if t is nn.Conv2d: */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":169 * * * def initialize_weights(model): # <<<<<<<<<<<<<< * for m in model.modules(): * t = type(m) */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF((PyObject *)__pyx_t_9); __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.initialize_weights", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_m); __Pyx_XDECREF((PyObject *)__pyx_v_t); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":181 * * * def find_modules(model, mclass=nn.Conv2d): # <<<<<<<<<<<<<< * # Finds layer indices matching module class 'mclass' * return [i for i, m in enumerate(model.module_list) if isinstance(m, mclass)] */ static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_39__defaults__(CYTHON_UNUSED PyObject *__pyx_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__defaults__", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults2, __pyx_self)->__pyx_arg_mclass); __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults2, __pyx_self)->__pyx_arg_mclass); PyTuple_SET_ITEM(__pyx_t_1, 0, __Pyx_CyFunction_Defaults(__pyx_defaults2, __pyx_self)->__pyx_arg_mclass); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyTuple_SET_ITEM(__pyx_t_2, 1, Py_None); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_22find_modules(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_22find_modules = {"find_modules", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_22find_modules, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_22find_modules(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_model = 0; PyObject *__pyx_v_mclass = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("find_modules (wrapper)", 0); { #if CYTHON_USE_MODULE_STATE PyObject **__pyx_pyargnames[] = {&__pyx_n_s_model,&__pyx_n_s_mclass,0}; #else static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_model,&__pyx_n_s_mclass,0}; #endif PyObject* values[2] = {0,0}; __pyx_defaults2 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults2, __pyx_self); values[1] = __pyx_dynamic_args->__pyx_arg_mclass; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_model)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 181, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_mclass); if (value) { values[1] = value; kw_args--; } else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 181, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "find_modules") < 0)) __PYX_ERR(0, 181, __pyx_L3_error) } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_model = values[0]; __pyx_v_mclass = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("find_modules", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 181, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.find_modules", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_21find_modules(__pyx_self, __pyx_v_model, __pyx_v_mclass); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_21find_modules(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_model, PyObject *__pyx_v_mclass) { PyObject *__pyx_8genexpr2__pyx_v_i = NULL; PyObject *__pyx_8genexpr2__pyx_v_m = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; Py_ssize_t __pyx_t_5; PyObject *(*__pyx_t_6)(PyObject *); int __pyx_t_7; int __pyx_t_8; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("find_modules", 0); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":183 * def find_modules(model, mclass=nn.Conv2d): * # Finds layer indices matching module class 'mclass' * return [i for i, m in enumerate(model.module_list) if isinstance(m, mclass)] # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); { /* enter inner scope */ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 183, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_int_0); __pyx_t_2 = __pyx_int_0; __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_model, __pyx_n_s_module_list); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 183, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_3); if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) { __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { __pyx_t_5 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 183, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 183, __pyx_L5_error) } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; for (;;) { if (likely(!__pyx_t_6)) { if (likely(PyList_CheckExact(__pyx_t_4))) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely((0 < 0))) __PYX_ERR(0, 183, __pyx_L5_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 183, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_3); #endif } else { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_4)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely((0 < 0))) __PYX_ERR(0, 183, __pyx_L5_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 183, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_3); #endif } } else { __pyx_t_3 = __pyx_t_6(__pyx_t_4); if (unlikely(!__pyx_t_3)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 183, __pyx_L5_error) } break; } __Pyx_GOTREF(__pyx_t_3); } __Pyx_XDECREF_SET(__pyx_8genexpr2__pyx_v_m, __pyx_t_3); __pyx_t_3 = 0; __Pyx_INCREF(__pyx_t_2); __Pyx_XDECREF_SET(__pyx_8genexpr2__pyx_v_i, __pyx_t_2); __pyx_t_3 = __Pyx_PyInt_AddObjC(__pyx_t_2, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 183, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = __pyx_t_3; __pyx_t_3 = 0; __pyx_t_7 = PyObject_IsInstance(__pyx_8genexpr2__pyx_v_m, __pyx_v_mclass); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 183, __pyx_L5_error) __pyx_t_8 = (__pyx_t_7 != 0); if (__pyx_t_8) { if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_8genexpr2__pyx_v_i))) __PYX_ERR(0, 183, __pyx_L5_error) } } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_8genexpr2__pyx_v_i); __pyx_8genexpr2__pyx_v_i = 0; __Pyx_XDECREF(__pyx_8genexpr2__pyx_v_m); __pyx_8genexpr2__pyx_v_m = 0; goto __pyx_L9_exit_scope; __pyx_L5_error:; __Pyx_XDECREF(__pyx_8genexpr2__pyx_v_i); __pyx_8genexpr2__pyx_v_i = 0; __Pyx_XDECREF(__pyx_8genexpr2__pyx_v_m); __pyx_8genexpr2__pyx_v_m = 0; goto __pyx_L1_error; __pyx_L9_exit_scope:; } /* exit inner scope */ __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":181 * * * def find_modules(model, mclass=nn.Conv2d): # <<<<<<<<<<<<<< * # Finds layer indices matching module class 'mclass' * return [i for i, m in enumerate(model.module_list) if isinstance(m, mclass)] */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.find_modules", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_8genexpr2__pyx_v_i); __Pyx_XDECREF(__pyx_8genexpr2__pyx_v_m); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":186 * * * def sparsity(model): # <<<<<<<<<<<<<< * # Return global model sparsity * a, b = 0, 0 */ /* Python wrapper */ static PyObject *__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_24sparsity(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_24sparsity = {"sparsity", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_24sparsity, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_24sparsity(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_model = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("sparsity (wrapper)", 0); { #if CYTHON_USE_MODULE_STATE PyObject **__pyx_pyargnames[] = {&__pyx_n_s_model,0}; #else static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_model,0}; #endif PyObject* values[1] = {0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_model)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 186, __pyx_L3_error) else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "sparsity") < 0)) __PYX_ERR(0, 186, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); } __pyx_v_model = values[0]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("sparsity", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 186, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.sparsity", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_23sparsity(__pyx_self, __pyx_v_model); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_23sparsity(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_model) { PyObject *__pyx_v_a = NULL; PyObject *__pyx_v_b = NULL; PyObject *__pyx_v_p = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; Py_ssize_t __pyx_t_5; PyObject *(*__pyx_t_6)(PyObject *); PyObject *__pyx_t_7 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("sparsity", 0); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":188 * def sparsity(model): * # Return global model sparsity * a, b = 0, 0 # <<<<<<<<<<<<<< * for p in model.parameters(): * a += p.numel() */ __pyx_t_1 = __pyx_int_0; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = __pyx_int_0; __Pyx_INCREF(__pyx_t_2); __pyx_v_a = __pyx_t_1; __pyx_t_1 = 0; __pyx_v_b = __pyx_t_2; __pyx_t_2 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":189 * # Return global model sparsity * a, b = 0, 0 * for p in model.parameters(): # <<<<<<<<<<<<<< * a += p.numel() * b += (p == 0).sum() */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_model, __pyx_n_s_parameters); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_3, }; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { __pyx_t_5 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 189, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { if (likely(!__pyx_t_6)) { if (likely(PyList_CheckExact(__pyx_t_1))) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely((0 < 0))) __PYX_ERR(0, 189, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } else { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely((0 < 0))) __PYX_ERR(0, 189, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } } else { __pyx_t_2 = __pyx_t_6(__pyx_t_1); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 189, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_2); } __Pyx_XDECREF_SET(__pyx_v_p, __pyx_t_2); __pyx_t_2 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":190 * a, b = 0, 0 * for p in model.parameters(): * a += p.numel() # <<<<<<<<<<<<<< * b += (p == 0).sum() * return b / a */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_p, __pyx_n_s_numel); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_7, }; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_a, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF_SET(__pyx_v_a, __pyx_t_3); __pyx_t_3 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":191 * for p in model.parameters(): * a += p.numel() * b += (p == 0).sum() # <<<<<<<<<<<<<< * return b / a * */ __pyx_t_2 = __Pyx_PyInt_EqObjC(__pyx_v_p, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_sum); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_2, }; __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __pyx_t_7 = PyNumber_InPlaceAdd(__pyx_v_b, __pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF_SET(__pyx_v_b, __pyx_t_7); __pyx_t_7 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":189 * # Return global model sparsity * a, b = 0, 0 * for p in model.parameters(): # <<<<<<<<<<<<<< * a += p.numel() * b += (p == 0).sum() */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":192 * a += p.numel() * b += (p == 0).sum() * return b / a # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_v_b, __pyx_v_a); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":186 * * * def sparsity(model): # <<<<<<<<<<<<<< * # Return global model sparsity * a, b = 0, 0 */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.sparsity", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_a); __Pyx_XDECREF(__pyx_v_b); __Pyx_XDECREF(__pyx_v_p); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":195 * * * def prune(model, amount=0.3): # <<<<<<<<<<<<<< * # Prune model to requested global sparsity * import torch.nn.utils.prune as prune */ /* Python wrapper */ static PyObject *__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_26prune(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_26prune = {"prune", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_26prune, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_26prune(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_model = 0; PyObject *__pyx_v_amount = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("prune (wrapper)", 0); { #if CYTHON_USE_MODULE_STATE PyObject **__pyx_pyargnames[] = {&__pyx_n_s_model,&__pyx_n_s_amount,0}; #else static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_model,&__pyx_n_s_amount,0}; #endif PyObject* values[2] = {0,0}; values[1] = ((PyObject *)((PyObject*)__pyx_float_0_3)); if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_model)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 195, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_amount); if (value) { values[1] = value; kw_args--; } else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 195, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "prune") < 0)) __PYX_ERR(0, 195, __pyx_L3_error) } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_model = values[0]; __pyx_v_amount = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("prune", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 195, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.prune", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_25prune(__pyx_self, __pyx_v_model, __pyx_v_amount); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_25prune(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_model, PyObject *__pyx_v_amount) { PyObject *__pyx_v_prune = NULL; CYTHON_UNUSED PyObject *__pyx_v_name = NULL; PyObject *__pyx_v_m = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; Py_ssize_t __pyx_t_5; PyObject *(*__pyx_t_6)(PyObject *); PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *(*__pyx_t_9)(PyObject *); int __pyx_t_10; int __pyx_t_11; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("prune", 0); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":197 * def prune(model, amount=0.3): * # Prune model to requested global sparsity * import torch.nn.utils.prune as prune # <<<<<<<<<<<<<< * print('Pruning model... ', end='') * for name, m in model.named_modules(): */ __pyx_t_1 = __Pyx_ImportDottedModule(__pyx_n_s_torch_nn_utils_prune, __pyx_tuple__12); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_prune = __pyx_t_1; __pyx_t_1 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":198 * # Prune model to requested global sparsity * import torch.nn.utils.prune as prune * print('Pruning model... ', end='') # <<<<<<<<<<<<<< * for name, m in model.named_modules(): * if isinstance(m, nn.Conv2d): */ __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 198, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_end, __pyx_kp_u__4) < 0) __PYX_ERR(0, 198, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_print, __pyx_tuple__14, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 198, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":199 * import torch.nn.utils.prune as prune * print('Pruning model... ', end='') * for name, m in model.named_modules(): # <<<<<<<<<<<<<< * if isinstance(m, nn.Conv2d): * prune.l1_unstructured(m, name='weight', amount=amount) # prune */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_model, __pyx_n_s_named_modules); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_3, }; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { __pyx_t_5 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 199, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { if (likely(!__pyx_t_6)) { if (likely(PyList_CheckExact(__pyx_t_1))) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely((0 < 0))) __PYX_ERR(0, 199, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } else { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely((0 < 0))) __PYX_ERR(0, 199, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } } else { __pyx_t_2 = __pyx_t_6(__pyx_t_1); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 199, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_2); } if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { PyObject* sequence = __pyx_t_2; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 199, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_3 = PyList_GET_ITEM(sequence, 0); __pyx_t_7 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_7); #else __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); #endif __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { Py_ssize_t index = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_9 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_8); index = 0; __pyx_t_3 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_3)) goto __pyx_L5_unpacking_failed; __Pyx_GOTREF(__pyx_t_3); index = 1; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L5_unpacking_failed; __Pyx_GOTREF(__pyx_t_7); if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < 0) __PYX_ERR(0, 199, __pyx_L1_error) __pyx_t_9 = NULL; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; goto __pyx_L6_unpacking_done; __pyx_L5_unpacking_failed:; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_9 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 199, __pyx_L1_error) __pyx_L6_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF_SET(__pyx_v_m, __pyx_t_7); __pyx_t_7 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":200 * print('Pruning model... ', end='') * for name, m in model.named_modules(): * if isinstance(m, nn.Conv2d): # <<<<<<<<<<<<<< * prune.l1_unstructured(m, name='weight', amount=amount) # prune * prune.remove(m, 'weight') # make permanent */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_nn); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 200, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_Conv2d); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 200, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_10 = PyObject_IsInstance(__pyx_v_m, __pyx_t_7); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 200, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_11 = (__pyx_t_10 != 0); if (__pyx_t_11) { /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":201 * for name, m in model.named_modules(): * if isinstance(m, nn.Conv2d): * prune.l1_unstructured(m, name='weight', amount=amount) # prune # <<<<<<<<<<<<<< * prune.remove(m, 'weight') # make permanent * print(' %.3g global sparsity' % sparsity(model)) */ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_prune, __pyx_n_s_l1_unstructured); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_v_m); __Pyx_GIVEREF(__pyx_v_m); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_m); __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_name, __pyx_n_u_weight) < 0) __PYX_ERR(0, 201, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_amount, __pyx_v_amount) < 0) __PYX_ERR(0, 201, __pyx_L1_error) __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":202 * if isinstance(m, nn.Conv2d): * prune.l1_unstructured(m, name='weight', amount=amount) # prune * prune.remove(m, 'weight') # make permanent # <<<<<<<<<<<<<< * print(' %.3g global sparsity' % sparsity(model)) * */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_prune, __pyx_n_s_remove); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_m, __pyx_n_u_weight}; __pyx_t_8 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":200 * print('Pruning model... ', end='') * for name, m in model.named_modules(): * if isinstance(m, nn.Conv2d): # <<<<<<<<<<<<<< * prune.l1_unstructured(m, name='weight', amount=amount) # prune * prune.remove(m, 'weight') # make permanent */ } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":199 * import torch.nn.utils.prune as prune * print('Pruning model... ', end='') * for name, m in model.named_modules(): # <<<<<<<<<<<<<< * if isinstance(m, nn.Conv2d): * prune.l1_unstructured(m, name='weight', amount=amount) # prune */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":203 * prune.l1_unstructured(m, name='weight', amount=amount) # prune * prune.remove(m, 'weight') # make permanent * print(' %.3g global sparsity' % sparsity(model)) # <<<<<<<<<<<<<< * * */ __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_sparsity); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_3 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_model}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } __pyx_t_8 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_3g_global_sparsity, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_print, __pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":195 * * * def prune(model, amount=0.3): # <<<<<<<<<<<<<< * # Prune model to requested global sparsity * import torch.nn.utils.prune as prune */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.prune", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_prune); __Pyx_XDECREF(__pyx_v_name); __Pyx_XDECREF(__pyx_v_m); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":206 * * * def fuse_conv_and_bn(conv, bn): # <<<<<<<<<<<<<< * # Fuse convolution and batchnorm layers https://tehnokv.com/posts/fusing-batchnorm-and-conv/ * fusedconv = nn.Conv2d(conv.in_channels, */ /* Python wrapper */ static PyObject *__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_28fuse_conv_and_bn(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_28fuse_conv_and_bn = {"fuse_conv_and_bn", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_28fuse_conv_and_bn, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_28fuse_conv_and_bn(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_conv = 0; PyObject *__pyx_v_bn = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fuse_conv_and_bn (wrapper)", 0); { #if CYTHON_USE_MODULE_STATE PyObject **__pyx_pyargnames[] = {&__pyx_n_s_conv,&__pyx_n_s_bn,0}; #else static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_conv,&__pyx_n_s_bn,0}; #endif PyObject* values[2] = {0,0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_conv)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 206, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_bn)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 206, __pyx_L3_error) else { __Pyx_RaiseArgtupleInvalid("fuse_conv_and_bn", 1, 2, 2, 1); __PYX_ERR(0, 206, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "fuse_conv_and_bn") < 0)) __PYX_ERR(0, 206, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); } __pyx_v_conv = values[0]; __pyx_v_bn = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fuse_conv_and_bn", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 206, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.fuse_conv_and_bn", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_27fuse_conv_and_bn(__pyx_self, __pyx_v_conv, __pyx_v_bn); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_27fuse_conv_and_bn(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_conv, PyObject *__pyx_v_bn) { PyObject *__pyx_v_fusedconv = NULL; PyObject *__pyx_v_w_conv = NULL; PyObject *__pyx_v_w_bn = NULL; PyObject *__pyx_v_b_conv = NULL; PyObject *__pyx_v_b_bn = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; int __pyx_t_7; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; int __pyx_t_11; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fuse_conv_and_bn", 0); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":208 * def fuse_conv_and_bn(conv, bn): * # Fuse convolution and batchnorm layers https://tehnokv.com/posts/fusing-batchnorm-and-conv/ * fusedconv = nn.Conv2d(conv.in_channels, # <<<<<<<<<<<<<< * conv.out_channels, * kernel_size=conv.kernel_size, */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_nn); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 208, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_Conv2d); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 208, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_conv, __pyx_n_s_in_channels); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 208, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":209 * # Fuse convolution and batchnorm layers https://tehnokv.com/posts/fusing-batchnorm-and-conv/ * fusedconv = nn.Conv2d(conv.in_channels, * conv.out_channels, # <<<<<<<<<<<<<< * kernel_size=conv.kernel_size, * stride=conv.stride, */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_conv, __pyx_n_s_out_channels); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":208 * def fuse_conv_and_bn(conv, bn): * # Fuse convolution and batchnorm layers https://tehnokv.com/posts/fusing-batchnorm-and-conv/ * fusedconv = nn.Conv2d(conv.in_channels, # <<<<<<<<<<<<<< * conv.out_channels, * kernel_size=conv.kernel_size, */ __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 208, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5); __pyx_t_3 = 0; __pyx_t_5 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":210 * fusedconv = nn.Conv2d(conv.in_channels, * conv.out_channels, * kernel_size=conv.kernel_size, # <<<<<<<<<<<<<< * stride=conv.stride, * padding=conv.padding, */ __pyx_t_5 = __Pyx_PyDict_NewPresized(5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_conv, __pyx_n_s_kernel_size); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_kernel_size, __pyx_t_3) < 0) __PYX_ERR(0, 210, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":211 * conv.out_channels, * kernel_size=conv.kernel_size, * stride=conv.stride, # <<<<<<<<<<<<<< * padding=conv.padding, * groups=conv.groups, */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_conv, __pyx_n_s_stride); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 211, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_stride, __pyx_t_3) < 0) __PYX_ERR(0, 210, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":212 * kernel_size=conv.kernel_size, * stride=conv.stride, * padding=conv.padding, # <<<<<<<<<<<<<< * groups=conv.groups, * bias=True).requires_grad_(False).to(conv.weight.device) */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_conv, __pyx_n_s_padding); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 212, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_padding, __pyx_t_3) < 0) __PYX_ERR(0, 210, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":213 * stride=conv.stride, * padding=conv.padding, * groups=conv.groups, # <<<<<<<<<<<<<< * bias=True).requires_grad_(False).to(conv.weight.device) * */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_conv, __pyx_n_s_groups); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 213, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_groups, __pyx_t_3) < 0) __PYX_ERR(0, 210, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":214 * padding=conv.padding, * groups=conv.groups, * bias=True).requires_grad_(False).to(conv.weight.device) # <<<<<<<<<<<<<< * * # prepare filters */ if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_bias, Py_True) < 0) __PYX_ERR(0, 210, __pyx_L1_error) /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":208 * def fuse_conv_and_bn(conv, bn): * # Fuse convolution and batchnorm layers https://tehnokv.com/posts/fusing-batchnorm-and-conv/ * fusedconv = nn.Conv2d(conv.in_channels, # <<<<<<<<<<<<<< * conv.out_channels, * kernel_size=conv.kernel_size, */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 208, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":214 * padding=conv.padding, * groups=conv.groups, * bias=True).requires_grad_(False).to(conv.weight.device) # <<<<<<<<<<<<<< * * # prepare filters */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_requires_grad_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 214, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_7 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_3, Py_False}; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 214, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_to); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 214, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_conv, __pyx_n_s_weight); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 214, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_device); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 214, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_7 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_3}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 214, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_v_fusedconv = __pyx_t_1; __pyx_t_1 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":217 * * # prepare filters * w_conv = conv.weight.clone().view(conv.out_channels, -1) # <<<<<<<<<<<<<< * w_bn = torch.diag(bn.weight.div(torch.sqrt(bn.eps + bn.running_var))) * fusedconv.weight.copy_(torch.mm(w_bn, w_conv).view(fusedconv.weight.shape)) */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_conv, __pyx_n_s_weight); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_clone); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_7 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_3, }; __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_7, 0+__pyx_t_7); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_view); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_conv, __pyx_n_s_out_channels); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_7 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_int_neg_1}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_7, 2+__pyx_t_7); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_v_w_conv = __pyx_t_1; __pyx_t_1 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":218 * # prepare filters * w_conv = conv.weight.clone().view(conv.out_channels, -1) * w_bn = torch.diag(bn.weight.div(torch.sqrt(bn.eps + bn.running_var))) # <<<<<<<<<<<<<< * fusedconv.weight.copy_(torch.mm(w_bn, w_conv).view(fusedconv.weight.shape)) * */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_torch_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_diag); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_bn, __pyx_n_s_weight); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_div); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_torch_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_sqrt); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_bn, __pyx_n_s_eps); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_bn, __pyx_n_s_running_var); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = PyNumber_Add(__pyx_t_4, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); __pyx_t_7 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_10}; __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } __pyx_t_8 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_7 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_3}; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __pyx_t_6 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_7 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_2}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_v_w_bn = __pyx_t_1; __pyx_t_1 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":219 * w_conv = conv.weight.clone().view(conv.out_channels, -1) * w_bn = torch.diag(bn.weight.div(torch.sqrt(bn.eps + bn.running_var))) * fusedconv.weight.copy_(torch.mm(w_bn, w_conv).view(fusedconv.weight.shape)) # <<<<<<<<<<<<<< * * # prepare spatial bias */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_fusedconv, __pyx_n_s_weight); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_copy); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_torch_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_mm); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); __pyx_t_7 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_v_w_bn, __pyx_v_w_conv}; __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_7, 2+__pyx_t_7); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_view); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_fusedconv, __pyx_n_s_weight); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_shape); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); __pyx_t_7 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_3}; __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } __pyx_t_8 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_7 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_5}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":222 * * # prepare spatial bias * b_conv = torch.zeros(conv.weight.size(0), device=conv.weight.device) if conv.bias is None else conv.bias # <<<<<<<<<<<<<< * b_bn = bn.bias - bn.weight.mul(bn.running_mean).div(torch.sqrt(bn.running_var + bn.eps)) * fusedconv.bias.copy_(torch.mm(w_bn, b_conv.reshape(-1, 1)).reshape(-1) + b_bn) */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_conv, __pyx_n_s_bias); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 222, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_11 = (__pyx_t_2 == Py_None); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if ((__pyx_t_11 != 0)) { __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_torch_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 222, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 222, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_conv, __pyx_n_s_weight); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 222, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_size); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 222, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_7 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_int_0}; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 222, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 222, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 222, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_conv, __pyx_n_s_weight); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 222, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_device); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 222, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_device, __pyx_t_6) < 0) __PYX_ERR(0, 222, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 222, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_1 = __pyx_t_6; __pyx_t_6 = 0; } else { __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_conv, __pyx_n_s_bias); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 222, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = __pyx_t_6; __pyx_t_6 = 0; } __pyx_v_b_conv = __pyx_t_1; __pyx_t_1 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":223 * # prepare spatial bias * b_conv = torch.zeros(conv.weight.size(0), device=conv.weight.device) if conv.bias is None else conv.bias * b_bn = bn.bias - bn.weight.mul(bn.running_mean).div(torch.sqrt(bn.running_var + bn.eps)) # <<<<<<<<<<<<<< * fusedconv.bias.copy_(torch.mm(w_bn, b_conv.reshape(-1, 1)).reshape(-1) + b_bn) * */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_bn, __pyx_n_s_bias); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_bn, __pyx_n_s_weight); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_mul); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_bn, __pyx_n_s_running_mean); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_7 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_3}; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_div); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_torch_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_sqrt); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_bn, __pyx_n_s_running_var); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_bn, __pyx_n_s_eps); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_9 = PyNumber_Add(__pyx_t_3, __pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); __pyx_t_7 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_t_9}; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } __pyx_t_8 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_7 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_2}; __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_t_5 = PyNumber_Subtract(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_b_bn = __pyx_t_5; __pyx_t_5 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":224 * b_conv = torch.zeros(conv.weight.size(0), device=conv.weight.device) if conv.bias is None else conv.bias * b_bn = bn.bias - bn.weight.mul(bn.running_mean).div(torch.sqrt(bn.running_var + bn.eps)) * fusedconv.bias.copy_(torch.mm(w_bn, b_conv.reshape(-1, 1)).reshape(-1) + b_bn) # <<<<<<<<<<<<<< * * return fusedconv */ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_fusedconv, __pyx_n_s_bias); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_copy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_torch_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_mm); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_b_conv, __pyx_n_s_reshape); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_tuple__15, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); __pyx_t_7 = 1; } } { PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_v_w_bn, __pyx_t_10}; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_9, __pyx_callargs+1-__pyx_t_7, 2+__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_reshape); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); __pyx_t_7 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_int_neg_1}; __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_9, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __pyx_t_9 = PyNumber_Add(__pyx_t_6, __pyx_v_b_bn); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_7 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_9}; __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":226 * fusedconv.bias.copy_(torch.mm(w_bn, b_conv.reshape(-1, 1)).reshape(-1) + b_bn) * * return fusedconv # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_fusedconv); __pyx_r = __pyx_v_fusedconv; goto __pyx_L0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":206 * * * def fuse_conv_and_bn(conv, bn): # <<<<<<<<<<<<<< * # Fuse convolution and batchnorm layers https://tehnokv.com/posts/fusing-batchnorm-and-conv/ * fusedconv = nn.Conv2d(conv.in_channels, */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.fuse_conv_and_bn", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_fusedconv); __Pyx_XDECREF(__pyx_v_w_conv); __Pyx_XDECREF(__pyx_v_w_bn); __Pyx_XDECREF(__pyx_v_b_conv); __Pyx_XDECREF(__pyx_v_b_bn); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":229 * * * def model_info(model, verbose=False, img_size=640): # <<<<<<<<<<<<<< * # Model information. img_size may be int or list, i.e. img_size=640 or img_size=[640, 320] * n_p = sum(x.numel() for x in model.parameters()) # number parameters */ /* Python wrapper */ static PyObject *__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_30model_info(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_30model_info = {"model_info", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_30model_info, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_30model_info(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_model = 0; PyObject *__pyx_v_verbose = 0; PyObject *__pyx_v_img_size = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("model_info (wrapper)", 0); { #if CYTHON_USE_MODULE_STATE PyObject **__pyx_pyargnames[] = {&__pyx_n_s_model,&__pyx_n_s_verbose,&__pyx_n_s_img_size,0}; #else static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_model,&__pyx_n_s_verbose,&__pyx_n_s_img_size,0}; #endif PyObject* values[3] = {0,0,0}; values[1] = ((PyObject *)((PyObject *)Py_False)); values[2] = ((PyObject *)((PyObject *)__pyx_int_640)); if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_model)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 229, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_verbose); if (value) { values[1] = value; kw_args--; } else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 229, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_img_size); if (value) { values[2] = value; kw_args--; } else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 229, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "model_info") < 0)) __PYX_ERR(0, 229, __pyx_L3_error) } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_model = values[0]; __pyx_v_verbose = values[1]; __pyx_v_img_size = values[2]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("model_info", 0, 1, 3, __pyx_nargs); __PYX_ERR(0, 229, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.model_info", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_29model_info(__pyx_self, __pyx_v_model, __pyx_v_verbose, __pyx_v_img_size); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_10model_info_2generator3(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":231 * def model_info(model, verbose=False, img_size=640): * # Model information. img_size may be int or list, i.e. img_size=640 or img_size=[640, 320] * n_p = sum(x.numel() for x in model.parameters()) # number parameters # <<<<<<<<<<<<<< * n_g = sum(x.numel() for x in model.parameters() if x.requires_grad) # number gradients * if verbose: */ static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_10model_info_genexpr(PyObject *__pyx_self) { struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("genexpr", 0); __pyx_cur_scope = (struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr *)__pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr(__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(0, 231, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info *) __pyx_self; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_outer_scope); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_outer_scope); { __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_10model_info_2generator3, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_model_info_locals_genexpr, __pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils); if (unlikely(!gen)) __PYX_ERR(0, 231, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.model_info.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_10model_info_2generator3(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr *__pyx_cur_scope = ((struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; Py_ssize_t __pyx_t_5; PyObject *(*__pyx_t_6)(PyObject *); PyObject *__pyx_t_7 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("genexpr", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L6_resume_from_yield; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 231, __pyx_L1_error) if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_model)) { __Pyx_RaiseClosureNameError("model"); __PYX_ERR(0, 231, __pyx_L1_error) } __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_model, __pyx_n_s_parameters); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_3, }; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { __pyx_t_5 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 231, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (likely(!__pyx_t_6)) { if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely((0 < 0))) __PYX_ERR(0, 231, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely((0 < 0))) __PYX_ERR(0, 231, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } } else { __pyx_t_1 = __pyx_t_6(__pyx_t_2); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 231, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_1); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_x); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_x, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_numel); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_7, }; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_r = __pyx_t_1; __pyx_t_1 = 0; __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_0 = __pyx_t_2; __pyx_cur_scope->__pyx_t_1 = __pyx_t_5; __pyx_cur_scope->__pyx_t_2 = __pyx_t_6; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, yielding value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L6_resume_from_yield:; __pyx_t_2 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_5 = __pyx_cur_scope->__pyx_t_1; __pyx_t_6 = __pyx_cur_scope->__pyx_t_2; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 231, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_Generator_Replace_StopIteration(0); __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_10model_info_5generator4(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":232 * # Model information. img_size may be int or list, i.e. img_size=640 or img_size=[640, 320] * n_p = sum(x.numel() for x in model.parameters()) # number parameters * n_g = sum(x.numel() for x in model.parameters() if x.requires_grad) # number gradients # <<<<<<<<<<<<<< * if verbose: * print(f"{'layer':>5} {'name':>40} {'gradient':>9} {'parameters':>12} {'shape':>20} {'mu':>10} {'sigma':>10}") */ static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_10model_info_3genexpr(PyObject *__pyx_self) { struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("genexpr", 0); __pyx_cur_scope = (struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr *)__pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr(__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(0, 232, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info *) __pyx_self; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_outer_scope); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_outer_scope); { __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_10model_info_5generator4, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_model_info_locals_genexpr, __pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils); if (unlikely(!gen)) __PYX_ERR(0, 232, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.model_info.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_10model_info_5generator4(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr *__pyx_cur_scope = ((struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; Py_ssize_t __pyx_t_5; PyObject *(*__pyx_t_6)(PyObject *); int __pyx_t_7; PyObject *__pyx_t_8 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("genexpr", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L7_resume_from_yield; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 232, __pyx_L1_error) if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_model)) { __Pyx_RaiseClosureNameError("model"); __PYX_ERR(0, 232, __pyx_L1_error) } __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_model, __pyx_n_s_parameters); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_3, }; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { __pyx_t_5 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 232, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (likely(!__pyx_t_6)) { if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely((0 < 0))) __PYX_ERR(0, 232, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely((0 < 0))) __PYX_ERR(0, 232, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } } else { __pyx_t_1 = __pyx_t_6(__pyx_t_2); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 232, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_1); } __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_x); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_x, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_requires_grad); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 232, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_7) { __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_numel); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_8, }; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_r = __pyx_t_1; __pyx_t_1 = 0; __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_0 = __pyx_t_2; __pyx_cur_scope->__pyx_t_1 = __pyx_t_5; __pyx_cur_scope->__pyx_t_2 = __pyx_t_6; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, yielding value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L7_resume_from_yield:; __pyx_t_2 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_5 = __pyx_cur_scope->__pyx_t_1; __pyx_t_6 = __pyx_cur_scope->__pyx_t_2; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 232, __pyx_L1_error) } } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_Generator_Replace_StopIteration(0); __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":229 * * * def model_info(model, verbose=False, img_size=640): # <<<<<<<<<<<<<< * # Model information. img_size may be int or list, i.e. img_size=640 or img_size=[640, 320] * n_p = sum(x.numel() for x in model.parameters()) # number parameters */ static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_29model_info(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_model, PyObject *__pyx_v_verbose, PyObject *__pyx_v_img_size) { struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info *__pyx_cur_scope; PyObject *__pyx_v_n_p = NULL; PyObject *__pyx_v_n_g = NULL; PyObject *__pyx_v_i = NULL; PyObject *__pyx_v_name = NULL; PyObject *__pyx_v_p = NULL; PyObject *__pyx_v_profile = NULL; PyObject *__pyx_v_stride = NULL; PyObject *__pyx_v_img = NULL; PyObject *__pyx_v_flops = NULL; PyObject *__pyx_v_fs = NULL; PyObject *__pyx_gb_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_10model_info_2generator3 = 0; PyObject *__pyx_gb_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_10model_info_5generator4 = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; int __pyx_t_3; Py_ssize_t __pyx_t_4; Py_UCS4 __pyx_t_5; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; int __pyx_t_8; PyObject *(*__pyx_t_9)(PyObject *); PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; PyObject *(*__pyx_t_12)(PyObject *); PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; long __pyx_t_19; int __pyx_t_20; Py_ssize_t __pyx_t_21; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("model_info", 0); __pyx_cur_scope = (struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info *)__pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info(__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(0, 229, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_model = __pyx_v_model; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_model); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_model); __Pyx_INCREF(__pyx_v_img_size); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":231 * def model_info(model, verbose=False, img_size=640): * # Model information. img_size may be int or list, i.e. img_size=640 or img_size=[640, 320] * n_p = sum(x.numel() for x in model.parameters()) # number parameters # <<<<<<<<<<<<<< * n_g = sum(x.numel() for x in model.parameters() if x.requires_grad) # number gradients * if verbose: */ __pyx_t_1 = __pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_10model_info_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_n_p = __pyx_t_2; __pyx_t_2 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":232 * # Model information. img_size may be int or list, i.e. img_size=640 or img_size=[640, 320] * n_p = sum(x.numel() for x in model.parameters()) # number parameters * n_g = sum(x.numel() for x in model.parameters() if x.requires_grad) # number gradients # <<<<<<<<<<<<<< * if verbose: * print(f"{'layer':>5} {'name':>40} {'gradient':>9} {'parameters':>12} {'shape':>20} {'mu':>10} {'sigma':>10}") */ __pyx_t_2 = __pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_10model_info_3genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_n_g = __pyx_t_1; __pyx_t_1 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":233 * n_p = sum(x.numel() for x in model.parameters()) # number parameters * n_g = sum(x.numel() for x in model.parameters() if x.requires_grad) # number gradients * if verbose: # <<<<<<<<<<<<<< * print(f"{'layer':>5} {'name':>40} {'gradient':>9} {'parameters':>12} {'shape':>20} {'mu':>10} {'sigma':>10}") * for i, (name, p) in enumerate(model.named_parameters()): */ __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_verbose); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 233, __pyx_L1_error) if (__pyx_t_3) { /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":234 * n_g = sum(x.numel() for x in model.parameters() if x.requires_grad) # number gradients * if verbose: * print(f"{'layer':>5} {'name':>40} {'gradient':>9} {'parameters':>12} {'shape':>20} {'mu':>10} {'sigma':>10}") # <<<<<<<<<<<<<< * for i, (name, p) in enumerate(model.named_parameters()): * name = name.replace('module_list.', '') */ __pyx_t_1 = PyTuple_New(13); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = 0; __pyx_t_5 = 127; __pyx_t_2 = __Pyx_PyObject_Format(__pyx_n_u_layer, __pyx_kp_u_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) > __pyx_t_5) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) : __pyx_t_5; __pyx_t_4 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2); __pyx_t_2 = 0; __Pyx_INCREF(__pyx_kp_u__5); __pyx_t_4 += 1; __Pyx_GIVEREF(__pyx_kp_u__5); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_kp_u__5); __pyx_t_2 = __Pyx_PyObject_Format(__pyx_n_u_name, __pyx_kp_u_40); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) > __pyx_t_5) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) : __pyx_t_5; __pyx_t_4 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_2); __pyx_t_2 = 0; __Pyx_INCREF(__pyx_kp_u__5); __pyx_t_4 += 1; __Pyx_GIVEREF(__pyx_kp_u__5); PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_kp_u__5); __pyx_t_2 = __Pyx_PyObject_Format(__pyx_n_u_gradient, __pyx_kp_u_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) > __pyx_t_5) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) : __pyx_t_5; __pyx_t_4 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_1, 4, __pyx_t_2); __pyx_t_2 = 0; __Pyx_INCREF(__pyx_kp_u__5); __pyx_t_4 += 1; __Pyx_GIVEREF(__pyx_kp_u__5); PyTuple_SET_ITEM(__pyx_t_1, 5, __pyx_kp_u__5); __pyx_t_2 = __Pyx_PyObject_Format(__pyx_n_u_parameters, __pyx_kp_u_12_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) > __pyx_t_5) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) : __pyx_t_5; __pyx_t_4 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_1, 6, __pyx_t_2); __pyx_t_2 = 0; __Pyx_INCREF(__pyx_kp_u__5); __pyx_t_4 += 1; __Pyx_GIVEREF(__pyx_kp_u__5); PyTuple_SET_ITEM(__pyx_t_1, 7, __pyx_kp_u__5); __pyx_t_2 = __Pyx_PyObject_Format(__pyx_n_u_shape, __pyx_kp_u_20); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) > __pyx_t_5) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) : __pyx_t_5; __pyx_t_4 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_1, 8, __pyx_t_2); __pyx_t_2 = 0; __Pyx_INCREF(__pyx_kp_u__5); __pyx_t_4 += 1; __Pyx_GIVEREF(__pyx_kp_u__5); PyTuple_SET_ITEM(__pyx_t_1, 9, __pyx_kp_u__5); __pyx_t_2 = __Pyx_PyObject_Format(__pyx_n_u_mu, __pyx_kp_u_10); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) > __pyx_t_5) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) : __pyx_t_5; __pyx_t_4 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_1, 10, __pyx_t_2); __pyx_t_2 = 0; __Pyx_INCREF(__pyx_kp_u__5); __pyx_t_4 += 1; __Pyx_GIVEREF(__pyx_kp_u__5); PyTuple_SET_ITEM(__pyx_t_1, 11, __pyx_kp_u__5); __pyx_t_2 = __Pyx_PyObject_Format(__pyx_n_u_sigma, __pyx_kp_u_10); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) > __pyx_t_5) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) : __pyx_t_5; __pyx_t_4 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_1, 12, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyUnicode_Join(__pyx_t_1, 13, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_print, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":235 * if verbose: * print(f"{'layer':>5} {'name':>40} {'gradient':>9} {'parameters':>12} {'shape':>20} {'mu':>10} {'sigma':>10}") * for i, (name, p) in enumerate(model.named_parameters()): # <<<<<<<<<<<<<< * name = name.replace('module_list.', '') * print('%5g %40s %9s %12g %20s %10.3g %10.3g' % */ __Pyx_INCREF(__pyx_int_0); __pyx_t_1 = __pyx_int_0; __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_model, __pyx_n_s_named_parameters); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 235, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_8 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_7, }; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 0+__pyx_t_8); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 235, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { __pyx_t_6 = __pyx_t_2; __Pyx_INCREF(__pyx_t_6); __pyx_t_4 = 0; __pyx_t_9 = NULL; } else { __pyx_t_4 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 235, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_9 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_6); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 235, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { if (likely(!__pyx_t_9)) { if (likely(PyList_CheckExact(__pyx_t_6))) { if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_6)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely((0 < 0))) __PYX_ERR(0, 235, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_6, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 235, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } else { if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_6)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely((0 < 0))) __PYX_ERR(0, 235, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_6, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 235, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } } else { __pyx_t_2 = __pyx_t_9(__pyx_t_6); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 235, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_2); } if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { PyObject* sequence = __pyx_t_2; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 235, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_10 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_7 = PyList_GET_ITEM(sequence, 0); __pyx_t_10 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(__pyx_t_10); #else __pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 235, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_10 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 235, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); #endif __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { Py_ssize_t index = -1; __pyx_t_11 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 235, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_12 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_11); index = 0; __pyx_t_7 = __pyx_t_12(__pyx_t_11); if (unlikely(!__pyx_t_7)) goto __pyx_L6_unpacking_failed; __Pyx_GOTREF(__pyx_t_7); index = 1; __pyx_t_10 = __pyx_t_12(__pyx_t_11); if (unlikely(!__pyx_t_10)) goto __pyx_L6_unpacking_failed; __Pyx_GOTREF(__pyx_t_10); if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_11), 2) < 0) __PYX_ERR(0, 235, __pyx_L1_error) __pyx_t_12 = NULL; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; goto __pyx_L7_unpacking_done; __pyx_L6_unpacking_failed:; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_12 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 235, __pyx_L1_error) __pyx_L7_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF_SET(__pyx_v_p, __pyx_t_10); __pyx_t_10 = 0; __Pyx_INCREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1); __pyx_t_2 = __Pyx_PyInt_AddObjC(__pyx_t_1, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 235, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = __pyx_t_2; __pyx_t_2 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":236 * print(f"{'layer':>5} {'name':>40} {'gradient':>9} {'parameters':>12} {'shape':>20} {'mu':>10} {'sigma':>10}") * for i, (name, p) in enumerate(model.named_parameters()): * name = name.replace('module_list.', '') # <<<<<<<<<<<<<< * print('%5g %40s %9s %12g %20s %10.3g %10.3g' % * (i, name, p.requires_grad, p.numel(), list(p.shape), p.mean(), p.std())) */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_name, __pyx_n_s_replace); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__16, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_10); __pyx_t_10 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":238 * name = name.replace('module_list.', '') * print('%5g %40s %9s %12g %20s %10.3g %10.3g' % * (i, name, p.requires_grad, p.numel(), list(p.shape), p.mean(), p.std())) # <<<<<<<<<<<<<< * * try: # FLOPs */ __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_p, __pyx_n_s_requires_grad); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_p, __pyx_n_s_numel); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_11 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_11)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_8 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_11, }; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_8, 0+__pyx_t_8); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_p, __pyx_n_s_shape); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_11 = __Pyx_PySequence_ListKeepNew(__pyx_t_7); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_p, __pyx_n_s_mean); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_14 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) { __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13); if (likely(__pyx_t_14)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); __Pyx_INCREF(__pyx_t_14); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_13, function); __pyx_t_8 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_14, }; __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_8, 0+__pyx_t_8); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; } __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_p, __pyx_n_s_std); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_15 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_14))) { __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_14); if (likely(__pyx_t_15)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14); __Pyx_INCREF(__pyx_t_15); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_14, function); __pyx_t_8 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_15, }; __pyx_t_13 = __Pyx_PyObject_FastCall(__pyx_t_14, __pyx_callargs+1-__pyx_t_8, 0+__pyx_t_8); __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; } __pyx_t_14 = PyTuple_New(7); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_INCREF(__pyx_v_i); __Pyx_GIVEREF(__pyx_v_i); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_v_i); __Pyx_INCREF(__pyx_v_name); __Pyx_GIVEREF(__pyx_v_name); PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_v_name); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_14, 2, __pyx_t_10); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_14, 3, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_14, 4, __pyx_t_11); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_14, 5, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_14, 6, __pyx_t_13); __pyx_t_10 = 0; __pyx_t_2 = 0; __pyx_t_11 = 0; __pyx_t_7 = 0; __pyx_t_13 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":237 * for i, (name, p) in enumerate(model.named_parameters()): * name = name.replace('module_list.', '') * print('%5g %40s %9s %12g %20s %10.3g %10.3g' % # <<<<<<<<<<<<<< * (i, name, p.requires_grad, p.numel(), list(p.shape), p.mean(), p.std())) * */ __pyx_t_13 = PyUnicode_Format(__pyx_kp_u_5g_40s_9s_12g_20s_10_3g_10_3g, __pyx_t_14); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = __Pyx_PyObject_CallOneArg(__pyx_builtin_print, __pyx_t_13); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":235 * if verbose: * print(f"{'layer':>5} {'name':>40} {'gradient':>9} {'parameters':>12} {'shape':>20} {'mu':>10} {'sigma':>10}") * for i, (name, p) in enumerate(model.named_parameters()): # <<<<<<<<<<<<<< * name = name.replace('module_list.', '') * print('%5g %40s %9s %12g %20s %10.3g %10.3g' % */ } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":233 * n_p = sum(x.numel() for x in model.parameters()) # number parameters * n_g = sum(x.numel() for x in model.parameters() if x.requires_grad) # number gradients * if verbose: # <<<<<<<<<<<<<< * print(f"{'layer':>5} {'name':>40} {'gradient':>9} {'parameters':>12} {'shape':>20} {'mu':>10} {'sigma':>10}") * for i, (name, p) in enumerate(model.named_parameters()): */ } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":240 * (i, name, p.requires_grad, p.numel(), list(p.shape), p.mean(), p.std())) * * try: # FLOPs # <<<<<<<<<<<<<< * from thop import profile * stride = max(int(model.stride.max()), 32) if hasattr(model, 'stride') else 32 */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); /*try:*/ { /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":241 * * try: # FLOPs * from thop import profile # <<<<<<<<<<<<<< * stride = max(int(model.stride.max()), 32) if hasattr(model, 'stride') else 32 * img = torch.zeros((1, model.yaml.get('ch', 3), stride, stride), device=next(model.parameters()).device) # input */ __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 241, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_profile); __Pyx_GIVEREF(__pyx_n_s_profile); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_profile); __pyx_t_6 = __Pyx_Import(__pyx_n_s_thop, __pyx_t_1, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 241, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_6, __pyx_n_s_profile); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 241, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_1); __pyx_v_profile = __pyx_t_1; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":242 * try: # FLOPs * from thop import profile * stride = max(int(model.stride.max()), 32) if hasattr(model, 'stride') else 32 # <<<<<<<<<<<<<< * img = torch.zeros((1, model.yaml.get('ch', 3), stride, stride), device=next(model.parameters()).device) # input * flops = profile(deepcopy(model), inputs=(img,), verbose=False)[0] / 1E9 * 2 # stride GFLOPs */ __pyx_t_1 = __pyx_cur_scope->__pyx_v_model; __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = __Pyx_HasAttr(__pyx_t_1, __pyx_n_u_stride); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 242, __pyx_L8_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if ((__pyx_t_3 != 0)) { __pyx_t_19 = 32; __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_model, __pyx_n_s_stride); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 242, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_max); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 242, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) { __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13); if (likely(__pyx_t_14)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); __Pyx_INCREF(__pyx_t_14); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_13, function); __pyx_t_8 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_14, }; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_8, 0+__pyx_t_8); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 242, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; } __pyx_t_13 = __Pyx_PyNumber_Int(__pyx_t_1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 242, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_14 = __Pyx_PyInt_From_long(__pyx_t_19); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 242, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_7 = PyObject_RichCompare(__pyx_t_14, __pyx_t_13, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 242, __pyx_L8_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 242, __pyx_L8_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (__pyx_t_20) { __pyx_t_7 = __Pyx_PyInt_From_long(__pyx_t_19); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 242, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_1 = __pyx_t_7; __pyx_t_7 = 0; } else { __Pyx_INCREF(__pyx_t_13); __pyx_t_1 = __pyx_t_13; } __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_INCREF(__pyx_t_1); __pyx_t_6 = __pyx_t_1; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { __Pyx_INCREF(__pyx_int_32); __pyx_t_6 = __pyx_int_32; } __pyx_v_stride = __pyx_t_6; __pyx_t_6 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":243 * from thop import profile * stride = max(int(model.stride.max()), 32) if hasattr(model, 'stride') else 32 * img = torch.zeros((1, model.yaml.get('ch', 3), stride, stride), device=next(model.parameters()).device) # input # <<<<<<<<<<<<<< * flops = profile(deepcopy(model), inputs=(img,), verbose=False)[0] / 1E9 * 2 # stride GFLOPs * img_size = img_size if isinstance(img_size, list) else [img_size, img_size] # expand if int/float */ __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_torch_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 243, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 243, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_model, __pyx_n_s_yaml); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 243, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_get); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 243, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_tuple__18, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 243, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = PyTuple_New(4); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 243, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_INCREF(__pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_int_1); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_t_6); __Pyx_INCREF(__pyx_v_stride); __Pyx_GIVEREF(__pyx_v_stride); PyTuple_SET_ITEM(__pyx_t_13, 2, __pyx_v_stride); __Pyx_INCREF(__pyx_v_stride); __Pyx_GIVEREF(__pyx_v_stride); PyTuple_SET_ITEM(__pyx_t_13, 3, __pyx_v_stride); __pyx_t_6 = 0; __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 243, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 243, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_model, __pyx_n_s_parameters); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 243, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_11 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_14))) { __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_14); if (likely(__pyx_t_11)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14); __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_14, function); __pyx_t_8 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_11, }; __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_14, __pyx_callargs+1-__pyx_t_8, 0+__pyx_t_8); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 243, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; } __pyx_t_14 = __Pyx_PyIter_Next(__pyx_t_7); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 243, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_device); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 243, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_device, __pyx_t_7) < 0) __PYX_ERR(0, 243, __pyx_L8_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, __pyx_t_13); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 243, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_v_img = __pyx_t_7; __pyx_t_7 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":244 * stride = max(int(model.stride.max()), 32) if hasattr(model, 'stride') else 32 * img = torch.zeros((1, model.yaml.get('ch', 3), stride, stride), device=next(model.parameters()).device) # input * flops = profile(deepcopy(model), inputs=(img,), verbose=False)[0] / 1E9 * 2 # stride GFLOPs # <<<<<<<<<<<<<< * img_size = img_size if isinstance(img_size, list) else [img_size, img_size] # expand if int/float * fs = ', %.1f GFLOPs' % (flops * img_size[0] / stride * img_size[1] / stride) # 640x640 GFLOPs */ __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_deepcopy); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 244, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_6 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_13); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_13, function); __pyx_t_8 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_cur_scope->__pyx_v_model}; __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 244, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; } __pyx_t_13 = PyTuple_New(1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 244, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 244, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 244, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_v_img); __Pyx_GIVEREF(__pyx_v_img); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_img); if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_inputs, __pyx_t_6) < 0) __PYX_ERR(0, 244, __pyx_L8_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_verbose, Py_False) < 0) __PYX_ERR(0, 244, __pyx_L8_error) __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_profile, __pyx_t_13, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 244, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_GetItemInt(__pyx_t_6, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 244, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyFloat_TrueDivideObjC(__pyx_t_7, __pyx_float_1E9, 1E9, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 244, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyInt_MultiplyObjC(__pyx_t_6, __pyx_int_2, 2, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 244, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_flops = __pyx_t_7; __pyx_t_7 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":245 * img = torch.zeros((1, model.yaml.get('ch', 3), stride, stride), device=next(model.parameters()).device) # input * flops = profile(deepcopy(model), inputs=(img,), verbose=False)[0] / 1E9 * 2 # stride GFLOPs * img_size = img_size if isinstance(img_size, list) else [img_size, img_size] # expand if int/float # <<<<<<<<<<<<<< * fs = ', %.1f GFLOPs' % (flops * img_size[0] / stride * img_size[1] / stride) # 640x640 GFLOPs * except (ImportError, Exception): */ __pyx_t_3 = PyList_Check(__pyx_v_img_size); if ((__pyx_t_3 != 0)) { __Pyx_INCREF(__pyx_v_img_size); __pyx_t_7 = __pyx_v_img_size; } else { __pyx_t_6 = PyList_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 245, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_v_img_size); __Pyx_GIVEREF(__pyx_v_img_size); PyList_SET_ITEM(__pyx_t_6, 0, __pyx_v_img_size); __Pyx_INCREF(__pyx_v_img_size); __Pyx_GIVEREF(__pyx_v_img_size); PyList_SET_ITEM(__pyx_t_6, 1, __pyx_v_img_size); __pyx_t_7 = __pyx_t_6; __pyx_t_6 = 0; } __Pyx_DECREF_SET(__pyx_v_img_size, __pyx_t_7); __pyx_t_7 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":246 * flops = profile(deepcopy(model), inputs=(img,), verbose=False)[0] / 1E9 * 2 # stride GFLOPs * img_size = img_size if isinstance(img_size, list) else [img_size, img_size] # expand if int/float * fs = ', %.1f GFLOPs' % (flops * img_size[0] / stride * img_size[1] / stride) # 640x640 GFLOPs # <<<<<<<<<<<<<< * except (ImportError, Exception): * fs = '' */ __pyx_t_7 = __Pyx_GetItemInt(__pyx_v_img_size, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 246, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = PyNumber_Multiply(__pyx_v_flops, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 246, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyNumber_Divide(__pyx_t_6, __pyx_v_stride); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 246, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_img_size, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 246, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_13 = PyNumber_Multiply(__pyx_t_7, __pyx_t_6); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 246, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyNumber_Divide(__pyx_t_13, __pyx_v_stride); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 246, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_1f_GFLOPs, __pyx_t_6); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 246, __pyx_L8_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_fs = ((PyObject*)__pyx_t_13); __pyx_t_13 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":240 * (i, name, p.requires_grad, p.numel(), list(p.shape), p.mean(), p.std())) * * try: # FLOPs # <<<<<<<<<<<<<< * from thop import profile * stride = max(int(model.stride.max()), 32) if hasattr(model, 'stride') else 32 */ } __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; goto __pyx_L13_try_end; __pyx_L8_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":247 * img_size = img_size if isinstance(img_size, list) else [img_size, img_size] # expand if int/float * fs = ', %.1f GFLOPs' % (flops * img_size[0] / stride * img_size[1] / stride) # 640x640 GFLOPs * except (ImportError, Exception): # <<<<<<<<<<<<<< * fs = '' * */ __pyx_t_8 = __Pyx_PyErr_ExceptionMatches2(__pyx_builtin_ImportError, ((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_8) { __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.model_info", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_13, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(0, 247, __pyx_L10_except_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":248 * fs = ', %.1f GFLOPs' % (flops * img_size[0] / stride * img_size[1] / stride) # 640x640 GFLOPs * except (ImportError, Exception): * fs = '' # <<<<<<<<<<<<<< * * LOGGER.info(f"Model Summary: {len(list(model.modules()))} layers, {n_p} parameters, {n_g} gradients{fs}") */ __Pyx_INCREF(__pyx_kp_u__4); __Pyx_XDECREF_SET(__pyx_v_fs, __pyx_kp_u__4); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L9_exception_handled; } goto __pyx_L10_except_error; __pyx_L10_except_error:; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":240 * (i, name, p.requires_grad, p.numel(), list(p.shape), p.mean(), p.std())) * * try: # FLOPs # <<<<<<<<<<<<<< * from thop import profile * stride = max(int(model.stride.max()), 32) if hasattr(model, 'stride') else 32 */ __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18); goto __pyx_L1_error; __pyx_L9_exception_handled:; __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18); __pyx_L13_try_end:; } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":250 * fs = '' * * LOGGER.info(f"Model Summary: {len(list(model.modules()))} layers, {n_p} parameters, {n_g} gradients{fs}") # <<<<<<<<<<<<<< * * */ __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_LOGGER); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 250, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_info); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 250, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyTuple_New(8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 250, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = 0; __pyx_t_5 = 127; __Pyx_INCREF(__pyx_kp_u_Model_Summary); __pyx_t_4 += 15; __Pyx_GIVEREF(__pyx_kp_u_Model_Summary); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_kp_u_Model_Summary); __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_model, __pyx_n_s_modules); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 250, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_11 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_14))) { __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_14); if (likely(__pyx_t_11)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14); __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_14, function); __pyx_t_8 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_11, }; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_14, __pyx_callargs+1-__pyx_t_8, 0+__pyx_t_8); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 250, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; } __pyx_t_14 = __Pyx_PySequence_ListKeepNew(__pyx_t_1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 250, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_21 = PyList_GET_SIZE(__pyx_t_14); if (unlikely(__pyx_t_21 == ((Py_ssize_t)-1))) __PYX_ERR(0, 250, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_t_21, 0, ' ', 'd'); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 250, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_4 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_14); __pyx_t_14 = 0; __Pyx_INCREF(__pyx_kp_u_layers); __pyx_t_4 += 9; __Pyx_GIVEREF(__pyx_kp_u_layers); PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_kp_u_layers); __pyx_t_14 = __Pyx_PyObject_FormatSimple(__pyx_v_n_p, __pyx_empty_unicode); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 250, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_5 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_14) > __pyx_t_5) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_14) : __pyx_t_5; __pyx_t_4 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_14); __pyx_t_14 = 0; __Pyx_INCREF(__pyx_kp_u_parameters_2); __pyx_t_4 += 13; __Pyx_GIVEREF(__pyx_kp_u_parameters_2); PyTuple_SET_ITEM(__pyx_t_6, 4, __pyx_kp_u_parameters_2); __pyx_t_14 = __Pyx_PyObject_FormatSimple(__pyx_v_n_g, __pyx_empty_unicode); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 250, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_5 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_14) > __pyx_t_5) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_14) : __pyx_t_5; __pyx_t_4 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_6, 5, __pyx_t_14); __pyx_t_14 = 0; __Pyx_INCREF(__pyx_kp_u_gradients); __pyx_t_4 += 10; __Pyx_GIVEREF(__pyx_kp_u_gradients); PyTuple_SET_ITEM(__pyx_t_6, 6, __pyx_kp_u_gradients); __Pyx_INCREF(__pyx_v_fs); __pyx_t_5 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_v_fs) > __pyx_t_5) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_v_fs) : __pyx_t_5; __pyx_t_4 += __Pyx_PyUnicode_GET_LENGTH(__pyx_v_fs); __Pyx_GIVEREF(__pyx_v_fs); PyTuple_SET_ITEM(__pyx_t_6, 7, __pyx_v_fs); __pyx_t_14 = __Pyx_PyUnicode_Join(__pyx_t_6, 8, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 250, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_13); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_13, function); __pyx_t_8 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_14}; __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 250, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":229 * * * def model_info(model, verbose=False, img_size=640): # <<<<<<<<<<<<<< * # Model information. img_size may be int or list, i.e. img_size=640 or img_size=[640, 320] * n_p = sum(x.numel() for x in model.parameters()) # number parameters */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_10); __Pyx_XDECREF(__pyx_t_11); __Pyx_XDECREF(__pyx_t_13); __Pyx_XDECREF(__pyx_t_14); __Pyx_XDECREF(__pyx_t_15); __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.model_info", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_n_p); __Pyx_XDECREF(__pyx_v_n_g); __Pyx_XDECREF(__pyx_v_i); __Pyx_XDECREF(__pyx_v_name); __Pyx_XDECREF(__pyx_v_p); __Pyx_XDECREF(__pyx_v_profile); __Pyx_XDECREF(__pyx_v_stride); __Pyx_XDECREF(__pyx_v_img); __Pyx_XDECREF(__pyx_v_flops); __Pyx_XDECREF(__pyx_v_fs); __Pyx_XDECREF(__pyx_gb_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_10model_info_2generator3); __Pyx_XDECREF(__pyx_gb_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_10model_info_5generator4); __Pyx_XDECREF(__pyx_v_img_size); __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":253 * * * def scale_img(img, ratio=1.0, same_shape=False, gs=32): # img(16,3,256,416) # <<<<<<<<<<<<<< * # scales img(bs,3,y,x) by ratio constrained to gs-multiple * if ratio == 1.0: */ /* Python wrapper */ static PyObject *__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_32scale_img(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_32scale_img = {"scale_img", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_32scale_img, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_32scale_img(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_img = 0; PyObject *__pyx_v_ratio = 0; PyObject *__pyx_v_same_shape = 0; PyObject *__pyx_v_gs = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("scale_img (wrapper)", 0); { #if CYTHON_USE_MODULE_STATE PyObject **__pyx_pyargnames[] = {&__pyx_n_s_img,&__pyx_n_s_ratio,&__pyx_n_s_same_shape,&__pyx_n_s_gs,0}; #else static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_img,&__pyx_n_s_ratio,&__pyx_n_s_same_shape,&__pyx_n_s_gs,0}; #endif PyObject* values[4] = {0,0,0,0}; values[1] = ((PyObject *)((PyObject*)__pyx_float_1_0)); values[2] = ((PyObject *)((PyObject *)Py_False)); values[3] = ((PyObject *)((PyObject *)__pyx_int_32)); if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_img)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 253, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio); if (value) { values[1] = value; kw_args--; } else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 253, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_same_shape); if (value) { values[2] = value; kw_args--; } else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 253, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gs); if (value) { values[3] = value; kw_args--; } else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 253, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "scale_img") < 0)) __PYX_ERR(0, 253, __pyx_L3_error) } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_img = values[0]; __pyx_v_ratio = values[1]; __pyx_v_same_shape = values[2]; __pyx_v_gs = values[3]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("scale_img", 0, 1, 4, __pyx_nargs); __PYX_ERR(0, 253, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.scale_img", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_31scale_img(__pyx_self, __pyx_v_img, __pyx_v_ratio, __pyx_v_same_shape, __pyx_v_gs); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_9scale_img_2generator5(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":262 * img = F.interpolate(img, size=s, mode='bilinear', align_corners=False) # resize * if not same_shape: # pad/crop img * h, w = (math.ceil(x * ratio / gs) * gs for x in (h, w)) # <<<<<<<<<<<<<< * return F.pad(img, [0, w - s[1], 0, h - s[0]], value=0.447) # value = imagenet mean * */ static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_9scale_img_genexpr(PyObject *__pyx_self) { struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("genexpr", 0); __pyx_cur_scope = (struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr *)__pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr(__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(0, 262, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img *) __pyx_self; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_outer_scope); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_outer_scope); { __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_9scale_img_2generator5, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_scale_img_locals_genexpr, __pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils); if (unlikely(!gen)) __PYX_ERR(0, 262, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.scale_img.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_9scale_img_2generator5(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */ { struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr *__pyx_cur_scope = ((struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr *)__pyx_generator->closure); PyObject *__pyx_r = NULL; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; Py_ssize_t __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; int __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("genexpr", 0); switch (__pyx_generator->resume_label) { case 0: goto __pyx_L3_first_run; case 1: goto __pyx_L6_resume_from_yield; default: /* CPython raises the right error here */ __Pyx_RefNannyFinishContext(); return NULL; } __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 262, __pyx_L1_error) if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_h)) { __Pyx_RaiseClosureNameError("h"); __PYX_ERR(0, 262, __pyx_L1_error) } if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_w)) { __Pyx_RaiseClosureNameError("w"); __PYX_ERR(0, 262, __pyx_L1_error) } __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_h); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_h); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_h); __Pyx_INCREF(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_w); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_w); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_w); __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (__pyx_t_3 >= 2) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely((0 < 0))) __PYX_ERR(0, 262, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_x); __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_x, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_math); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_ceil); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_ratio)) { __Pyx_RaiseClosureNameError("ratio"); __PYX_ERR(0, 262, __pyx_L1_error) } __pyx_t_4 = PyNumber_Multiply(__pyx_cur_scope->__pyx_v_x, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_ratio); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_gs)) { __Pyx_RaiseClosureNameError("gs"); __PYX_ERR(0, 262, __pyx_L1_error) } __pyx_t_6 = __Pyx_PyNumber_Divide(__pyx_t_4, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_gs); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_7 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_6}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_gs)) { __Pyx_RaiseClosureNameError("gs"); __PYX_ERR(0, 262, __pyx_L1_error) } __pyx_t_5 = PyNumber_Multiply(__pyx_t_1, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_gs); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_5; __pyx_t_5 = 0; __Pyx_XGIVEREF(__pyx_t_2); __pyx_cur_scope->__pyx_t_0 = __pyx_t_2; __pyx_cur_scope->__pyx_t_1 = __pyx_t_3; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); __Pyx_Coroutine_ResetAndClearException(__pyx_generator); /* return from generator, yielding value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L6_resume_from_yield:; __pyx_t_2 = __pyx_cur_scope->__pyx_t_0; __pyx_cur_scope->__pyx_t_0 = 0; __Pyx_XGOTREF(__pyx_t_2); __pyx_t_3 = __pyx_cur_scope->__pyx_t_1; if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 262, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_Generator_Replace_StopIteration(0); __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; #if !CYTHON_USE_EXC_INFO_STACK __Pyx_Coroutine_ResetAndClearException(__pyx_generator); #endif __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":253 * * * def scale_img(img, ratio=1.0, same_shape=False, gs=32): # img(16,3,256,416) # <<<<<<<<<<<<<< * # scales img(bs,3,y,x) by ratio constrained to gs-multiple * if ratio == 1.0: */ static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_31scale_img(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_img, PyObject *__pyx_v_ratio, PyObject *__pyx_v_same_shape, PyObject *__pyx_v_gs) { struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img *__pyx_cur_scope; PyObject *__pyx_v_s = NULL; PyObject *__pyx_gb_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_9scale_img_2generator5 = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *(*__pyx_t_6)(PyObject *); int __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("scale_img", 0); __pyx_cur_scope = (struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img *)__pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img(__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(0, 253, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_ratio = __pyx_v_ratio; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_ratio); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_ratio); __pyx_cur_scope->__pyx_v_gs = __pyx_v_gs; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_gs); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_gs); __Pyx_INCREF(__pyx_v_img); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":255 * def scale_img(img, ratio=1.0, same_shape=False, gs=32): # img(16,3,256,416) * # scales img(bs,3,y,x) by ratio constrained to gs-multiple * if ratio == 1.0: # <<<<<<<<<<<<<< * return img * else: */ __pyx_t_1 = __Pyx_PyFloat_EqObjC(__pyx_cur_scope->__pyx_v_ratio, __pyx_float_1_0, 1.0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 255, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":256 * # scales img(bs,3,y,x) by ratio constrained to gs-multiple * if ratio == 1.0: * return img # <<<<<<<<<<<<<< * else: * h, w = img.shape[2:] */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_img); __pyx_r = __pyx_v_img; goto __pyx_L0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":255 * def scale_img(img, ratio=1.0, same_shape=False, gs=32): # img(16,3,256,416) * # scales img(bs,3,y,x) by ratio constrained to gs-multiple * if ratio == 1.0: # <<<<<<<<<<<<<< * return img * else: */ } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":258 * return img * else: * h, w = img.shape[2:] # <<<<<<<<<<<<<< * s = (int(h * ratio), int(w * ratio)) # new size * img = F.interpolate(img, size=s, mode='bilinear', align_corners=False) # resize */ /*else*/ { __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_img, __pyx_n_s_shape); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_t_1, 2, 0, NULL, NULL, &__pyx_slice__19, 1, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { PyObject* sequence = __pyx_t_3; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 258, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_1 = PyList_GET_ITEM(sequence, 0); __pyx_t_4 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_4); #else __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { Py_ssize_t index = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_5); index = 0; __pyx_t_1 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_1)) goto __pyx_L4_unpacking_failed; __Pyx_GOTREF(__pyx_t_1); index = 1; __pyx_t_4 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_4)) goto __pyx_L4_unpacking_failed; __Pyx_GOTREF(__pyx_t_4); if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 2) < 0) __PYX_ERR(0, 258, __pyx_L1_error) __pyx_t_6 = NULL; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L5_unpacking_done; __pyx_L4_unpacking_failed:; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_6 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 258, __pyx_L1_error) __pyx_L5_unpacking_done:; } __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_h = __pyx_t_1; __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_4); __pyx_cur_scope->__pyx_v_w = __pyx_t_4; __pyx_t_4 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":259 * else: * h, w = img.shape[2:] * s = (int(h * ratio), int(w * ratio)) # new size # <<<<<<<<<<<<<< * img = F.interpolate(img, size=s, mode='bilinear', align_corners=False) # resize * if not same_shape: # pad/crop img */ __pyx_t_3 = PyNumber_Multiply(__pyx_cur_scope->__pyx_v_h, __pyx_cur_scope->__pyx_v_ratio); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyNumber_Int(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Multiply(__pyx_cur_scope->__pyx_v_w, __pyx_cur_scope->__pyx_v_ratio); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_PyNumber_Int(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1); __pyx_t_4 = 0; __pyx_t_1 = 0; __pyx_v_s = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":260 * h, w = img.shape[2:] * s = (int(h * ratio), int(w * ratio)) # new size * img = F.interpolate(img, size=s, mode='bilinear', align_corners=False) # resize # <<<<<<<<<<<<<< * if not same_shape: # pad/crop img * h, w = (math.ceil(x * ratio / gs) * gs for x in (h, w)) */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_F); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 260, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_interpolate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 260, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 260, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_img); __Pyx_GIVEREF(__pyx_v_img); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_img); __pyx_t_4 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 260, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_size, __pyx_v_s) < 0) __PYX_ERR(0, 260, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_mode, __pyx_n_u_bilinear) < 0) __PYX_ERR(0, 260, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_align_corners, Py_False) < 0) __PYX_ERR(0, 260, __pyx_L1_error) __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 260, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF_SET(__pyx_v_img, __pyx_t_5); __pyx_t_5 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":261 * s = (int(h * ratio), int(w * ratio)) # new size * img = F.interpolate(img, size=s, mode='bilinear', align_corners=False) # resize * if not same_shape: # pad/crop img # <<<<<<<<<<<<<< * h, w = (math.ceil(x * ratio / gs) * gs for x in (h, w)) * return F.pad(img, [0, w - s[1], 0, h - s[0]], value=0.447) # value = imagenet mean */ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_same_shape); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 261, __pyx_L1_error) __pyx_t_7 = ((!__pyx_t_2) != 0); if (__pyx_t_7) { /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":262 * img = F.interpolate(img, size=s, mode='bilinear', align_corners=False) # resize * if not same_shape: # pad/crop img * h, w = (math.ceil(x * ratio / gs) * gs for x in (h, w)) # <<<<<<<<<<<<<< * return F.pad(img, [0, w - s[1], 0, h - s[0]], value=0.447) # value = imagenet mean * */ __pyx_t_5 = __pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_9scale_img_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) { PyObject* sequence = __pyx_t_5; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 262, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_4 = PyList_GET_ITEM(sequence, 0); __pyx_t_3 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_3); #else __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else { Py_ssize_t index = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_6 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); index = 0; __pyx_t_4 = __pyx_t_6(__pyx_t_1); if (unlikely(!__pyx_t_4)) goto __pyx_L7_unpacking_failed; __Pyx_GOTREF(__pyx_t_4); index = 1; __pyx_t_3 = __pyx_t_6(__pyx_t_1); if (unlikely(!__pyx_t_3)) goto __pyx_L7_unpacking_failed; __Pyx_GOTREF(__pyx_t_3); if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_1), 2) < 0) __PYX_ERR(0, 262, __pyx_L1_error) __pyx_t_6 = NULL; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L8_unpacking_done; __pyx_L7_unpacking_failed:; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_6 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 262, __pyx_L1_error) __pyx_L8_unpacking_done:; } __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_h); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_h, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_cur_scope->__pyx_v_w); __Pyx_DECREF_SET(__pyx_cur_scope->__pyx_v_w, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":261 * s = (int(h * ratio), int(w * ratio)) # new size * img = F.interpolate(img, size=s, mode='bilinear', align_corners=False) # resize * if not same_shape: # pad/crop img # <<<<<<<<<<<<<< * h, w = (math.ceil(x * ratio / gs) * gs for x in (h, w)) * return F.pad(img, [0, w - s[1], 0, h - s[0]], value=0.447) # value = imagenet mean */ } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":263 * if not same_shape: # pad/crop img * h, w = (math.ceil(x * ratio / gs) * gs for x in (h, w)) * return F.pad(img, [0, w - s[1], 0, h - s[0]], value=0.447) # value = imagenet mean # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_F); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_pad); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_GetItemInt_Tuple(__pyx_v_s, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = PyNumber_Subtract(__pyx_cur_scope->__pyx_v_w, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_GetItemInt_Tuple(__pyx_v_s, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = PyNumber_Subtract(__pyx_cur_scope->__pyx_v_h, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyList_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyList_SET_ITEM(__pyx_t_5, 0, __pyx_int_0); __Pyx_GIVEREF(__pyx_t_4); PyList_SET_ITEM(__pyx_t_5, 1, __pyx_t_4); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyList_SET_ITEM(__pyx_t_5, 2, __pyx_int_0); __Pyx_GIVEREF(__pyx_t_1); PyList_SET_ITEM(__pyx_t_5, 3, __pyx_t_1); __pyx_t_4 = 0; __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_img); __Pyx_GIVEREF(__pyx_v_img); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_img); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_value, __pyx_float_0_447) < 0) __PYX_ERR(0, 263, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0; } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":253 * * * def scale_img(img, ratio=1.0, same_shape=False, gs=32): # img(16,3,256,416) # <<<<<<<<<<<<<< * # scales img(bs,3,y,x) by ratio constrained to gs-multiple * if ratio == 1.0: */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.scale_img", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_s); __Pyx_XDECREF(__pyx_gb_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_9scale_img_2generator5); __Pyx_XDECREF(__pyx_v_img); __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":266 * * * def copy_attr(a, b, include=(), exclude=()): # <<<<<<<<<<<<<< * # Copy attributes from b to a, options to only include [...] and to exclude [...] * for k, v in b.__dict__.items(): */ /* Python wrapper */ static PyObject *__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_34copy_attr(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_34copy_attr = {"copy_attr", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_34copy_attr, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_34copy_attr(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_a = 0; PyObject *__pyx_v_b = 0; PyObject *__pyx_v_include = 0; PyObject *__pyx_v_exclude = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("copy_attr (wrapper)", 0); { #if CYTHON_USE_MODULE_STATE PyObject **__pyx_pyargnames[] = {&__pyx_n_s_a,&__pyx_n_s_b,&__pyx_n_s_include,&__pyx_n_s_exclude,0}; #else static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_a,&__pyx_n_s_b,&__pyx_n_s_include,&__pyx_n_s_exclude,0}; #endif PyObject* values[4] = {0,0,0,0}; values[2] = ((PyObject *)((PyObject*)__pyx_empty_tuple)); values[3] = ((PyObject *)((PyObject*)__pyx_empty_tuple)); if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_a)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 266, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_b)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 266, __pyx_L3_error) else { __Pyx_RaiseArgtupleInvalid("copy_attr", 0, 2, 4, 1); __PYX_ERR(0, 266, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_include); if (value) { values[2] = value; kw_args--; } else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 266, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_exclude); if (value) { values[3] = value; kw_args--; } else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 266, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "copy_attr") < 0)) __PYX_ERR(0, 266, __pyx_L3_error) } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_a = values[0]; __pyx_v_b = values[1]; __pyx_v_include = values[2]; __pyx_v_exclude = values[3]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("copy_attr", 0, 2, 4, __pyx_nargs); __PYX_ERR(0, 266, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.copy_attr", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_33copy_attr(__pyx_self, __pyx_v_a, __pyx_v_b, __pyx_v_include, __pyx_v_exclude); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_33copy_attr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_include, PyObject *__pyx_v_exclude) { PyObject *__pyx_v_k = NULL; PyObject *__pyx_v_v = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; Py_ssize_t __pyx_t_2; Py_ssize_t __pyx_t_3; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; int __pyx_t_7; int __pyx_t_8; Py_ssize_t __pyx_t_9; int __pyx_t_10; int __pyx_t_11; PyObject *__pyx_t_12 = NULL; int __pyx_t_13; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("copy_attr", 0); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":268 * def copy_attr(a, b, include=(), exclude=()): * # Copy attributes from b to a, options to only include [...] and to exclude [...] * for k, v in b.__dict__.items(): # <<<<<<<<<<<<<< * if (len(include) and k not in include) or k.startswith('_') or k in exclude: * continue */ __pyx_t_2 = 0; __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_b, __pyx_n_s_dict); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 268, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (unlikely(__pyx_t_5 == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items"); __PYX_ERR(0, 268, __pyx_L1_error) } __pyx_t_6 = __Pyx_dict_iterator(__pyx_t_5, 0, __pyx_n_s_items, (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 268, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = __pyx_t_6; __pyx_t_6 = 0; while (1) { __pyx_t_7 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_2, &__pyx_t_6, &__pyx_t_5, NULL, __pyx_t_4); if (unlikely(__pyx_t_7 == 0)) break; if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(0, 268, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_5); __Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF_SET(__pyx_v_v, __pyx_t_5); __pyx_t_5 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":269 * # Copy attributes from b to a, options to only include [...] and to exclude [...] * for k, v in b.__dict__.items(): * if (len(include) and k not in include) or k.startswith('_') or k in exclude: # <<<<<<<<<<<<<< * continue * else: */ __pyx_t_9 = PyObject_Length(__pyx_v_include); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 269, __pyx_L1_error) __pyx_t_10 = (__pyx_t_9 != 0); if (!__pyx_t_10) { goto __pyx_L7_next_or; } else { } __pyx_t_10 = (__Pyx_PySequence_ContainsTF(__pyx_v_k, __pyx_v_include, Py_NE)); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 269, __pyx_L1_error) __pyx_t_11 = (__pyx_t_10 != 0); if (!__pyx_t_11) { } else { __pyx_t_8 = __pyx_t_11; goto __pyx_L6_bool_binop_done; } __pyx_L7_next_or:; __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_k, __pyx_n_s_startswith); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_12 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_7 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_n_u__20}; __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(0, 269, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (!__pyx_t_11) { } else { __pyx_t_8 = __pyx_t_11; goto __pyx_L6_bool_binop_done; } __pyx_t_11 = (__Pyx_PySequence_ContainsTF(__pyx_v_k, __pyx_v_exclude, Py_EQ)); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(0, 269, __pyx_L1_error) __pyx_t_10 = (__pyx_t_11 != 0); __pyx_t_8 = __pyx_t_10; __pyx_L6_bool_binop_done:; if (__pyx_t_8) { /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":270 * for k, v in b.__dict__.items(): * if (len(include) and k not in include) or k.startswith('_') or k in exclude: * continue # <<<<<<<<<<<<<< * else: * setattr(a, k, v) */ goto __pyx_L3_continue; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":269 * # Copy attributes from b to a, options to only include [...] and to exclude [...] * for k, v in b.__dict__.items(): * if (len(include) and k not in include) or k.startswith('_') or k in exclude: # <<<<<<<<<<<<<< * continue * else: */ } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":272 * continue * else: * setattr(a, k, v) # <<<<<<<<<<<<<< * * */ /*else*/ { __pyx_t_13 = PyObject_SetAttr(__pyx_v_a, __pyx_v_k, __pyx_v_v); if (unlikely(__pyx_t_13 == ((int)-1))) __PYX_ERR(0, 272, __pyx_L1_error) } __pyx_L3_continue:; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":266 * * * def copy_attr(a, b, include=(), exclude=()): # <<<<<<<<<<<<<< * # Copy attributes from b to a, options to only include [...] and to exclude [...] * for k, v in b.__dict__.items(): */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_12); __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.copy_attr", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_k); __Pyx_XDECREF(__pyx_v_v); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":277 * class EarlyStopping: * # YOLOv5 simple early stopper * def __init__(self, patience=30): # <<<<<<<<<<<<<< * self.best_fitness = 0.0 # i.e. mAP * self.best_epoch = 0 */ /* Python wrapper */ static PyObject *__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_13EarlyStopping_1__init__(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_13EarlyStopping_1__init__ = {"__init__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_13EarlyStopping_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_13EarlyStopping_1__init__(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_self = 0; PyObject *__pyx_v_patience = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); { #if CYTHON_USE_MODULE_STATE PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_patience,0}; #else static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_patience,0}; #endif PyObject* values[2] = {0,0}; values[1] = ((PyObject *)((PyObject *)__pyx_int_30)); if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 277, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_patience); if (value) { values[1] = value; kw_args--; } else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 277, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 277, __pyx_L3_error) } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_self = values[0]; __pyx_v_patience = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 277, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.EarlyStopping.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_13EarlyStopping___init__(__pyx_self, __pyx_v_self, __pyx_v_patience); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_13EarlyStopping___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_patience) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; double __pyx_t_3; PyObject *__pyx_t_4 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":278 * # YOLOv5 simple early stopper * def __init__(self, patience=30): * self.best_fitness = 0.0 # i.e. mAP # <<<<<<<<<<<<<< * self.best_epoch = 0 * self.patience = patience or float('inf') # epochs to wait after fitness stops improving to stop */ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_best_fitness, __pyx_float_0_0) < 0) __PYX_ERR(0, 278, __pyx_L1_error) /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":279 * def __init__(self, patience=30): * self.best_fitness = 0.0 # i.e. mAP * self.best_epoch = 0 # <<<<<<<<<<<<<< * self.patience = patience or float('inf') # epochs to wait after fitness stops improving to stop * self.possible_stop = False # possible stop may occur next epoch */ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_best_epoch, __pyx_int_0) < 0) __PYX_ERR(0, 279, __pyx_L1_error) /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":280 * self.best_fitness = 0.0 # i.e. mAP * self.best_epoch = 0 * self.patience = patience or float('inf') # epochs to wait after fitness stops improving to stop # <<<<<<<<<<<<<< * self.possible_stop = False # possible stop may occur next epoch * */ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_patience); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 280, __pyx_L1_error) if (!__pyx_t_2) { } else { __Pyx_INCREF(__pyx_v_patience); __pyx_t_1 = __pyx_v_patience; goto __pyx_L3_bool_binop_done; } __pyx_t_3 = __Pyx_PyUnicode_AsDouble(__pyx_n_u_inf); if (unlikely(__pyx_t_3 == ((double)((double)-1)) && PyErr_Occurred())) __PYX_ERR(0, 280, __pyx_L1_error) __pyx_t_4 = PyFloat_FromDouble(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 280, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __pyx_t_4; __pyx_t_4 = 0; __pyx_L3_bool_binop_done:; if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_patience, __pyx_t_1) < 0) __PYX_ERR(0, 280, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":281 * self.best_epoch = 0 * self.patience = patience or float('inf') # epochs to wait after fitness stops improving to stop * self.possible_stop = False # possible stop may occur next epoch # <<<<<<<<<<<<<< * * def __call__(self, epoch, fitness): */ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_possible_stop, Py_False) < 0) __PYX_ERR(0, 281, __pyx_L1_error) /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":277 * class EarlyStopping: * # YOLOv5 simple early stopper * def __init__(self, patience=30): # <<<<<<<<<<<<<< * self.best_fitness = 0.0 # i.e. mAP * self.best_epoch = 0 */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.EarlyStopping.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":283 * self.possible_stop = False # possible stop may occur next epoch * * def __call__(self, epoch, fitness): # <<<<<<<<<<<<<< * if fitness >= self.best_fitness: # >= 0 to allow for early zero-fitness stage of training * self.best_epoch = epoch */ /* Python wrapper */ static PyObject *__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_13EarlyStopping_3__call__(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_13EarlyStopping_3__call__ = {"__call__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_13EarlyStopping_3__call__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_13EarlyStopping_3__call__(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_self = 0; PyObject *__pyx_v_epoch = 0; PyObject *__pyx_v_fitness = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__call__ (wrapper)", 0); { #if CYTHON_USE_MODULE_STATE PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_epoch,&__pyx_n_s_fitness,0}; #else static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_epoch,&__pyx_n_s_fitness,0}; #endif PyObject* values[3] = {0,0,0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 283, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_epoch)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 283, __pyx_L3_error) else { __Pyx_RaiseArgtupleInvalid("__call__", 1, 3, 3, 1); __PYX_ERR(0, 283, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fitness)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 283, __pyx_L3_error) else { __Pyx_RaiseArgtupleInvalid("__call__", 1, 3, 3, 2); __PYX_ERR(0, 283, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 283, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); } __pyx_v_self = values[0]; __pyx_v_epoch = values[1]; __pyx_v_fitness = values[2]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__call__", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 283, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.EarlyStopping.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_13EarlyStopping_2__call__(__pyx_self, __pyx_v_self, __pyx_v_epoch, __pyx_v_fitness); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_13EarlyStopping_2__call__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_epoch, PyObject *__pyx_v_fitness) { PyObject *__pyx_v_delta = NULL; PyObject *__pyx_v_stop = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; int __pyx_t_3; PyObject *__pyx_t_4 = NULL; Py_ssize_t __pyx_t_5; Py_UCS4 __pyx_t_6; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; int __pyx_t_9; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__call__", 0); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":284 * * def __call__(self, epoch, fitness): * if fitness >= self.best_fitness: # >= 0 to allow for early zero-fitness stage of training # <<<<<<<<<<<<<< * self.best_epoch = epoch * self.best_fitness = fitness */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_best_fitness); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_RichCompare(__pyx_v_fitness, __pyx_t_1, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 284, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 284, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_3) { /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":285 * def __call__(self, epoch, fitness): * if fitness >= self.best_fitness: # >= 0 to allow for early zero-fitness stage of training * self.best_epoch = epoch # <<<<<<<<<<<<<< * self.best_fitness = fitness * delta = epoch - self.best_epoch # epochs without improvement */ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_best_epoch, __pyx_v_epoch) < 0) __PYX_ERR(0, 285, __pyx_L1_error) /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":286 * if fitness >= self.best_fitness: # >= 0 to allow for early zero-fitness stage of training * self.best_epoch = epoch * self.best_fitness = fitness # <<<<<<<<<<<<<< * delta = epoch - self.best_epoch # epochs without improvement * self.possible_stop = delta >= (self.patience - 1) # possible stop may occur next epoch */ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_best_fitness, __pyx_v_fitness) < 0) __PYX_ERR(0, 286, __pyx_L1_error) /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":284 * * def __call__(self, epoch, fitness): * if fitness >= self.best_fitness: # >= 0 to allow for early zero-fitness stage of training # <<<<<<<<<<<<<< * self.best_epoch = epoch * self.best_fitness = fitness */ } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":287 * self.best_epoch = epoch * self.best_fitness = fitness * delta = epoch - self.best_epoch # epochs without improvement # <<<<<<<<<<<<<< * self.possible_stop = delta >= (self.patience - 1) # possible stop may occur next epoch * stop = delta >= self.patience # stop training if patience exceeded */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_best_epoch); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyNumber_Subtract(__pyx_v_epoch, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_delta = __pyx_t_1; __pyx_t_1 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":288 * self.best_fitness = fitness * delta = epoch - self.best_epoch # epochs without improvement * self.possible_stop = delta >= (self.patience - 1) # possible stop may occur next epoch # <<<<<<<<<<<<<< * stop = delta >= self.patience # stop training if patience exceeded * if stop: */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_patience); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyInt_SubtractObjC(__pyx_t_1, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_RichCompare(__pyx_v_delta, __pyx_t_2, Py_GE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 288, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_possible_stop, __pyx_t_1) < 0) __PYX_ERR(0, 288, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":289 * delta = epoch - self.best_epoch # epochs without improvement * self.possible_stop = delta >= (self.patience - 1) # possible stop may occur next epoch * stop = delta >= self.patience # stop training if patience exceeded # <<<<<<<<<<<<<< * if stop: * LOGGER.info(f'Stopping training early as no improvement observed in last {self.patience} epochs. ' */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_patience); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_RichCompare(__pyx_v_delta, __pyx_t_1, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 289, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_stop = __pyx_t_2; __pyx_t_2 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":290 * self.possible_stop = delta >= (self.patience - 1) # possible stop may occur next epoch * stop = delta >= self.patience # stop training if patience exceeded * if stop: # <<<<<<<<<<<<<< * LOGGER.info(f'Stopping training early as no improvement observed in last {self.patience} epochs. ' * f'Best results observed at epoch {self.best_epoch}, best model saved as best.pt.\n' */ __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_stop); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 290, __pyx_L1_error) if (__pyx_t_3) { /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":291 * stop = delta >= self.patience # stop training if patience exceeded * if stop: * LOGGER.info(f'Stopping training early as no improvement observed in last {self.patience} epochs. ' # <<<<<<<<<<<<<< * f'Best results observed at epoch {self.best_epoch}, best model saved as best.pt.\n' * f'To update EarlyStopping(patience={self.patience}) pass a new patience value, ' */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_LOGGER); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_info); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = 0; __pyx_t_6 = 127; __Pyx_INCREF(__pyx_kp_u_Stopping_training_early_as_no_im); __pyx_t_5 += 59; __Pyx_GIVEREF(__pyx_kp_u_Stopping_training_early_as_no_im); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_kp_u_Stopping_training_early_as_no_im); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_patience); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyObject_FormatSimple(__pyx_t_7, __pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_6 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) > __pyx_t_6) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) : __pyx_t_6; __pyx_t_5 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_8); __pyx_t_8 = 0; __Pyx_INCREF(__pyx_kp_u_epochs_Best_results_observed_at); __pyx_t_5 += 40; __Pyx_GIVEREF(__pyx_kp_u_epochs_Best_results_observed_at); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_kp_u_epochs_Best_results_observed_at); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":292 * if stop: * LOGGER.info(f'Stopping training early as no improvement observed in last {self.patience} epochs. ' * f'Best results observed at epoch {self.best_epoch}, best model saved as best.pt.\n' # <<<<<<<<<<<<<< * f'To update EarlyStopping(patience={self.patience}) pass a new patience value, ' * f'i.e. `python train.py --patience 300` or use `--patience 0` to disable EarlyStopping.') */ __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_best_epoch); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_7 = __Pyx_PyObject_FormatSimple(__pyx_t_8, __pyx_empty_unicode); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_6 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) > __pyx_t_6) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) : __pyx_t_6; __pyx_t_5 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_t_7); __pyx_t_7 = 0; __Pyx_INCREF(__pyx_kp_u_best_model_saved_as_best_pt_To); __pyx_t_5 += 64; __Pyx_GIVEREF(__pyx_kp_u_best_model_saved_as_best_pt_To); PyTuple_SET_ITEM(__pyx_t_1, 4, __pyx_kp_u_best_model_saved_as_best_pt_To); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":293 * LOGGER.info(f'Stopping training early as no improvement observed in last {self.patience} epochs. ' * f'Best results observed at epoch {self.best_epoch}, best model saved as best.pt.\n' * f'To update EarlyStopping(patience={self.patience}) pass a new patience value, ' # <<<<<<<<<<<<<< * f'i.e. `python train.py --patience 300` or use `--patience 0` to disable EarlyStopping.') * return stop */ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_patience); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyObject_FormatSimple(__pyx_t_7, __pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_6 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) > __pyx_t_6) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) : __pyx_t_6; __pyx_t_5 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_1, 5, __pyx_t_8); __pyx_t_8 = 0; __Pyx_INCREF(__pyx_kp_u_pass_a_new_patience_value_i_e_p); __pyx_t_5 += 114; __Pyx_GIVEREF(__pyx_kp_u_pass_a_new_patience_value_i_e_p); PyTuple_SET_ITEM(__pyx_t_1, 6, __pyx_kp_u_pass_a_new_patience_value_i_e_p); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":291 * stop = delta >= self.patience # stop training if patience exceeded * if stop: * LOGGER.info(f'Stopping training early as no improvement observed in last {self.patience} epochs. ' # <<<<<<<<<<<<<< * f'Best results observed at epoch {self.best_epoch}, best model saved as best.pt.\n' * f'To update EarlyStopping(patience={self.patience}) pass a new patience value, ' */ __pyx_t_8 = __Pyx_PyUnicode_Join(__pyx_t_1, 7, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; __pyx_t_9 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_9 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_8}; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":290 * self.possible_stop = delta >= (self.patience - 1) # possible stop may occur next epoch * stop = delta >= self.patience # stop training if patience exceeded * if stop: # <<<<<<<<<<<<<< * LOGGER.info(f'Stopping training early as no improvement observed in last {self.patience} epochs. ' * f'Best results observed at epoch {self.best_epoch}, best model saved as best.pt.\n' */ } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":295 * f'To update EarlyStopping(patience={self.patience}) pass a new patience value, ' * f'i.e. `python train.py --patience 300` or use `--patience 0` to disable EarlyStopping.') * return stop # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_stop); __pyx_r = __pyx_v_stop; goto __pyx_L0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":283 * self.possible_stop = False # possible stop may occur next epoch * * def __call__(self, epoch, fitness): # <<<<<<<<<<<<<< * if fitness >= self.best_fitness: # >= 0 to allow for early zero-fitness stage of training * self.best_epoch = epoch */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.EarlyStopping.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_delta); __Pyx_XDECREF(__pyx_v_stop); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":308 * """ * * def __init__(self, model, decay=0.9999, updates=0): # <<<<<<<<<<<<<< * # Create EMA * self.ema = deepcopy(de_parallel(model)).eval() # FP32 EMA */ /* Python wrapper */ static PyObject *__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_8ModelEMA_1__init__(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_8ModelEMA_1__init__ = {"__init__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_8ModelEMA_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_8ModelEMA_1__init__(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_self = 0; PyObject *__pyx_v_model = 0; PyObject *__pyx_v_decay = 0; PyObject *__pyx_v_updates = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); { #if CYTHON_USE_MODULE_STATE PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_model,&__pyx_n_s_decay,&__pyx_n_s_updates,0}; #else static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_model,&__pyx_n_s_decay,&__pyx_n_s_updates,0}; #endif PyObject* values[4] = {0,0,0,0}; values[2] = ((PyObject *)((PyObject*)__pyx_float_0_9999)); values[3] = ((PyObject *)((PyObject *)__pyx_int_0)); if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 308, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_model)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 308, __pyx_L3_error) else { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, 1); __PYX_ERR(0, 308, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_decay); if (value) { values[2] = value; kw_args--; } else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 308, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_updates); if (value) { values[3] = value; kw_args--; } else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 308, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 308, __pyx_L3_error) } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_self = values[0]; __pyx_v_model = values[1]; __pyx_v_decay = values[2]; __pyx_v_updates = values[3]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, __pyx_nargs); __PYX_ERR(0, 308, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.ModelEMA.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_8ModelEMA___init__(__pyx_self, __pyx_v_self, __pyx_v_model, __pyx_v_decay, __pyx_v_updates); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":314 * # self.ema.half() # FP16 EMA * self.updates = updates # number of EMA updates * self.decay = lambda x: decay * (1 - math.exp(-x / 2000)) # decay exponential ramp (to help early epochs) # <<<<<<<<<<<<<< * for p in self.ema.parameters(): * p.requires_grad_(False) */ /* Python wrapper */ static PyObject *__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_8ModelEMA_8__init___lambda5(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_8ModelEMA_8__init___lambda5 = {"lambda5", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_8ModelEMA_8__init___lambda5, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_8ModelEMA_8__init___lambda5(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_x = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("lambda5 (wrapper)", 0); { #if CYTHON_USE_MODULE_STATE PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,0}; #else static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,0}; #endif PyObject* values[1] = {0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_x)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 314, __pyx_L3_error) else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "lambda5") < 0)) __PYX_ERR(0, 314, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); } __pyx_v_x = values[0]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("lambda5", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 314, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.ModelEMA.__init__.lambda5", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_lambda_funcdef_lambda5(__pyx_self, __pyx_v_x); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_lambda_funcdef_lambda5(PyObject *__pyx_self, PyObject *__pyx_v_x) { struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__ *__pyx_cur_scope; struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__ *__pyx_outer_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("lambda5", 0); __pyx_outer_scope = (struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__ *) __Pyx_CyFunction_GetClosure(__pyx_self); __pyx_cur_scope = __pyx_outer_scope; __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_cur_scope->__pyx_v_decay)) { __Pyx_RaiseClosureNameError("decay"); __PYX_ERR(0, 314, __pyx_L1_error) } __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_math); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 314, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_exp); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 314, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Negative(__pyx_v_x); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 314, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyInt_TrueDivideObjC(__pyx_t_2, __pyx_int_2000, 0x7D0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 314, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_5 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 314, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_t_3 = __Pyx_PyInt_SubtractCObj(__pyx_int_1, __pyx_t_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 314, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyNumber_Multiply(__pyx_cur_scope->__pyx_v_decay, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 314, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.ModelEMA.__init__.lambda5", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":308 * """ * * def __init__(self, model, decay=0.9999, updates=0): # <<<<<<<<<<<<<< * # Create EMA * self.ema = deepcopy(de_parallel(model)).eval() # FP32 EMA */ static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_8ModelEMA___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_model, PyObject *__pyx_v_decay, PyObject *__pyx_v_updates) { struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__ *__pyx_cur_scope; PyObject *__pyx_v_p = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; int __pyx_t_7; Py_ssize_t __pyx_t_8; PyObject *(*__pyx_t_9)(PyObject *); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); __pyx_cur_scope = (struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__ *)__pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__(__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__ *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(0, 308, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_decay = __pyx_v_decay; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_decay); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_decay); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":310 * def __init__(self, model, decay=0.9999, updates=0): * # Create EMA * self.ema = deepcopy(de_parallel(model)).eval() # FP32 EMA # <<<<<<<<<<<<<< * # if next(model.parameters()).device.type != 'cpu': * # self.ema.half() # FP16 EMA */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_deepcopy); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 310, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_de_parallel); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 310, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_7 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_v_model}; __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 310, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_t_5 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_7 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 310, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_eval); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 310, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_7 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_2, }; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_7, 0+__pyx_t_7); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 310, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_ema, __pyx_t_1) < 0) __PYX_ERR(0, 310, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":313 * # if next(model.parameters()).device.type != 'cpu': * # self.ema.half() # FP16 EMA * self.updates = updates # number of EMA updates # <<<<<<<<<<<<<< * self.decay = lambda x: decay * (1 - math.exp(-x / 2000)) # decay exponential ramp (to help early epochs) * for p in self.ema.parameters(): */ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_updates, __pyx_v_updates) < 0) __PYX_ERR(0, 313, __pyx_L1_error) /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":314 * # self.ema.half() # FP16 EMA * self.updates = updates # number of EMA updates * self.decay = lambda x: decay * (1 - math.exp(-x / 2000)) # decay exponential ramp (to help early epochs) # <<<<<<<<<<<<<< * for p in self.ema.parameters(): * p.requires_grad_(False) */ __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_8ModelEMA_8__init___lambda5, 0, __pyx_n_s_ModelEMA___init___locals_lambda, ((PyObject*)__pyx_cur_scope), __pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils, __pyx_d, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 314, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_decay, __pyx_t_1) < 0) __PYX_ERR(0, 314, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":315 * self.updates = updates # number of EMA updates * self.decay = lambda x: decay * (1 - math.exp(-x / 2000)) # decay exponential ramp (to help early epochs) * for p in self.ema.parameters(): # <<<<<<<<<<<<<< * p.requires_grad_(False) * */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ema); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 315, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_parameters); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 315, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_7 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_3, }; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_7, 0+__pyx_t_7); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 315, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_8 = 0; __pyx_t_9 = NULL; } else { __pyx_t_8 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 315, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_9 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 315, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (likely(!__pyx_t_9)) { if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_8); __Pyx_INCREF(__pyx_t_1); __pyx_t_8++; if (unlikely((0 < 0))) __PYX_ERR(0, 315, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 315, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_8); __Pyx_INCREF(__pyx_t_1); __pyx_t_8++; if (unlikely((0 < 0))) __PYX_ERR(0, 315, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 315, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } } else { __pyx_t_1 = __pyx_t_9(__pyx_t_2); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 315, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_1); } __Pyx_XDECREF_SET(__pyx_v_p, __pyx_t_1); __pyx_t_1 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":316 * self.decay = lambda x: decay * (1 - math.exp(-x / 2000)) # decay exponential ramp (to help early epochs) * for p in self.ema.parameters(): * p.requires_grad_(False) # <<<<<<<<<<<<<< * * def update(self, model): */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_p, __pyx_n_s_requires_grad_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_7 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_4, Py_False}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":315 * self.updates = updates # number of EMA updates * self.decay = lambda x: decay * (1 - math.exp(-x / 2000)) # decay exponential ramp (to help early epochs) * for p in self.ema.parameters(): # <<<<<<<<<<<<<< * p.requires_grad_(False) * */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":308 * """ * * def __init__(self, model, decay=0.9999, updates=0): # <<<<<<<<<<<<<< * # Create EMA * self.ema = deepcopy(de_parallel(model)).eval() # FP32 EMA */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.ModelEMA.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_p); __Pyx_DECREF((PyObject *)__pyx_cur_scope); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":318 * p.requires_grad_(False) * * def update(self, model): # <<<<<<<<<<<<<< * # Update EMA parameters * with torch.no_grad(): */ /* Python wrapper */ static PyObject *__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_8ModelEMA_3update(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_8ModelEMA_3update = {"update", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_8ModelEMA_3update, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_8ModelEMA_3update(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_self = 0; PyObject *__pyx_v_model = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("update (wrapper)", 0); { #if CYTHON_USE_MODULE_STATE PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_model,0}; #else static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_model,0}; #endif PyObject* values[2] = {0,0}; if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 318, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_model)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 318, __pyx_L3_error) else { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, 1); __PYX_ERR(0, 318, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "update") < 0)) __PYX_ERR(0, 318, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); } __pyx_v_self = values[0]; __pyx_v_model = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 318, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.ModelEMA.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_8ModelEMA_2update(__pyx_self, __pyx_v_self, __pyx_v_model); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_8ModelEMA_2update(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_model) { PyObject *__pyx_v_d = NULL; PyObject *__pyx_v_msd = NULL; PyObject *__pyx_v_k = NULL; PyObject *__pyx_v_v = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; Py_ssize_t __pyx_t_10; Py_ssize_t __pyx_t_11; int __pyx_t_12; int __pyx_t_13; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; int __pyx_t_16; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("update", 0); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":320 * def update(self, model): * # Update EMA parameters * with torch.no_grad(): # <<<<<<<<<<<<<< * self.updates += 1 * d = self.decay(self.updates) */ /*with:*/ { __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_torch_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 320, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_no_grad); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 320, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_2, }; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 320, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_exit); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 320, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_enter); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 320, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_6, }; __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 320, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /*try:*/ { { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); /*try:*/ { /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":321 * # Update EMA parameters * with torch.no_grad(): * self.updates += 1 # <<<<<<<<<<<<<< * d = self.decay(self.updates) * */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_updates); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 321, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyInt_AddObjC(__pyx_t_1, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 321, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_updates, __pyx_t_3) < 0) __PYX_ERR(0, 321, __pyx_L7_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":322 * with torch.no_grad(): * self.updates += 1 * d = self.decay(self.updates) # <<<<<<<<<<<<<< * * msd = de_parallel(model).state_dict() # model state_dict */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_decay); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 322, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_updates); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 322, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_2}; __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 322, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __pyx_v_d = __pyx_t_3; __pyx_t_3 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":324 * d = self.decay(self.updates) * * msd = de_parallel(model).state_dict() # model state_dict # <<<<<<<<<<<<<< * for k, v in self.ema.state_dict().items(): * if v.dtype.is_floating_point: */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_de_parallel); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 324, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_v_model}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 324, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_state_dict); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 324, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_4 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_1, }; __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 324, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_v_msd = __pyx_t_3; __pyx_t_3 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":325 * * msd = de_parallel(model).state_dict() # model state_dict * for k, v in self.ema.state_dict().items(): # <<<<<<<<<<<<<< * if v.dtype.is_floating_point: * v *= d */ __pyx_t_10 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ema); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 325, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_state_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 325, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; __pyx_t_12 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_12 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_1, }; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_12, 0+__pyx_t_12); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 325, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } if (unlikely(__pyx_t_2 == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items"); __PYX_ERR(0, 325, __pyx_L7_error) } __pyx_t_6 = __Pyx_dict_iterator(__pyx_t_2, 0, __pyx_n_s_items, (&__pyx_t_11), (&__pyx_t_4)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 325, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = __pyx_t_6; __pyx_t_6 = 0; while (1) { __pyx_t_12 = __Pyx_dict_iter_next(__pyx_t_3, __pyx_t_11, &__pyx_t_10, &__pyx_t_6, &__pyx_t_2, NULL, __pyx_t_4); if (unlikely(__pyx_t_12 == 0)) break; if (unlikely(__pyx_t_12 == -1)) __PYX_ERR(0, 325, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_2); __Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF_SET(__pyx_v_v, __pyx_t_2); __pyx_t_2 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":326 * msd = de_parallel(model).state_dict() # model state_dict * for k, v in self.ema.state_dict().items(): * if v.dtype.is_floating_point: # <<<<<<<<<<<<<< * v *= d * v += (1 - d) * msd[k].detach() */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_v, __pyx_n_s_dtype); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 326, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_is_floating_point); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 326, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_13 < 0))) __PYX_ERR(0, 326, __pyx_L7_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_13) { /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":327 * for k, v in self.ema.state_dict().items(): * if v.dtype.is_floating_point: * v *= d # <<<<<<<<<<<<<< * v += (1 - d) * msd[k].detach() * */ __pyx_t_6 = PyNumber_InPlaceMultiply(__pyx_v_v, __pyx_v_d); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 327, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF_SET(__pyx_v_v, __pyx_t_6); __pyx_t_6 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":328 * if v.dtype.is_floating_point: * v *= d * v += (1 - d) * msd[k].detach() # <<<<<<<<<<<<<< * * def update_attr(self, model, include=(), exclude=('process_group', 'reducer')): */ __pyx_t_6 = __Pyx_PyInt_SubtractCObj(__pyx_int_1, __pyx_v_d, 1, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 328, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_msd, __pyx_v_k); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 328, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_detach); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 328, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; __pyx_t_12 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_14))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_14); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_14, function); __pyx_t_12 = 1; } } { PyObject *__pyx_callargs[1] = {__pyx_t_1, }; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_14, __pyx_callargs+1-__pyx_t_12, 0+__pyx_t_12); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 328, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; } __pyx_t_14 = PyNumber_Multiply(__pyx_t_6, __pyx_t_2); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 328, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_v, __pyx_t_14); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 328, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF_SET(__pyx_v_v, __pyx_t_2); __pyx_t_2 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":326 * msd = de_parallel(model).state_dict() # model state_dict * for k, v in self.ema.state_dict().items(): * if v.dtype.is_floating_point: # <<<<<<<<<<<<<< * v *= d * v += (1 - d) * msd[k].detach() */ } } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":320 * def update(self, model): * # Update EMA parameters * with torch.no_grad(): # <<<<<<<<<<<<<< * self.updates += 1 * d = self.decay(self.updates) */ } __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L12_try_end; __pyx_L7_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; /*except:*/ { __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.ModelEMA.update", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_2, &__pyx_t_14) < 0) __PYX_ERR(0, 320, __pyx_L9_except_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GOTREF(__pyx_t_2); __Pyx_GOTREF(__pyx_t_14); __pyx_t_6 = PyTuple_Pack(3, __pyx_t_3, __pyx_t_2, __pyx_t_14); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 320, __pyx_L9_except_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_6, NULL); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 320, __pyx_L9_except_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_15); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (__pyx_t_13 < 0) __PYX_ERR(0, 320, __pyx_L9_except_error) __pyx_t_16 = ((!(__pyx_t_13 != 0)) != 0); if (unlikely(__pyx_t_16)) { __Pyx_GIVEREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_ErrRestoreWithState(__pyx_t_3, __pyx_t_2, __pyx_t_14); __pyx_t_3 = 0; __pyx_t_2 = 0; __pyx_t_14 = 0; __PYX_ERR(0, 320, __pyx_L9_except_error) } __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; goto __pyx_L8_exception_handled; } __pyx_L9_except_error:; __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); __Pyx_XGIVEREF(__pyx_t_9); __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9); goto __pyx_L1_error; __pyx_L8_exception_handled:; __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); __Pyx_XGIVEREF(__pyx_t_9); __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9); __pyx_L12_try_end:; } } /*finally:*/ { /*normal exit:*/{ if (__pyx_t_5) { __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__21, NULL); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 320, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } goto __pyx_L6; } __pyx_L6:; } goto __pyx_L19; __pyx_L3_error:; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L1_error; __pyx_L19:; } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":318 * p.requires_grad_(False) * * def update(self, model): # <<<<<<<<<<<<<< * # Update EMA parameters * with torch.no_grad(): */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_14); __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.ModelEMA.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_d); __Pyx_XDECREF(__pyx_v_msd); __Pyx_XDECREF(__pyx_v_k); __Pyx_XDECREF(__pyx_v_v); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":330 * v += (1 - d) * msd[k].detach() * * def update_attr(self, model, include=(), exclude=('process_group', 'reducer')): # <<<<<<<<<<<<<< * # Update EMA attributes * copy_attr(self.ema, model, include, exclude) */ /* Python wrapper */ static PyObject *__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_8ModelEMA_5update_attr(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ static PyMethodDef __pyx_mdef_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_8ModelEMA_5update_attr = {"update_attr", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_8ModelEMA_5update_attr, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_8ModelEMA_5update_attr(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyObject *__pyx_v_self = 0; PyObject *__pyx_v_model = 0; PyObject *__pyx_v_include = 0; PyObject *__pyx_v_exclude = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("update_attr (wrapper)", 0); { #if CYTHON_USE_MODULE_STATE PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_model,&__pyx_n_s_include,&__pyx_n_s_exclude,0}; #else static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_model,&__pyx_n_s_include,&__pyx_n_s_exclude,0}; #endif PyObject* values[4] = {0,0,0,0}; values[2] = ((PyObject *)((PyObject*)__pyx_empty_tuple)); values[3] = ((PyObject *)((PyObject*)__pyx_tuple__22)); if (__pyx_kwds) { Py_ssize_t kw_args; switch (__pyx_nargs) { case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 330, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_model)) != 0)) kw_args--; else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 330, __pyx_L3_error) else { __Pyx_RaiseArgtupleInvalid("update_attr", 0, 2, 4, 1); __PYX_ERR(0, 330, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_include); if (value) { values[2] = value; kw_args--; } else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 330, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_exclude); if (value) { values[3] = value; kw_args--; } else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 330, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "update_attr") < 0)) __PYX_ERR(0, 330, __pyx_L3_error) } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_self = values[0]; __pyx_v_model = values[1]; __pyx_v_include = values[2]; __pyx_v_exclude = values[3]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("update_attr", 0, 2, 4, __pyx_nargs); __PYX_ERR(0, 330, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.ModelEMA.update_attr", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_8ModelEMA_4update_attr(__pyx_self, __pyx_v_self, __pyx_v_model, __pyx_v_include, __pyx_v_exclude); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_8ModelEMA_4update_attr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_model, PyObject *__pyx_v_include, PyObject *__pyx_v_exclude) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("update_attr", 0); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":332 * def update_attr(self, model, include=(), exclude=('process_group', 'reducer')): * # Update EMA attributes * copy_attr(self.ema, model, include, exclude) # <<<<<<<<<<<<<< */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_copy_attr); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 332, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ema); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 332, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_5 = 1; } } { PyObject *__pyx_callargs[5] = {__pyx_t_4, __pyx_t_3, __pyx_v_model, __pyx_v_include, __pyx_v_exclude}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 4+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 332, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":330 * v += (1 - d) * msd[k].detach() * * def update_attr(self, model, include=(), exclude=('process_group', 'reducer')): # <<<<<<<<<<<<<< * # Update EMA attributes * copy_attr(self.ema, model, include, exclude) */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils.ModelEMA.update_attr", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first *__pyx_freelist_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first[8]; static int __pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first = 0; static PyObject *__pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first)))) { o = (PyObject*)__pyx_freelist_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first[--__pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first]; memset(o, 0, sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } #endif return o; } static void __pyx_tp_dealloc_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first(PyObject *o) { struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first *p = (struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first *)o; PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_local_rank); if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first)))) { __pyx_freelist_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first[__pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first++] = ((struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first *p = (struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first *)o; if (p->__pyx_v_local_rank) { e = (*v)(p->__pyx_v_local_rank, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first}, {Py_tp_traverse, (void *)__pyx_tp_traverse_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first}, {Py_tp_new, (void *)__pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first}, {0, 0}, }; static PyType_Spec __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first_spec = { "pdf_toolbox.lib.dia_yolov5.utils.torch_utils.__pyx_scope_struct__torch_distributed_zero_first", sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first_slots, }; #else static PyTypeObject __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first = { PyVarObject_HEAD_INIT(0, 0) "pdf_toolbox.lib.dia_yolov5.utils.torch_utils.""__pyx_scope_struct__torch_distributed_zero_first", /*tp_name*/ sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile *__pyx_freelist_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile[8]; static int __pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile = 0; static PyObject *__pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile)))) { o = (PyObject*)__pyx_freelist_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile[--__pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile]; memset(o, 0, sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } #endif return o; } static void __pyx_tp_dealloc_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile(PyObject *o) { struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile *p = (struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile *)o; PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_m); Py_CLEAR(p->__pyx_v_y); if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile)))) { __pyx_freelist_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile[__pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile++] = ((struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile *p = (struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile *)o; if (p->__pyx_v_m) { e = (*v)(p->__pyx_v_m, a); if (e) return e; } if (p->__pyx_v_y) { e = (*v)(p->__pyx_v_y, a); if (e) return e; } return 0; } static int __pyx_tp_clear_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile(PyObject *o) { PyObject* tmp; struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile *p = (struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile *)o; tmp = ((PyObject*)p->__pyx_v_m); p->__pyx_v_m = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->__pyx_v_y); p->__pyx_v_y = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile}, {Py_tp_traverse, (void *)__pyx_tp_traverse_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile}, {Py_tp_clear, (void *)__pyx_tp_clear_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile}, {Py_tp_new, (void *)__pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile}, {0, 0}, }; static PyType_Spec __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile_spec = { "pdf_toolbox.lib.dia_yolov5.utils.torch_utils.__pyx_scope_struct_1_profile", sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile_slots, }; #else static PyTypeObject __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile = { PyVarObject_HEAD_INIT(0, 0) "pdf_toolbox.lib.dia_yolov5.utils.torch_utils.""__pyx_scope_struct_1_profile", /*tp_name*/ sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile, /*tp_traverse*/ __pyx_tp_clear_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr *__pyx_freelist_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr[8]; static int __pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr = 0; static PyObject *__pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr)))) { o = (PyObject*)__pyx_freelist_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr[--__pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr]; memset(o, 0, sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } #endif return o; } static void __pyx_tp_dealloc_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr(PyObject *o) { struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr *p = (struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr *)o; PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_outer_scope); Py_CLEAR(p->__pyx_v_yi); Py_CLEAR(p->__pyx_t_0); if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr)))) { __pyx_freelist_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr[__pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr++] = ((struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr *p = (struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr *)o; if (p->__pyx_outer_scope) { e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e; } if (p->__pyx_v_yi) { e = (*v)(p->__pyx_v_yi, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr}, {Py_tp_traverse, (void *)__pyx_tp_traverse_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr}, {Py_tp_new, (void *)__pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr}, {0, 0}, }; static PyType_Spec __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr_spec = { "pdf_toolbox.lib.dia_yolov5.utils.torch_utils.__pyx_scope_struct_2_genexpr", sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr_slots, }; #else static PyTypeObject __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr = { PyVarObject_HEAD_INIT(0, 0) "pdf_toolbox.lib.dia_yolov5.utils.torch_utils.""__pyx_scope_struct_2_genexpr", /*tp_name*/ sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr *__pyx_freelist_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr[8]; static int __pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr = 0; static PyObject *__pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr)))) { o = (PyObject*)__pyx_freelist_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr[--__pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr]; memset(o, 0, sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } #endif return o; } static void __pyx_tp_dealloc_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr(PyObject *o) { struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr *p = (struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr *)o; PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_outer_scope); Py_CLEAR(p->__pyx_v_x); if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr)))) { __pyx_freelist_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr[__pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr++] = ((struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr *p = (struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr *)o; if (p->__pyx_outer_scope) { e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e; } if (p->__pyx_v_x) { e = (*v)(p->__pyx_v_x, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr}, {Py_tp_traverse, (void *)__pyx_tp_traverse_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr}, {Py_tp_new, (void *)__pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr}, {0, 0}, }; static PyType_Spec __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr_spec = { "pdf_toolbox.lib.dia_yolov5.utils.torch_utils.__pyx_scope_struct_3_genexpr", sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr_slots, }; #else static PyTypeObject __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr = { PyVarObject_HEAD_INIT(0, 0) "pdf_toolbox.lib.dia_yolov5.utils.torch_utils.""__pyx_scope_struct_3_genexpr", /*tp_name*/ sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info *__pyx_freelist_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info[8]; static int __pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info = 0; static PyObject *__pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info)))) { o = (PyObject*)__pyx_freelist_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info[--__pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info]; memset(o, 0, sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } #endif return o; } static void __pyx_tp_dealloc_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info(PyObject *o) { struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info *p = (struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info *)o; PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_model); if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info)))) { __pyx_freelist_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info[__pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info++] = ((struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info *p = (struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info *)o; if (p->__pyx_v_model) { e = (*v)(p->__pyx_v_model, a); if (e) return e; } return 0; } static int __pyx_tp_clear_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info(PyObject *o) { PyObject* tmp; struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info *p = (struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info *)o; tmp = ((PyObject*)p->__pyx_v_model); p->__pyx_v_model = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info}, {Py_tp_traverse, (void *)__pyx_tp_traverse_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info}, {Py_tp_clear, (void *)__pyx_tp_clear_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info}, {Py_tp_new, (void *)__pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info}, {0, 0}, }; static PyType_Spec __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info_spec = { "pdf_toolbox.lib.dia_yolov5.utils.torch_utils.__pyx_scope_struct_4_model_info", sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info_slots, }; #else static PyTypeObject __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info = { PyVarObject_HEAD_INIT(0, 0) "pdf_toolbox.lib.dia_yolov5.utils.torch_utils.""__pyx_scope_struct_4_model_info", /*tp_name*/ sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info, /*tp_traverse*/ __pyx_tp_clear_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr *__pyx_freelist_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr[8]; static int __pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr = 0; static PyObject *__pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr)))) { o = (PyObject*)__pyx_freelist_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr[--__pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr]; memset(o, 0, sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } #endif return o; } static void __pyx_tp_dealloc_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr(PyObject *o) { struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr *p = (struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr *)o; PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_outer_scope); Py_CLEAR(p->__pyx_v_x); Py_CLEAR(p->__pyx_t_0); if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr)))) { __pyx_freelist_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr[__pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr++] = ((struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr *p = (struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr *)o; if (p->__pyx_outer_scope) { e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e; } if (p->__pyx_v_x) { e = (*v)(p->__pyx_v_x, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr}, {Py_tp_traverse, (void *)__pyx_tp_traverse_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr}, {Py_tp_new, (void *)__pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr}, {0, 0}, }; static PyType_Spec __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr_spec = { "pdf_toolbox.lib.dia_yolov5.utils.torch_utils.__pyx_scope_struct_5_genexpr", sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr_slots, }; #else static PyTypeObject __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr = { PyVarObject_HEAD_INIT(0, 0) "pdf_toolbox.lib.dia_yolov5.utils.torch_utils.""__pyx_scope_struct_5_genexpr", /*tp_name*/ sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr *__pyx_freelist_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr[8]; static int __pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr = 0; static PyObject *__pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr)))) { o = (PyObject*)__pyx_freelist_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr[--__pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr]; memset(o, 0, sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } #endif return o; } static void __pyx_tp_dealloc_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr(PyObject *o) { struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr *p = (struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr *)o; PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_outer_scope); Py_CLEAR(p->__pyx_v_x); Py_CLEAR(p->__pyx_t_0); if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr)))) { __pyx_freelist_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr[__pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr++] = ((struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr *p = (struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr *)o; if (p->__pyx_outer_scope) { e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e; } if (p->__pyx_v_x) { e = (*v)(p->__pyx_v_x, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr}, {Py_tp_traverse, (void *)__pyx_tp_traverse_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr}, {Py_tp_new, (void *)__pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr}, {0, 0}, }; static PyType_Spec __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr_spec = { "pdf_toolbox.lib.dia_yolov5.utils.torch_utils.__pyx_scope_struct_6_genexpr", sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr_slots, }; #else static PyTypeObject __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr = { PyVarObject_HEAD_INIT(0, 0) "pdf_toolbox.lib.dia_yolov5.utils.torch_utils.""__pyx_scope_struct_6_genexpr", /*tp_name*/ sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img *__pyx_freelist_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img[8]; static int __pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img = 0; static PyObject *__pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img)))) { o = (PyObject*)__pyx_freelist_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img[--__pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img]; memset(o, 0, sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } #endif return o; } static void __pyx_tp_dealloc_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img(PyObject *o) { struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img *p = (struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img *)o; PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_gs); Py_CLEAR(p->__pyx_v_h); Py_CLEAR(p->__pyx_v_ratio); Py_CLEAR(p->__pyx_v_w); if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img)))) { __pyx_freelist_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img[__pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img++] = ((struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img *p = (struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img *)o; if (p->__pyx_v_gs) { e = (*v)(p->__pyx_v_gs, a); if (e) return e; } if (p->__pyx_v_h) { e = (*v)(p->__pyx_v_h, a); if (e) return e; } if (p->__pyx_v_ratio) { e = (*v)(p->__pyx_v_ratio, a); if (e) return e; } if (p->__pyx_v_w) { e = (*v)(p->__pyx_v_w, a); if (e) return e; } return 0; } static int __pyx_tp_clear_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img(PyObject *o) { PyObject* tmp; struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img *p = (struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img *)o; tmp = ((PyObject*)p->__pyx_v_gs); p->__pyx_v_gs = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->__pyx_v_h); p->__pyx_v_h = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->__pyx_v_ratio); p->__pyx_v_ratio = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->__pyx_v_w); p->__pyx_v_w = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img}, {Py_tp_traverse, (void *)__pyx_tp_traverse_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img}, {Py_tp_clear, (void *)__pyx_tp_clear_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img}, {Py_tp_new, (void *)__pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img}, {0, 0}, }; static PyType_Spec __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img_spec = { "pdf_toolbox.lib.dia_yolov5.utils.torch_utils.__pyx_scope_struct_7_scale_img", sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img_slots, }; #else static PyTypeObject __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img = { PyVarObject_HEAD_INIT(0, 0) "pdf_toolbox.lib.dia_yolov5.utils.torch_utils.""__pyx_scope_struct_7_scale_img", /*tp_name*/ sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img, /*tp_traverse*/ __pyx_tp_clear_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr *__pyx_freelist_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr[8]; static int __pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr = 0; static PyObject *__pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr)))) { o = (PyObject*)__pyx_freelist_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr[--__pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr]; memset(o, 0, sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } #endif return o; } static void __pyx_tp_dealloc_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr(PyObject *o) { struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr *p = (struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr *)o; PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_outer_scope); Py_CLEAR(p->__pyx_v_x); Py_CLEAR(p->__pyx_t_0); if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr)))) { __pyx_freelist_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr[__pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr++] = ((struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr *p = (struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr *)o; if (p->__pyx_outer_scope) { e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e; } if (p->__pyx_v_x) { e = (*v)(p->__pyx_v_x, a); if (e) return e; } if (p->__pyx_t_0) { e = (*v)(p->__pyx_t_0, a); if (e) return e; } return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr}, {Py_tp_traverse, (void *)__pyx_tp_traverse_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr}, {Py_tp_new, (void *)__pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr}, {0, 0}, }; static PyType_Spec __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr_spec = { "pdf_toolbox.lib.dia_yolov5.utils.torch_utils.__pyx_scope_struct_8_genexpr", sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr_slots, }; #else static PyTypeObject __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr = { PyVarObject_HEAD_INIT(0, 0) "pdf_toolbox.lib.dia_yolov5.utils.torch_utils.""__pyx_scope_struct_8_genexpr", /*tp_name*/ sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 0, /*tp_pypy_flags*/ #endif }; #endif static struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__ *__pyx_freelist_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__[8]; static int __pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__ = 0; static PyObject *__pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { PyObject *o; #if CYTHON_COMPILING_IN_LIMITED_API allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); o = alloc_func(t, 0); #else if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__ > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__)))) { o = (PyObject*)__pyx_freelist_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__[--__pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__]; memset(o, 0, sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__)); (void) PyObject_INIT(o, t); PyObject_GC_Track(o); } else { o = (*t->tp_alloc)(t, 0); if (unlikely(!o)) return 0; } #endif return o; } static void __pyx_tp_dealloc_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__(PyObject *o) { struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__ *p = (struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__ *)o; PyObject_GC_UnTrack(o); Py_CLEAR(p->__pyx_v_decay); if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__ < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__)))) { __pyx_freelist_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__[__pyx_freecount_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__++] = ((struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__ *)o); } else { (*Py_TYPE(o)->tp_free)(o); } } static int __pyx_tp_traverse_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__ *p = (struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__ *)o; if (p->__pyx_v_decay) { e = (*v)(p->__pyx_v_decay, a); if (e) return e; } return 0; } static int __pyx_tp_clear_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__(PyObject *o) { PyObject* tmp; struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__ *p = (struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__ *)o; tmp = ((PyObject*)p->__pyx_v_decay); p->__pyx_v_decay = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); return 0; } #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init___slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__}, {Py_tp_traverse, (void *)__pyx_tp_traverse_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__}, {Py_tp_clear, (void *)__pyx_tp_clear_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__}, {Py_tp_new, (void *)__pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__}, {0, 0}, }; static PyType_Spec __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init___spec = { "pdf_toolbox.lib.dia_yolov5.utils.torch_utils.__pyx_scope_struct_9___init__", sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__), 0, Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init___slots, }; #else static PyTypeObject __pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__ = { PyVarObject_HEAD_INIT(0, 0) "pdf_toolbox.lib.dia_yolov5.utils.torch_utils.""__pyx_scope_struct_9___init__", /*tp_name*/ sizeof(struct __pyx_obj_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__, /*tp_traverse*/ __pyx_tp_clear_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ 0, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ #if !CYTHON_USE_TYPE_SPECS 0, /*tp_dictoffset*/ #endif 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 #if CYTHON_USE_TP_FINALIZE 0, /*tp_finalize*/ #else NULL, /*tp_finalize*/ #endif #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 0, /*tp_pypy_flags*/ #endif }; #endif static PyMethodDef __pyx_methods[] = { {0, 0, 0, 0} }; #ifndef CYTHON_SMALL_CODE #if defined(__clang__) #define CYTHON_SMALL_CODE #elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) #define CYTHON_SMALL_CODE __attribute__((cold)) #else #define CYTHON_SMALL_CODE #endif #endif /* #### Code section: pystring_table ### */ static __Pyx_StringTabEntry __pyx_string_tab[] = { #if CYTHON_USE_MODULE_STATE {0, __pyx_k_0, sizeof(__pyx_k_0), 0, 1, 0, 0}, {0, __pyx_k_0f, sizeof(__pyx_k_0f), 0, 1, 0, 0}, {0, __pyx_k_1, sizeof(__pyx_k_1), 0, 1, 0, 0}, {0, __pyx_k_10, sizeof(__pyx_k_10), 0, 1, 0, 0}, {0, __pyx_k_12, sizeof(__pyx_k_12), 0, 1, 0, 0}, {0, __pyx_k_12_2, sizeof(__pyx_k_12_2), 0, 1, 0, 0}, {0, __pyx_k_12_4g, sizeof(__pyx_k_12_4g), 0, 1, 0, 0}, {0, __pyx_k_12s, sizeof(__pyx_k_12s), 0, 1, 0, 0}, {0, __pyx_k_14_3f, sizeof(__pyx_k_14_3f), 0, 1, 0, 0}, {0, __pyx_k_14_4g, sizeof(__pyx_k_14_4g), 0, 1, 0, 0}, {0, __pyx_k_14s, sizeof(__pyx_k_14s), 0, 1, 0, 0}, {0, __pyx_k_1f_GFLOPs, sizeof(__pyx_k_1f_GFLOPs), 0, 1, 0, 0}, {0, __pyx_k_20, sizeof(__pyx_k_20), 0, 1, 0, 0}, {0, __pyx_k_24s, sizeof(__pyx_k_24s), 0, 1, 0, 0}, {0, __pyx_k_3g_global_sparsity, sizeof(__pyx_k_3g_global_sparsity), 0, 1, 0, 0}, {0, __pyx_k_40, sizeof(__pyx_k_40), 0, 1, 0, 0}, {0, __pyx_k_5, sizeof(__pyx_k_5), 0, 1, 0, 0}, {0, __pyx_k_5g_40s_9s_12g_20s_10_3g_10_3g, sizeof(__pyx_k_5g_40s_9s_12g_20s_10_3g_10_3g), 0, 1, 0, 0}, {0, __pyx_k_9, sizeof(__pyx_k_9), 0, 1, 0, 0}, {0, __pyx_k_AssertionError, sizeof(__pyx_k_AssertionError), 0, 0, 1, 1}, {0, __pyx_k_BatchNorm2d, sizeof(__pyx_k_BatchNorm2d), 0, 0, 1, 1}, {0, __pyx_k_CPU, sizeof(__pyx_k_CPU), 0, 1, 0, 1}, {0, __pyx_k_CUDA, sizeof(__pyx_k_CUDA), 0, 1, 0, 0}, {0, __pyx_k_CUDA_VISIBLE_DEVICES, sizeof(__pyx_k_CUDA_VISIBLE_DEVICES), 0, 1, 0, 1}, {0, __pyx_k_CalledProcessError, sizeof(__pyx_k_CalledProcessError), 0, 0, 1, 1}, {0, __pyx_k_Conv2d, sizeof(__pyx_k_Conv2d), 0, 0, 1, 1}, {0, __pyx_k_DataParallel, sizeof(__pyx_k_DataParallel), 0, 0, 1, 1}, {0, __pyx_k_DistributedDataParallel, sizeof(__pyx_k_DistributedDataParallel), 0, 0, 1, 1}, {0, __pyx_k_EarlyStopping, sizeof(__pyx_k_EarlyStopping), 0, 0, 1, 1}, {0, __pyx_k_EarlyStopping___call, sizeof(__pyx_k_EarlyStopping___call), 0, 0, 1, 1}, {0, __pyx_k_EarlyStopping___init, sizeof(__pyx_k_EarlyStopping___init), 0, 0, 1, 1}, {0, __pyx_k_F, sizeof(__pyx_k_F), 0, 0, 1, 1}, {0, __pyx_k_GFLOPs, sizeof(__pyx_k_GFLOPs), 0, 1, 0, 1}, {0, __pyx_k_GPU_mem_GB, sizeof(__pyx_k_GPU_mem_GB), 0, 1, 0, 0}, {0, __pyx_k_Hardswish, sizeof(__pyx_k_Hardswish), 0, 0, 1, 1}, {0, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1}, {0, __pyx_k_Invalid_CUDA_device, sizeof(__pyx_k_Invalid_CUDA_device), 0, 1, 0, 0}, {0, __pyx_k_LOGGER, sizeof(__pyx_k_LOGGER), 0, 0, 1, 1}, {0, __pyx_k_LeakyReLU, sizeof(__pyx_k_LeakyReLU), 0, 0, 1, 1}, {0, __pyx_k_Linux, sizeof(__pyx_k_Linux), 0, 1, 0, 1}, {0, __pyx_k_MiB, sizeof(__pyx_k_MiB), 0, 1, 0, 0}, {0, __pyx_k_ModelEMA, sizeof(__pyx_k_ModelEMA), 0, 0, 1, 1}, {0, __pyx_k_ModelEMA___init, sizeof(__pyx_k_ModelEMA___init), 0, 0, 1, 1}, {0, __pyx_k_ModelEMA___init___locals_lambda, sizeof(__pyx_k_ModelEMA___init___locals_lambda), 0, 0, 1, 1}, {0, __pyx_k_ModelEMA_update, sizeof(__pyx_k_ModelEMA_update), 0, 0, 1, 1}, {0, __pyx_k_ModelEMA_update_attr, sizeof(__pyx_k_ModelEMA_update_attr), 0, 0, 1, 1}, {0, __pyx_k_Model_Exponential_Moving_Averag, sizeof(__pyx_k_Model_Exponential_Moving_Averag), 0, 0, 1, 0}, {0, __pyx_k_Model_Summary, sizeof(__pyx_k_Model_Summary), 0, 1, 0, 0}, {0, __pyx_k_Module, sizeof(__pyx_k_Module), 0, 0, 1, 1}, {0, __pyx_k_None, sizeof(__pyx_k_None), 0, 1, 0, 0}, {0, __pyx_k_Params, sizeof(__pyx_k_Params), 0, 1, 0, 1}, {0, __pyx_k_Path, sizeof(__pyx_k_Path), 0, 0, 1, 1}, {0, __pyx_k_Pruning_model, sizeof(__pyx_k_Pruning_model), 0, 1, 0, 0}, {0, __pyx_k_ReLU, sizeof(__pyx_k_ReLU), 0, 0, 1, 1}, {0, __pyx_k_ReLU6, sizeof(__pyx_k_ReLU6), 0, 0, 1, 1}, {0, __pyx_k_STDOUT, sizeof(__pyx_k_STDOUT), 0, 0, 1, 1}, {0, __pyx_k_SiLU, sizeof(__pyx_k_SiLU), 0, 0, 1, 1}, {0, __pyx_k_Stopping_training_early_as_no_im, sizeof(__pyx_k_Stopping_training_early_as_no_im), 0, 1, 0, 0}, {0, __pyx_k_Tensor, sizeof(__pyx_k_Tensor), 0, 0, 1, 1}, {0, __pyx_k_Windows, sizeof(__pyx_k_Windows), 0, 1, 0, 1}, {0, __pyx_k_YOLOv5, sizeof(__pyx_k_YOLOv5), 0, 1, 0, 0}, {0, __pyx_k__10, sizeof(__pyx_k__10), 0, 1, 0, 0}, {0, __pyx_k__13, sizeof(__pyx_k__13), 0, 0, 1, 1}, {0, __pyx_k__17, sizeof(__pyx_k__17), 0, 1, 0, 0}, {0, __pyx_k__2, sizeof(__pyx_k__2), 0, 1, 0, 0}, {0, __pyx_k__20, sizeof(__pyx_k__20), 0, 0, 1, 1}, {0, __pyx_k__20, sizeof(__pyx_k__20), 0, 1, 0, 1}, {0, __pyx_k__4, sizeof(__pyx_k__4), 0, 1, 0, 0}, {0, __pyx_k__5, sizeof(__pyx_k__5), 0, 1, 0, 0}, {0, __pyx_k__7, sizeof(__pyx_k__7), 0, 1, 0, 0}, {0, __pyx_k__76, sizeof(__pyx_k__76), 0, 0, 1, 1}, {0, __pyx_k__9, sizeof(__pyx_k__9), 0, 1, 0, 0}, {0, __pyx_k_a, sizeof(__pyx_k_a), 0, 0, 1, 1}, {0, __pyx_k_align_corners, sizeof(__pyx_k_align_corners), 0, 0, 1, 1}, {0, __pyx_k_amount, sizeof(__pyx_k_amount), 0, 0, 1, 1}, {0, __pyx_k_args, sizeof(__pyx_k_args), 0, 0, 1, 1}, {0, __pyx_k_ascii, sizeof(__pyx_k_ascii), 0, 1, 0, 1}, {0, __pyx_k_asyncio_coroutines, sizeof(__pyx_k_asyncio_coroutines), 0, 0, 1, 1}, {0, __pyx_k_b, sizeof(__pyx_k_b), 0, 0, 1, 1}, {0, __pyx_k_b_bn, sizeof(__pyx_k_b_bn), 0, 0, 1, 1}, {0, __pyx_k_b_conv, sizeof(__pyx_k_b_conv), 0, 0, 1, 1}, {0, __pyx_k_backward, sizeof(__pyx_k_backward), 0, 0, 1, 1}, {0, __pyx_k_backward_ms, sizeof(__pyx_k_backward_ms), 0, 1, 0, 0}, {0, __pyx_k_barrier, sizeof(__pyx_k_barrier), 0, 0, 1, 1}, {0, __pyx_k_batch_size, sizeof(__pyx_k_batch_size), 0, 0, 1, 1}, {0, __pyx_k_batch_size_2, sizeof(__pyx_k_batch_size_2), 0, 1, 0, 0}, {0, __pyx_k_best_epoch, sizeof(__pyx_k_best_epoch), 0, 0, 1, 1}, {0, __pyx_k_best_fitness, sizeof(__pyx_k_best_fitness), 0, 0, 1, 1}, {0, __pyx_k_best_model_saved_as_best_pt_To, sizeof(__pyx_k_best_model_saved_as_best_pt_To), 0, 1, 0, 0}, {0, __pyx_k_bias, sizeof(__pyx_k_bias), 0, 0, 1, 1}, {0, __pyx_k_bilinear, sizeof(__pyx_k_bilinear), 0, 1, 0, 1}, {0, __pyx_k_bn, sizeof(__pyx_k_bn), 0, 0, 1, 1}, {0, __pyx_k_call, sizeof(__pyx_k_call), 0, 0, 1, 1}, {0, __pyx_k_capture_output, sizeof(__pyx_k_capture_output), 0, 0, 1, 1}, {0, __pyx_k_ceil, sizeof(__pyx_k_ceil), 0, 0, 1, 1}, {0, __pyx_k_ch, sizeof(__pyx_k_ch), 0, 1, 0, 1}, {0, __pyx_k_check, sizeof(__pyx_k_check), 0, 0, 1, 1}, {0, __pyx_k_check_output, sizeof(__pyx_k_check_output), 0, 0, 1, 1}, {0, __pyx_k_class_getitem, sizeof(__pyx_k_class_getitem), 0, 0, 1, 1}, {0, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, {0, __pyx_k_clone, sizeof(__pyx_k_clone), 0, 0, 1, 1}, {0, __pyx_k_close, sizeof(__pyx_k_close), 0, 0, 1, 1}, {0, __pyx_k_cmd, sizeof(__pyx_k_cmd), 0, 0, 1, 1}, {0, __pyx_k_contextlib, sizeof(__pyx_k_contextlib), 0, 0, 1, 1}, {0, __pyx_k_contextmanager, sizeof(__pyx_k_contextmanager), 0, 0, 1, 1}, {0, __pyx_k_conv, sizeof(__pyx_k_conv), 0, 0, 1, 1}, {0, __pyx_k_copy, sizeof(__pyx_k_copy), 0, 0, 1, 1}, {0, __pyx_k_copy_2, sizeof(__pyx_k_copy_2), 0, 0, 1, 1}, {0, __pyx_k_copy_attr, sizeof(__pyx_k_copy_attr), 0, 0, 1, 1}, {0, __pyx_k_cpu, sizeof(__pyx_k_cpu), 0, 0, 1, 1}, {0, __pyx_k_cpu, sizeof(__pyx_k_cpu), 0, 1, 0, 1}, {0, __pyx_k_cuda, sizeof(__pyx_k_cuda), 0, 1, 0, 0}, {0, __pyx_k_cuda_0, sizeof(__pyx_k_cuda_0), 0, 1, 0, 0}, {0, __pyx_k_cuda_2, sizeof(__pyx_k_cuda_2), 0, 0, 1, 1}, {0, __pyx_k_d, sizeof(__pyx_k_d), 0, 0, 1, 1}, {0, __pyx_k_date_modified, sizeof(__pyx_k_date_modified), 0, 0, 1, 1}, {0, __pyx_k_datetime, sizeof(__pyx_k_datetime), 0, 0, 1, 1}, {0, __pyx_k_day, sizeof(__pyx_k_day), 0, 0, 1, 1}, {0, __pyx_k_de_parallel, sizeof(__pyx_k_de_parallel), 0, 0, 1, 1}, {0, __pyx_k_decay, sizeof(__pyx_k_decay), 0, 0, 1, 1}, {0, __pyx_k_decode, sizeof(__pyx_k_decode), 0, 0, 1, 1}, {0, __pyx_k_deepcopy, sizeof(__pyx_k_deepcopy), 0, 0, 1, 1}, {0, __pyx_k_delta, sizeof(__pyx_k_delta), 0, 0, 1, 1}, {0, __pyx_k_describe_tags_long_always, sizeof(__pyx_k_describe_tags_long_always), 0, 1, 0, 0}, {0, __pyx_k_detach, sizeof(__pyx_k_detach), 0, 0, 1, 1}, {0, __pyx_k_device, sizeof(__pyx_k_device), 0, 0, 1, 1}, {0, __pyx_k_device_count, sizeof(__pyx_k_device_count), 0, 0, 1, 1}, {0, __pyx_k_device_count_function_only_works, sizeof(__pyx_k_device_count_function_only_works), 0, 1, 0, 0}, {0, __pyx_k_device_ids, sizeof(__pyx_k_device_ids), 0, 0, 1, 1}, {0, __pyx_k_devices, sizeof(__pyx_k_devices), 0, 0, 1, 1}, {0, __pyx_k_diag, sizeof(__pyx_k_diag), 0, 0, 1, 1}, {0, __pyx_k_dict, sizeof(__pyx_k_dict), 0, 0, 1, 1}, {0, __pyx_k_disable, sizeof(__pyx_k_disable), 0, 1, 0, 0}, {0, __pyx_k_dist, sizeof(__pyx_k_dist), 0, 0, 1, 1}, {0, __pyx_k_distributed, sizeof(__pyx_k_distributed), 0, 0, 1, 1}, {0, __pyx_k_div, sizeof(__pyx_k_div), 0, 0, 1, 1}, {0, __pyx_k_doc, sizeof(__pyx_k_doc), 0, 0, 1, 1}, {0, __pyx_k_dtype, sizeof(__pyx_k_dtype), 0, 0, 1, 1}, {0, __pyx_k_e, sizeof(__pyx_k_e), 0, 0, 1, 1}, {0, __pyx_k_ema, sizeof(__pyx_k_ema), 0, 0, 1, 1}, {0, __pyx_k_empty_cache, sizeof(__pyx_k_empty_cache), 0, 0, 1, 1}, {0, __pyx_k_enable, sizeof(__pyx_k_enable), 0, 1, 0, 0}, {0, __pyx_k_encode, sizeof(__pyx_k_encode), 0, 0, 1, 1}, {0, __pyx_k_end, sizeof(__pyx_k_end), 0, 0, 1, 1}, {0, __pyx_k_enter, sizeof(__pyx_k_enter), 0, 0, 1, 1}, {0, __pyx_k_enumerate, sizeof(__pyx_k_enumerate), 0, 0, 1, 1}, {0, __pyx_k_environ, sizeof(__pyx_k_environ), 0, 0, 1, 1}, {0, __pyx_k_epoch, sizeof(__pyx_k_epoch), 0, 0, 1, 1}, {0, __pyx_k_epochs_Best_results_observed_at, sizeof(__pyx_k_epochs_Best_results_observed_at), 0, 1, 0, 0}, {0, __pyx_k_eps, sizeof(__pyx_k_eps), 0, 0, 1, 1}, {0, __pyx_k_eval, sizeof(__pyx_k_eval), 0, 0, 1, 1}, {0, __pyx_k_exclude, sizeof(__pyx_k_exclude), 0, 0, 1, 1}, {0, __pyx_k_exit, sizeof(__pyx_k_exit), 0, 0, 1, 1}, {0, __pyx_k_exp, sizeof(__pyx_k_exp), 0, 0, 1, 1}, {0, __pyx_k_file, sizeof(__pyx_k_file), 0, 0, 1, 1}, {0, __pyx_k_find_modules, sizeof(__pyx_k_find_modules), 0, 0, 1, 1}, {0, __pyx_k_fitness, sizeof(__pyx_k_fitness), 0, 0, 1, 1}, {0, __pyx_k_float16, sizeof(__pyx_k_float16), 0, 0, 1, 1}, {0, __pyx_k_flops, sizeof(__pyx_k_flops), 0, 0, 1, 1}, {0, __pyx_k_forward_ms, sizeof(__pyx_k_forward_ms), 0, 1, 0, 0}, {0, __pyx_k_fromtimestamp, sizeof(__pyx_k_fromtimestamp), 0, 0, 1, 1}, {0, __pyx_k_fs, sizeof(__pyx_k_fs), 0, 0, 1, 1}, {0, __pyx_k_functional, sizeof(__pyx_k_functional), 0, 0, 1, 1}, {0, __pyx_k_fuse_conv_and_bn, sizeof(__pyx_k_fuse_conv_and_bn), 0, 0, 1, 1}, {0, __pyx_k_fusedconv, sizeof(__pyx_k_fusedconv), 0, 0, 1, 1}, {0, __pyx_k_gc, sizeof(__pyx_k_gc), 0, 1, 0, 0}, {0, __pyx_k_genexpr, sizeof(__pyx_k_genexpr), 0, 0, 1, 1}, {0, __pyx_k_get, sizeof(__pyx_k_get), 0, 0, 1, 1}, {0, __pyx_k_get_device_properties, sizeof(__pyx_k_get_device_properties), 0, 0, 1, 1}, {0, __pyx_k_git_C, sizeof(__pyx_k_git_C), 0, 1, 0, 0}, {0, __pyx_k_git_describe, sizeof(__pyx_k_git_describe), 0, 0, 1, 1}, {0, __pyx_k_gradient, sizeof(__pyx_k_gradient), 0, 1, 0, 1}, {0, __pyx_k_gradients, sizeof(__pyx_k_gradients), 0, 1, 0, 0}, {0, __pyx_k_groups, sizeof(__pyx_k_groups), 0, 0, 1, 1}, {0, __pyx_k_gs, sizeof(__pyx_k_gs), 0, 0, 1, 1}, {0, __pyx_k_h, sizeof(__pyx_k_h), 0, 0, 1, 1}, {0, __pyx_k_half, sizeof(__pyx_k_half), 0, 0, 1, 1}, {0, __pyx_k_half, sizeof(__pyx_k_half), 0, 1, 0, 1}, {0, __pyx_k_i, sizeof(__pyx_k_i), 0, 0, 1, 1}, {0, __pyx_k_ignore, sizeof(__pyx_k_ignore), 0, 1, 0, 1}, {0, __pyx_k_img, sizeof(__pyx_k_img), 0, 0, 1, 1}, {0, __pyx_k_img_size, sizeof(__pyx_k_img_size), 0, 0, 1, 1}, {0, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1}, {0, __pyx_k_in_channels, sizeof(__pyx_k_in_channels), 0, 0, 1, 1}, {0, __pyx_k_include, sizeof(__pyx_k_include), 0, 0, 1, 1}, {0, __pyx_k_inf, sizeof(__pyx_k_inf), 0, 1, 0, 1}, {0, __pyx_k_info, sizeof(__pyx_k_info), 0, 0, 1, 1}, {0, __pyx_k_init, sizeof(__pyx_k_init), 0, 0, 1, 1}, {0, __pyx_k_init_subclass, sizeof(__pyx_k_init_subclass), 0, 0, 1, 1}, {0, __pyx_k_initialize_weights, sizeof(__pyx_k_initialize_weights), 0, 0, 1, 1}, {0, __pyx_k_initializing, sizeof(__pyx_k_initializing), 0, 0, 1, 1}, {0, __pyx_k_inplace, sizeof(__pyx_k_inplace), 0, 0, 1, 1}, {0, __pyx_k_input, sizeof(__pyx_k_input), 0, 0, 1, 1}, {0, __pyx_k_input, sizeof(__pyx_k_input), 0, 1, 0, 1}, {0, __pyx_k_inputs, sizeof(__pyx_k_inputs), 0, 0, 1, 1}, {0, __pyx_k_int, sizeof(__pyx_k_int), 0, 0, 1, 1}, {0, __pyx_k_interpolate, sizeof(__pyx_k_interpolate), 0, 0, 1, 1}, {0, __pyx_k_is_available, sizeof(__pyx_k_is_available), 0, 0, 1, 1}, {0, __pyx_k_is_coroutine, sizeof(__pyx_k_is_coroutine), 0, 0, 1, 1}, {0, __pyx_k_is_floating_point, sizeof(__pyx_k_is_floating_point), 0, 0, 1, 1}, {0, __pyx_k_is_parallel, sizeof(__pyx_k_is_parallel), 0, 0, 1, 1}, {0, __pyx_k_isenabled, sizeof(__pyx_k_isenabled), 0, 1, 0, 0}, {0, __pyx_k_items, sizeof(__pyx_k_items), 0, 0, 1, 1}, {0, __pyx_k_k, sizeof(__pyx_k_k), 0, 0, 1, 1}, {0, __pyx_k_kernel_size, sizeof(__pyx_k_kernel_size), 0, 0, 1, 1}, {0, __pyx_k_l1_unstructured, sizeof(__pyx_k_l1_unstructured), 0, 0, 1, 1}, {0, __pyx_k_layer, sizeof(__pyx_k_layer), 0, 1, 0, 1}, {0, __pyx_k_layers, sizeof(__pyx_k_layers), 0, 1, 0, 0}, {0, __pyx_k_list, sizeof(__pyx_k_list), 0, 1, 0, 1}, {0, __pyx_k_local_rank, sizeof(__pyx_k_local_rank), 0, 0, 1, 1}, {0, __pyx_k_lower, sizeof(__pyx_k_lower), 0, 0, 1, 1}, {0, __pyx_k_m, sizeof(__pyx_k_m), 0, 0, 1, 1}, {0, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, {0, __pyx_k_math, sizeof(__pyx_k_math), 0, 0, 1, 1}, {0, __pyx_k_max, sizeof(__pyx_k_max), 0, 0, 1, 1}, {0, __pyx_k_mclass, sizeof(__pyx_k_mclass), 0, 0, 1, 1}, {0, __pyx_k_mean, sizeof(__pyx_k_mean), 0, 0, 1, 1}, {0, __pyx_k_mem, sizeof(__pyx_k_mem), 0, 0, 1, 1}, {0, __pyx_k_memory_reserved, sizeof(__pyx_k_memory_reserved), 0, 0, 1, 1}, {0, __pyx_k_metaclass, sizeof(__pyx_k_metaclass), 0, 0, 1, 1}, {0, __pyx_k_mm, sizeof(__pyx_k_mm), 0, 0, 1, 1}, {0, __pyx_k_mode, sizeof(__pyx_k_mode), 0, 0, 1, 1}, {0, __pyx_k_model, sizeof(__pyx_k_model), 0, 0, 1, 1}, {0, __pyx_k_model_info, sizeof(__pyx_k_model_info), 0, 0, 1, 1}, {0, __pyx_k_model_info_locals_genexpr, sizeof(__pyx_k_model_info_locals_genexpr), 0, 0, 1, 1}, {0, __pyx_k_module, sizeof(__pyx_k_module), 0, 0, 1, 1}, {0, __pyx_k_module_2, sizeof(__pyx_k_module_2), 0, 0, 1, 1}, {0, __pyx_k_module_list, sizeof(__pyx_k_module_list), 0, 0, 1, 1}, {0, __pyx_k_module_list_2, sizeof(__pyx_k_module_list_2), 0, 1, 0, 0}, {0, __pyx_k_modules, sizeof(__pyx_k_modules), 0, 0, 1, 1}, {0, __pyx_k_momentum, sizeof(__pyx_k_momentum), 0, 0, 1, 1}, {0, __pyx_k_month, sizeof(__pyx_k_month), 0, 0, 1, 1}, {0, __pyx_k_msd, sizeof(__pyx_k_msd), 0, 0, 1, 1}, {0, __pyx_k_mu, sizeof(__pyx_k_mu), 0, 1, 0, 1}, {0, __pyx_k_mul, sizeof(__pyx_k_mul), 0, 0, 1, 1}, {0, __pyx_k_n, sizeof(__pyx_k_n), 0, 0, 1, 1}, {0, __pyx_k_n_g, sizeof(__pyx_k_n_g), 0, 0, 1, 1}, {0, __pyx_k_n_p, sizeof(__pyx_k_n_p), 0, 0, 1, 1}, {0, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, {0, __pyx_k_name, sizeof(__pyx_k_name), 0, 1, 0, 1}, {0, __pyx_k_name_2, sizeof(__pyx_k_name_2), 0, 0, 1, 1}, {0, __pyx_k_named_modules, sizeof(__pyx_k_named_modules), 0, 0, 1, 1}, {0, __pyx_k_named_parameters, sizeof(__pyx_k_named_parameters), 0, 0, 1, 1}, {0, __pyx_k_nan, sizeof(__pyx_k_nan), 0, 1, 0, 1}, {0, __pyx_k_newline, sizeof(__pyx_k_newline), 0, 0, 1, 1}, {0, __pyx_k_nn, sizeof(__pyx_k_nn), 0, 0, 1, 1}, {0, __pyx_k_no_grad, sizeof(__pyx_k_no_grad), 0, 0, 1, 1}, {0, __pyx_k_not_multiple_of_GPU_count, sizeof(__pyx_k_not_multiple_of_GPU_count), 0, 1, 0, 0}, {0, __pyx_k_numel, sizeof(__pyx_k_numel), 0, 0, 1, 1}, {0, __pyx_k_nvidia_smi_L_wc_l, sizeof(__pyx_k_nvidia_smi_L_wc_l), 0, 1, 0, 0}, {0, __pyx_k_ops, sizeof(__pyx_k_ops), 0, 0, 1, 1}, {0, __pyx_k_os, sizeof(__pyx_k_os), 0, 0, 1, 1}, {0, __pyx_k_out_channels, sizeof(__pyx_k_out_channels), 0, 0, 1, 1}, {0, __pyx_k_output, sizeof(__pyx_k_output), 0, 1, 0, 1}, {0, __pyx_k_p, sizeof(__pyx_k_p), 0, 0, 1, 1}, {0, __pyx_k_pad, sizeof(__pyx_k_pad), 0, 0, 1, 1}, {0, __pyx_k_padding, sizeof(__pyx_k_padding), 0, 0, 1, 1}, {0, __pyx_k_parallel, sizeof(__pyx_k_parallel), 0, 0, 1, 1}, {0, __pyx_k_parameters, sizeof(__pyx_k_parameters), 0, 0, 1, 1}, {0, __pyx_k_parameters, sizeof(__pyx_k_parameters), 0, 1, 0, 1}, {0, __pyx_k_parameters_2, sizeof(__pyx_k_parameters_2), 0, 1, 0, 0}, {0, __pyx_k_parent, sizeof(__pyx_k_parent), 0, 0, 1, 1}, {0, __pyx_k_pass_a_new_patience_value_i_e_p, sizeof(__pyx_k_pass_a_new_patience_value_i_e_p), 0, 1, 0, 0}, {0, __pyx_k_path, sizeof(__pyx_k_path), 0, 0, 1, 1}, {0, __pyx_k_pathlib, sizeof(__pyx_k_pathlib), 0, 0, 1, 1}, {0, __pyx_k_patience, sizeof(__pyx_k_patience), 0, 0, 1, 1}, {0, __pyx_k_pdf_toolbox_lib_dia_yolov5_utils, sizeof(__pyx_k_pdf_toolbox_lib_dia_yolov5_utils), 0, 0, 1, 1}, {0, __pyx_k_pdf_toolbox_lib_dia_yolov5_utils_2, sizeof(__pyx_k_pdf_toolbox_lib_dia_yolov5_utils_2), 0, 0, 1, 1}, {0, __pyx_k_pdf_toolbox_lib_dia_yolov5_utils_3, sizeof(__pyx_k_pdf_toolbox_lib_dia_yolov5_utils_3), 0, 0, 1, 0}, {0, __pyx_k_platform, sizeof(__pyx_k_platform), 0, 0, 1, 1}, {0, __pyx_k_possible_stop, sizeof(__pyx_k_possible_stop), 0, 0, 1, 1}, {0, __pyx_k_prepare, sizeof(__pyx_k_prepare), 0, 0, 1, 1}, {0, __pyx_k_print, sizeof(__pyx_k_print), 0, 0, 1, 1}, {0, __pyx_k_process_group, sizeof(__pyx_k_process_group), 0, 1, 0, 1}, {0, __pyx_k_profile, sizeof(__pyx_k_profile), 0, 0, 1, 1}, {0, __pyx_k_profile_locals_genexpr, sizeof(__pyx_k_profile_locals_genexpr), 0, 0, 1, 1}, {0, __pyx_k_prune, sizeof(__pyx_k_prune), 0, 0, 1, 1}, {0, __pyx_k_qualname, sizeof(__pyx_k_qualname), 0, 0, 1, 1}, {0, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, {0, __pyx_k_ratio, sizeof(__pyx_k_ratio), 0, 0, 1, 1}, {0, __pyx_k_reducer, sizeof(__pyx_k_reducer), 0, 1, 0, 1}, {0, __pyx_k_remove, sizeof(__pyx_k_remove), 0, 0, 1, 1}, {0, __pyx_k_replace, sizeof(__pyx_k_replace), 0, 0, 1, 1}, {0, __pyx_k_requested_use_device_cpu_or_pas, sizeof(__pyx_k_requested_use_device_cpu_or_pas), 0, 1, 0, 0}, {0, __pyx_k_requires_grad, sizeof(__pyx_k_requires_grad), 0, 0, 1, 1}, {0, __pyx_k_requires_grad_2, sizeof(__pyx_k_requires_grad_2), 0, 0, 1, 1}, {0, __pyx_k_reshape, sizeof(__pyx_k_reshape), 0, 0, 1, 1}, {0, __pyx_k_results, sizeof(__pyx_k_results), 0, 0, 1, 1}, {0, __pyx_k_rstrip, sizeof(__pyx_k_rstrip), 0, 0, 1, 1}, {0, __pyx_k_run, sizeof(__pyx_k_run), 0, 0, 1, 1}, {0, __pyx_k_running_mean, sizeof(__pyx_k_running_mean), 0, 0, 1, 1}, {0, __pyx_k_running_var, sizeof(__pyx_k_running_var), 0, 0, 1, 1}, {0, __pyx_k_s, sizeof(__pyx_k_s), 0, 0, 1, 1}, {0, __pyx_k_s_in, sizeof(__pyx_k_s_in), 0, 0, 1, 1}, {0, __pyx_k_s_out, sizeof(__pyx_k_s_out), 0, 0, 1, 1}, {0, __pyx_k_same_shape, sizeof(__pyx_k_same_shape), 0, 0, 1, 1}, {0, __pyx_k_scale_img, sizeof(__pyx_k_scale_img), 0, 0, 1, 1}, {0, __pyx_k_scale_img_locals_genexpr, sizeof(__pyx_k_scale_img_locals_genexpr), 0, 0, 1, 1}, {0, __pyx_k_select_device, sizeof(__pyx_k_select_device), 0, 0, 1, 1}, {0, __pyx_k_self, sizeof(__pyx_k_self), 0, 0, 1, 1}, {0, __pyx_k_send, sizeof(__pyx_k_send), 0, 0, 1, 1}, {0, __pyx_k_set_name, sizeof(__pyx_k_set_name), 0, 0, 1, 1}, {0, __pyx_k_shape, sizeof(__pyx_k_shape), 0, 0, 1, 1}, {0, __pyx_k_shape, sizeof(__pyx_k_shape), 0, 1, 0, 1}, {0, __pyx_k_shell, sizeof(__pyx_k_shell), 0, 0, 1, 1}, {0, __pyx_k_sigma, sizeof(__pyx_k_sigma), 0, 1, 0, 1}, {0, __pyx_k_size, sizeof(__pyx_k_size), 0, 0, 1, 1}, {0, __pyx_k_space, sizeof(__pyx_k_space), 0, 0, 1, 1}, {0, __pyx_k_sparsity, sizeof(__pyx_k_sparsity), 0, 0, 1, 1}, {0, __pyx_k_spec, sizeof(__pyx_k_spec), 0, 0, 1, 1}, {0, __pyx_k_split, sizeof(__pyx_k_split), 0, 0, 1, 1}, {0, __pyx_k_sqrt, sizeof(__pyx_k_sqrt), 0, 0, 1, 1}, {0, __pyx_k_st_mtime, sizeof(__pyx_k_st_mtime), 0, 0, 1, 1}, {0, __pyx_k_startswith, sizeof(__pyx_k_startswith), 0, 0, 1, 1}, {0, __pyx_k_stat, sizeof(__pyx_k_stat), 0, 0, 1, 1}, {0, __pyx_k_state_dict, sizeof(__pyx_k_state_dict), 0, 0, 1, 1}, {0, __pyx_k_std, sizeof(__pyx_k_std), 0, 0, 1, 1}, {0, __pyx_k_stderr, sizeof(__pyx_k_stderr), 0, 0, 1, 1}, {0, __pyx_k_stdout, sizeof(__pyx_k_stdout), 0, 0, 1, 1}, {0, __pyx_k_stop, sizeof(__pyx_k_stop), 0, 0, 1, 1}, {0, __pyx_k_stride, sizeof(__pyx_k_stride), 0, 0, 1, 1}, {0, __pyx_k_stride, sizeof(__pyx_k_stride), 0, 1, 0, 1}, {0, __pyx_k_strip, sizeof(__pyx_k_strip), 0, 0, 1, 1}, {0, __pyx_k_subprocess, sizeof(__pyx_k_subprocess), 0, 0, 1, 1}, {0, __pyx_k_sum, sizeof(__pyx_k_sum), 0, 0, 1, 1}, {0, __pyx_k_super, sizeof(__pyx_k_super), 0, 0, 1, 1}, {0, __pyx_k_synchronize, sizeof(__pyx_k_synchronize), 0, 0, 1, 1}, {0, __pyx_k_sys, sizeof(__pyx_k_sys), 0, 0, 1, 1}, {0, __pyx_k_system, sizeof(__pyx_k_system), 0, 0, 1, 1}, {0, __pyx_k_t, sizeof(__pyx_k_t), 0, 0, 1, 1}, {0, __pyx_k_tb, sizeof(__pyx_k_tb), 0, 0, 1, 1}, {0, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, {0, __pyx_k_tf, sizeof(__pyx_k_tf), 0, 0, 1, 1}, {0, __pyx_k_thop, sizeof(__pyx_k_thop), 0, 0, 1, 1}, {0, __pyx_k_throw, sizeof(__pyx_k_throw), 0, 0, 1, 1}, {0, __pyx_k_time, sizeof(__pyx_k_time), 0, 0, 1, 1}, {0, __pyx_k_time_sync, sizeof(__pyx_k_time_sync), 0, 0, 1, 1}, {0, __pyx_k_to, sizeof(__pyx_k_to), 0, 0, 1, 1}, {0, __pyx_k_to, sizeof(__pyx_k_to), 0, 1, 0, 1}, {0, __pyx_k_torch, sizeof(__pyx_k_torch), 0, 1, 0, 0}, {0, __pyx_k_torch_2, sizeof(__pyx_k_torch_2), 0, 0, 1, 1}, {0, __pyx_k_torch_distributed, sizeof(__pyx_k_torch_distributed), 0, 0, 1, 1}, {0, __pyx_k_torch_distributed_zero_first, sizeof(__pyx_k_torch_distributed_zero_first), 0, 0, 1, 1}, {0, __pyx_k_torch_nn, sizeof(__pyx_k_torch_nn), 0, 0, 1, 1}, {0, __pyx_k_torch_nn_functional, sizeof(__pyx_k_torch_nn_functional), 0, 0, 1, 1}, {0, __pyx_k_torch_nn_utils_prune, sizeof(__pyx_k_torch_nn_utils_prune), 0, 0, 1, 1}, {0, __pyx_k_total_memory, sizeof(__pyx_k_total_memory), 0, 0, 1, 1}, {0, __pyx_k_update, sizeof(__pyx_k_update), 0, 0, 1, 1}, {0, __pyx_k_update_attr, sizeof(__pyx_k_update_attr), 0, 0, 1, 1}, {0, __pyx_k_updates, sizeof(__pyx_k_updates), 0, 0, 1, 1}, {0, __pyx_k_utils, sizeof(__pyx_k_utils), 0, 0, 1, 1}, {0, __pyx_k_v, sizeof(__pyx_k_v), 0, 0, 1, 1}, {0, __pyx_k_value, sizeof(__pyx_k_value), 0, 0, 1, 1}, {0, __pyx_k_verbose, sizeof(__pyx_k_verbose), 0, 0, 1, 1}, {0, __pyx_k_version, sizeof(__pyx_k_version), 0, 0, 1, 1}, {0, __pyx_k_view, sizeof(__pyx_k_view), 0, 0, 1, 1}, {0, __pyx_k_w, sizeof(__pyx_k_w), 0, 0, 1, 1}, {0, __pyx_k_w_bn, sizeof(__pyx_k_w_bn), 0, 0, 1, 1}, {0, __pyx_k_w_conv, sizeof(__pyx_k_w_conv), 0, 0, 1, 1}, {0, __pyx_k_weight, sizeof(__pyx_k_weight), 0, 0, 1, 1}, {0, __pyx_k_weight, sizeof(__pyx_k_weight), 0, 1, 0, 1}, {0, __pyx_k_x, sizeof(__pyx_k_x), 0, 0, 1, 1}, {0, __pyx_k_y, sizeof(__pyx_k_y), 0, 0, 1, 1}, {0, __pyx_k_yaml, sizeof(__pyx_k_yaml), 0, 0, 1, 1}, {0, __pyx_k_year, sizeof(__pyx_k_year), 0, 0, 1, 1}, {0, __pyx_k_zeros, sizeof(__pyx_k_zeros), 0, 0, 1, 1}, #else {&__pyx_kp_u_0, __pyx_k_0, sizeof(__pyx_k_0), 0, 1, 0, 0}, {&__pyx_kp_u_0f, __pyx_k_0f, sizeof(__pyx_k_0f), 0, 1, 0, 0}, {&__pyx_kp_u_1, __pyx_k_1, sizeof(__pyx_k_1), 0, 1, 0, 0}, {&__pyx_kp_u_10, __pyx_k_10, sizeof(__pyx_k_10), 0, 1, 0, 0}, {&__pyx_kp_u_12, __pyx_k_12, sizeof(__pyx_k_12), 0, 1, 0, 0}, {&__pyx_kp_u_12_2, __pyx_k_12_2, sizeof(__pyx_k_12_2), 0, 1, 0, 0}, {&__pyx_kp_u_12_4g, __pyx_k_12_4g, sizeof(__pyx_k_12_4g), 0, 1, 0, 0}, {&__pyx_kp_u_12s, __pyx_k_12s, sizeof(__pyx_k_12s), 0, 1, 0, 0}, {&__pyx_kp_u_14_3f, __pyx_k_14_3f, sizeof(__pyx_k_14_3f), 0, 1, 0, 0}, {&__pyx_kp_u_14_4g, __pyx_k_14_4g, sizeof(__pyx_k_14_4g), 0, 1, 0, 0}, {&__pyx_kp_u_14s, __pyx_k_14s, sizeof(__pyx_k_14s), 0, 1, 0, 0}, {&__pyx_kp_u_1f_GFLOPs, __pyx_k_1f_GFLOPs, sizeof(__pyx_k_1f_GFLOPs), 0, 1, 0, 0}, {&__pyx_kp_u_20, __pyx_k_20, sizeof(__pyx_k_20), 0, 1, 0, 0}, {&__pyx_kp_u_24s, __pyx_k_24s, sizeof(__pyx_k_24s), 0, 1, 0, 0}, {&__pyx_kp_u_3g_global_sparsity, __pyx_k_3g_global_sparsity, sizeof(__pyx_k_3g_global_sparsity), 0, 1, 0, 0}, {&__pyx_kp_u_40, __pyx_k_40, sizeof(__pyx_k_40), 0, 1, 0, 0}, {&__pyx_kp_u_5, __pyx_k_5, sizeof(__pyx_k_5), 0, 1, 0, 0}, {&__pyx_kp_u_5g_40s_9s_12g_20s_10_3g_10_3g, __pyx_k_5g_40s_9s_12g_20s_10_3g_10_3g, sizeof(__pyx_k_5g_40s_9s_12g_20s_10_3g_10_3g), 0, 1, 0, 0}, {&__pyx_kp_u_9, __pyx_k_9, sizeof(__pyx_k_9), 0, 1, 0, 0}, {&__pyx_n_s_AssertionError, __pyx_k_AssertionError, sizeof(__pyx_k_AssertionError), 0, 0, 1, 1}, {&__pyx_n_s_BatchNorm2d, __pyx_k_BatchNorm2d, sizeof(__pyx_k_BatchNorm2d), 0, 0, 1, 1}, {&__pyx_n_u_CPU, __pyx_k_CPU, sizeof(__pyx_k_CPU), 0, 1, 0, 1}, {&__pyx_kp_u_CUDA, __pyx_k_CUDA, sizeof(__pyx_k_CUDA), 0, 1, 0, 0}, {&__pyx_n_u_CUDA_VISIBLE_DEVICES, __pyx_k_CUDA_VISIBLE_DEVICES, sizeof(__pyx_k_CUDA_VISIBLE_DEVICES), 0, 1, 0, 1}, {&__pyx_n_s_CalledProcessError, __pyx_k_CalledProcessError, sizeof(__pyx_k_CalledProcessError), 0, 0, 1, 1}, {&__pyx_n_s_Conv2d, __pyx_k_Conv2d, sizeof(__pyx_k_Conv2d), 0, 0, 1, 1}, {&__pyx_n_s_DataParallel, __pyx_k_DataParallel, sizeof(__pyx_k_DataParallel), 0, 0, 1, 1}, {&__pyx_n_s_DistributedDataParallel, __pyx_k_DistributedDataParallel, sizeof(__pyx_k_DistributedDataParallel), 0, 0, 1, 1}, {&__pyx_n_s_EarlyStopping, __pyx_k_EarlyStopping, sizeof(__pyx_k_EarlyStopping), 0, 0, 1, 1}, {&__pyx_n_s_EarlyStopping___call, __pyx_k_EarlyStopping___call, sizeof(__pyx_k_EarlyStopping___call), 0, 0, 1, 1}, {&__pyx_n_s_EarlyStopping___init, __pyx_k_EarlyStopping___init, sizeof(__pyx_k_EarlyStopping___init), 0, 0, 1, 1}, {&__pyx_n_s_F, __pyx_k_F, sizeof(__pyx_k_F), 0, 0, 1, 1}, {&__pyx_n_u_GFLOPs, __pyx_k_GFLOPs, sizeof(__pyx_k_GFLOPs), 0, 1, 0, 1}, {&__pyx_kp_u_GPU_mem_GB, __pyx_k_GPU_mem_GB, sizeof(__pyx_k_GPU_mem_GB), 0, 1, 0, 0}, {&__pyx_n_s_Hardswish, __pyx_k_Hardswish, sizeof(__pyx_k_Hardswish), 0, 0, 1, 1}, {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1}, {&__pyx_kp_u_Invalid_CUDA_device, __pyx_k_Invalid_CUDA_device, sizeof(__pyx_k_Invalid_CUDA_device), 0, 1, 0, 0}, {&__pyx_n_s_LOGGER, __pyx_k_LOGGER, sizeof(__pyx_k_LOGGER), 0, 0, 1, 1}, {&__pyx_n_s_LeakyReLU, __pyx_k_LeakyReLU, sizeof(__pyx_k_LeakyReLU), 0, 0, 1, 1}, {&__pyx_n_u_Linux, __pyx_k_Linux, sizeof(__pyx_k_Linux), 0, 1, 0, 1}, {&__pyx_kp_u_MiB, __pyx_k_MiB, sizeof(__pyx_k_MiB), 0, 1, 0, 0}, {&__pyx_n_s_ModelEMA, __pyx_k_ModelEMA, sizeof(__pyx_k_ModelEMA), 0, 0, 1, 1}, {&__pyx_n_s_ModelEMA___init, __pyx_k_ModelEMA___init, sizeof(__pyx_k_ModelEMA___init), 0, 0, 1, 1}, {&__pyx_n_s_ModelEMA___init___locals_lambda, __pyx_k_ModelEMA___init___locals_lambda, sizeof(__pyx_k_ModelEMA___init___locals_lambda), 0, 0, 1, 1}, {&__pyx_n_s_ModelEMA_update, __pyx_k_ModelEMA_update, sizeof(__pyx_k_ModelEMA_update), 0, 0, 1, 1}, {&__pyx_n_s_ModelEMA_update_attr, __pyx_k_ModelEMA_update_attr, sizeof(__pyx_k_ModelEMA_update_attr), 0, 0, 1, 1}, {&__pyx_kp_s_Model_Exponential_Moving_Averag, __pyx_k_Model_Exponential_Moving_Averag, sizeof(__pyx_k_Model_Exponential_Moving_Averag), 0, 0, 1, 0}, {&__pyx_kp_u_Model_Summary, __pyx_k_Model_Summary, sizeof(__pyx_k_Model_Summary), 0, 1, 0, 0}, {&__pyx_n_s_Module, __pyx_k_Module, sizeof(__pyx_k_Module), 0, 0, 1, 1}, {&__pyx_kp_u_None, __pyx_k_None, sizeof(__pyx_k_None), 0, 1, 0, 0}, {&__pyx_n_u_Params, __pyx_k_Params, sizeof(__pyx_k_Params), 0, 1, 0, 1}, {&__pyx_n_s_Path, __pyx_k_Path, sizeof(__pyx_k_Path), 0, 0, 1, 1}, {&__pyx_kp_u_Pruning_model, __pyx_k_Pruning_model, sizeof(__pyx_k_Pruning_model), 0, 1, 0, 0}, {&__pyx_n_s_ReLU, __pyx_k_ReLU, sizeof(__pyx_k_ReLU), 0, 0, 1, 1}, {&__pyx_n_s_ReLU6, __pyx_k_ReLU6, sizeof(__pyx_k_ReLU6), 0, 0, 1, 1}, {&__pyx_n_s_STDOUT, __pyx_k_STDOUT, sizeof(__pyx_k_STDOUT), 0, 0, 1, 1}, {&__pyx_n_s_SiLU, __pyx_k_SiLU, sizeof(__pyx_k_SiLU), 0, 0, 1, 1}, {&__pyx_kp_u_Stopping_training_early_as_no_im, __pyx_k_Stopping_training_early_as_no_im, sizeof(__pyx_k_Stopping_training_early_as_no_im), 0, 1, 0, 0}, {&__pyx_n_s_Tensor, __pyx_k_Tensor, sizeof(__pyx_k_Tensor), 0, 0, 1, 1}, {&__pyx_n_u_Windows, __pyx_k_Windows, sizeof(__pyx_k_Windows), 0, 1, 0, 1}, {&__pyx_kp_u_YOLOv5, __pyx_k_YOLOv5, sizeof(__pyx_k_YOLOv5), 0, 1, 0, 0}, {&__pyx_kp_u__10, __pyx_k__10, sizeof(__pyx_k__10), 0, 1, 0, 0}, {&__pyx_n_s__13, __pyx_k__13, sizeof(__pyx_k__13), 0, 0, 1, 1}, {&__pyx_kp_u__17, __pyx_k__17, sizeof(__pyx_k__17), 0, 1, 0, 0}, {&__pyx_kp_u__2, __pyx_k__2, sizeof(__pyx_k__2), 0, 1, 0, 0}, {&__pyx_n_s__20, __pyx_k__20, sizeof(__pyx_k__20), 0, 0, 1, 1}, {&__pyx_n_u__20, __pyx_k__20, sizeof(__pyx_k__20), 0, 1, 0, 1}, {&__pyx_kp_u__4, __pyx_k__4, sizeof(__pyx_k__4), 0, 1, 0, 0}, {&__pyx_kp_u__5, __pyx_k__5, sizeof(__pyx_k__5), 0, 1, 0, 0}, {&__pyx_kp_u__7, __pyx_k__7, sizeof(__pyx_k__7), 0, 1, 0, 0}, {&__pyx_n_s__76, __pyx_k__76, sizeof(__pyx_k__76), 0, 0, 1, 1}, {&__pyx_kp_u__9, __pyx_k__9, sizeof(__pyx_k__9), 0, 1, 0, 0}, {&__pyx_n_s_a, __pyx_k_a, sizeof(__pyx_k_a), 0, 0, 1, 1}, {&__pyx_n_s_align_corners, __pyx_k_align_corners, sizeof(__pyx_k_align_corners), 0, 0, 1, 1}, {&__pyx_n_s_amount, __pyx_k_amount, sizeof(__pyx_k_amount), 0, 0, 1, 1}, {&__pyx_n_s_args, __pyx_k_args, sizeof(__pyx_k_args), 0, 0, 1, 1}, {&__pyx_n_u_ascii, __pyx_k_ascii, sizeof(__pyx_k_ascii), 0, 1, 0, 1}, {&__pyx_n_s_asyncio_coroutines, __pyx_k_asyncio_coroutines, sizeof(__pyx_k_asyncio_coroutines), 0, 0, 1, 1}, {&__pyx_n_s_b, __pyx_k_b, sizeof(__pyx_k_b), 0, 0, 1, 1}, {&__pyx_n_s_b_bn, __pyx_k_b_bn, sizeof(__pyx_k_b_bn), 0, 0, 1, 1}, {&__pyx_n_s_b_conv, __pyx_k_b_conv, sizeof(__pyx_k_b_conv), 0, 0, 1, 1}, {&__pyx_n_s_backward, __pyx_k_backward, sizeof(__pyx_k_backward), 0, 0, 1, 1}, {&__pyx_kp_u_backward_ms, __pyx_k_backward_ms, sizeof(__pyx_k_backward_ms), 0, 1, 0, 0}, {&__pyx_n_s_barrier, __pyx_k_barrier, sizeof(__pyx_k_barrier), 0, 0, 1, 1}, {&__pyx_n_s_batch_size, __pyx_k_batch_size, sizeof(__pyx_k_batch_size), 0, 0, 1, 1}, {&__pyx_kp_u_batch_size_2, __pyx_k_batch_size_2, sizeof(__pyx_k_batch_size_2), 0, 1, 0, 0}, {&__pyx_n_s_best_epoch, __pyx_k_best_epoch, sizeof(__pyx_k_best_epoch), 0, 0, 1, 1}, {&__pyx_n_s_best_fitness, __pyx_k_best_fitness, sizeof(__pyx_k_best_fitness), 0, 0, 1, 1}, {&__pyx_kp_u_best_model_saved_as_best_pt_To, __pyx_k_best_model_saved_as_best_pt_To, sizeof(__pyx_k_best_model_saved_as_best_pt_To), 0, 1, 0, 0}, {&__pyx_n_s_bias, __pyx_k_bias, sizeof(__pyx_k_bias), 0, 0, 1, 1}, {&__pyx_n_u_bilinear, __pyx_k_bilinear, sizeof(__pyx_k_bilinear), 0, 1, 0, 1}, {&__pyx_n_s_bn, __pyx_k_bn, sizeof(__pyx_k_bn), 0, 0, 1, 1}, {&__pyx_n_s_call, __pyx_k_call, sizeof(__pyx_k_call), 0, 0, 1, 1}, {&__pyx_n_s_capture_output, __pyx_k_capture_output, sizeof(__pyx_k_capture_output), 0, 0, 1, 1}, {&__pyx_n_s_ceil, __pyx_k_ceil, sizeof(__pyx_k_ceil), 0, 0, 1, 1}, {&__pyx_n_u_ch, __pyx_k_ch, sizeof(__pyx_k_ch), 0, 1, 0, 1}, {&__pyx_n_s_check, __pyx_k_check, sizeof(__pyx_k_check), 0, 0, 1, 1}, {&__pyx_n_s_check_output, __pyx_k_check_output, sizeof(__pyx_k_check_output), 0, 0, 1, 1}, {&__pyx_n_s_class_getitem, __pyx_k_class_getitem, sizeof(__pyx_k_class_getitem), 0, 0, 1, 1}, {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, {&__pyx_n_s_clone, __pyx_k_clone, sizeof(__pyx_k_clone), 0, 0, 1, 1}, {&__pyx_n_s_close, __pyx_k_close, sizeof(__pyx_k_close), 0, 0, 1, 1}, {&__pyx_n_s_cmd, __pyx_k_cmd, sizeof(__pyx_k_cmd), 0, 0, 1, 1}, {&__pyx_n_s_contextlib, __pyx_k_contextlib, sizeof(__pyx_k_contextlib), 0, 0, 1, 1}, {&__pyx_n_s_contextmanager, __pyx_k_contextmanager, sizeof(__pyx_k_contextmanager), 0, 0, 1, 1}, {&__pyx_n_s_conv, __pyx_k_conv, sizeof(__pyx_k_conv), 0, 0, 1, 1}, {&__pyx_n_s_copy, __pyx_k_copy, sizeof(__pyx_k_copy), 0, 0, 1, 1}, {&__pyx_n_s_copy_2, __pyx_k_copy_2, sizeof(__pyx_k_copy_2), 0, 0, 1, 1}, {&__pyx_n_s_copy_attr, __pyx_k_copy_attr, sizeof(__pyx_k_copy_attr), 0, 0, 1, 1}, {&__pyx_n_s_cpu, __pyx_k_cpu, sizeof(__pyx_k_cpu), 0, 0, 1, 1}, {&__pyx_n_u_cpu, __pyx_k_cpu, sizeof(__pyx_k_cpu), 0, 1, 0, 1}, {&__pyx_kp_u_cuda, __pyx_k_cuda, sizeof(__pyx_k_cuda), 0, 1, 0, 0}, {&__pyx_kp_u_cuda_0, __pyx_k_cuda_0, sizeof(__pyx_k_cuda_0), 0, 1, 0, 0}, {&__pyx_n_s_cuda_2, __pyx_k_cuda_2, sizeof(__pyx_k_cuda_2), 0, 0, 1, 1}, {&__pyx_n_s_d, __pyx_k_d, sizeof(__pyx_k_d), 0, 0, 1, 1}, {&__pyx_n_s_date_modified, __pyx_k_date_modified, sizeof(__pyx_k_date_modified), 0, 0, 1, 1}, {&__pyx_n_s_datetime, __pyx_k_datetime, sizeof(__pyx_k_datetime), 0, 0, 1, 1}, {&__pyx_n_s_day, __pyx_k_day, sizeof(__pyx_k_day), 0, 0, 1, 1}, {&__pyx_n_s_de_parallel, __pyx_k_de_parallel, sizeof(__pyx_k_de_parallel), 0, 0, 1, 1}, {&__pyx_n_s_decay, __pyx_k_decay, sizeof(__pyx_k_decay), 0, 0, 1, 1}, {&__pyx_n_s_decode, __pyx_k_decode, sizeof(__pyx_k_decode), 0, 0, 1, 1}, {&__pyx_n_s_deepcopy, __pyx_k_deepcopy, sizeof(__pyx_k_deepcopy), 0, 0, 1, 1}, {&__pyx_n_s_delta, __pyx_k_delta, sizeof(__pyx_k_delta), 0, 0, 1, 1}, {&__pyx_kp_u_describe_tags_long_always, __pyx_k_describe_tags_long_always, sizeof(__pyx_k_describe_tags_long_always), 0, 1, 0, 0}, {&__pyx_n_s_detach, __pyx_k_detach, sizeof(__pyx_k_detach), 0, 0, 1, 1}, {&__pyx_n_s_device, __pyx_k_device, sizeof(__pyx_k_device), 0, 0, 1, 1}, {&__pyx_n_s_device_count, __pyx_k_device_count, sizeof(__pyx_k_device_count), 0, 0, 1, 1}, {&__pyx_kp_u_device_count_function_only_works, __pyx_k_device_count_function_only_works, sizeof(__pyx_k_device_count_function_only_works), 0, 1, 0, 0}, {&__pyx_n_s_device_ids, __pyx_k_device_ids, sizeof(__pyx_k_device_ids), 0, 0, 1, 1}, {&__pyx_n_s_devices, __pyx_k_devices, sizeof(__pyx_k_devices), 0, 0, 1, 1}, {&__pyx_n_s_diag, __pyx_k_diag, sizeof(__pyx_k_diag), 0, 0, 1, 1}, {&__pyx_n_s_dict, __pyx_k_dict, sizeof(__pyx_k_dict), 0, 0, 1, 1}, {&__pyx_kp_u_disable, __pyx_k_disable, sizeof(__pyx_k_disable), 0, 1, 0, 0}, {&__pyx_n_s_dist, __pyx_k_dist, sizeof(__pyx_k_dist), 0, 0, 1, 1}, {&__pyx_n_s_distributed, __pyx_k_distributed, sizeof(__pyx_k_distributed), 0, 0, 1, 1}, {&__pyx_n_s_div, __pyx_k_div, sizeof(__pyx_k_div), 0, 0, 1, 1}, {&__pyx_n_s_doc, __pyx_k_doc, sizeof(__pyx_k_doc), 0, 0, 1, 1}, {&__pyx_n_s_dtype, __pyx_k_dtype, sizeof(__pyx_k_dtype), 0, 0, 1, 1}, {&__pyx_n_s_e, __pyx_k_e, sizeof(__pyx_k_e), 0, 0, 1, 1}, {&__pyx_n_s_ema, __pyx_k_ema, sizeof(__pyx_k_ema), 0, 0, 1, 1}, {&__pyx_n_s_empty_cache, __pyx_k_empty_cache, sizeof(__pyx_k_empty_cache), 0, 0, 1, 1}, {&__pyx_kp_u_enable, __pyx_k_enable, sizeof(__pyx_k_enable), 0, 1, 0, 0}, {&__pyx_n_s_encode, __pyx_k_encode, sizeof(__pyx_k_encode), 0, 0, 1, 1}, {&__pyx_n_s_end, __pyx_k_end, sizeof(__pyx_k_end), 0, 0, 1, 1}, {&__pyx_n_s_enter, __pyx_k_enter, sizeof(__pyx_k_enter), 0, 0, 1, 1}, {&__pyx_n_s_enumerate, __pyx_k_enumerate, sizeof(__pyx_k_enumerate), 0, 0, 1, 1}, {&__pyx_n_s_environ, __pyx_k_environ, sizeof(__pyx_k_environ), 0, 0, 1, 1}, {&__pyx_n_s_epoch, __pyx_k_epoch, sizeof(__pyx_k_epoch), 0, 0, 1, 1}, {&__pyx_kp_u_epochs_Best_results_observed_at, __pyx_k_epochs_Best_results_observed_at, sizeof(__pyx_k_epochs_Best_results_observed_at), 0, 1, 0, 0}, {&__pyx_n_s_eps, __pyx_k_eps, sizeof(__pyx_k_eps), 0, 0, 1, 1}, {&__pyx_n_s_eval, __pyx_k_eval, sizeof(__pyx_k_eval), 0, 0, 1, 1}, {&__pyx_n_s_exclude, __pyx_k_exclude, sizeof(__pyx_k_exclude), 0, 0, 1, 1}, {&__pyx_n_s_exit, __pyx_k_exit, sizeof(__pyx_k_exit), 0, 0, 1, 1}, {&__pyx_n_s_exp, __pyx_k_exp, sizeof(__pyx_k_exp), 0, 0, 1, 1}, {&__pyx_n_s_file, __pyx_k_file, sizeof(__pyx_k_file), 0, 0, 1, 1}, {&__pyx_n_s_find_modules, __pyx_k_find_modules, sizeof(__pyx_k_find_modules), 0, 0, 1, 1}, {&__pyx_n_s_fitness, __pyx_k_fitness, sizeof(__pyx_k_fitness), 0, 0, 1, 1}, {&__pyx_n_s_float16, __pyx_k_float16, sizeof(__pyx_k_float16), 0, 0, 1, 1}, {&__pyx_n_s_flops, __pyx_k_flops, sizeof(__pyx_k_flops), 0, 0, 1, 1}, {&__pyx_kp_u_forward_ms, __pyx_k_forward_ms, sizeof(__pyx_k_forward_ms), 0, 1, 0, 0}, {&__pyx_n_s_fromtimestamp, __pyx_k_fromtimestamp, sizeof(__pyx_k_fromtimestamp), 0, 0, 1, 1}, {&__pyx_n_s_fs, __pyx_k_fs, sizeof(__pyx_k_fs), 0, 0, 1, 1}, {&__pyx_n_s_functional, __pyx_k_functional, sizeof(__pyx_k_functional), 0, 0, 1, 1}, {&__pyx_n_s_fuse_conv_and_bn, __pyx_k_fuse_conv_and_bn, sizeof(__pyx_k_fuse_conv_and_bn), 0, 0, 1, 1}, {&__pyx_n_s_fusedconv, __pyx_k_fusedconv, sizeof(__pyx_k_fusedconv), 0, 0, 1, 1}, {&__pyx_kp_u_gc, __pyx_k_gc, sizeof(__pyx_k_gc), 0, 1, 0, 0}, {&__pyx_n_s_genexpr, __pyx_k_genexpr, sizeof(__pyx_k_genexpr), 0, 0, 1, 1}, {&__pyx_n_s_get, __pyx_k_get, sizeof(__pyx_k_get), 0, 0, 1, 1}, {&__pyx_n_s_get_device_properties, __pyx_k_get_device_properties, sizeof(__pyx_k_get_device_properties), 0, 0, 1, 1}, {&__pyx_kp_u_git_C, __pyx_k_git_C, sizeof(__pyx_k_git_C), 0, 1, 0, 0}, {&__pyx_n_s_git_describe, __pyx_k_git_describe, sizeof(__pyx_k_git_describe), 0, 0, 1, 1}, {&__pyx_n_u_gradient, __pyx_k_gradient, sizeof(__pyx_k_gradient), 0, 1, 0, 1}, {&__pyx_kp_u_gradients, __pyx_k_gradients, sizeof(__pyx_k_gradients), 0, 1, 0, 0}, {&__pyx_n_s_groups, __pyx_k_groups, sizeof(__pyx_k_groups), 0, 0, 1, 1}, {&__pyx_n_s_gs, __pyx_k_gs, sizeof(__pyx_k_gs), 0, 0, 1, 1}, {&__pyx_n_s_h, __pyx_k_h, sizeof(__pyx_k_h), 0, 0, 1, 1}, {&__pyx_n_s_half, __pyx_k_half, sizeof(__pyx_k_half), 0, 0, 1, 1}, {&__pyx_n_u_half, __pyx_k_half, sizeof(__pyx_k_half), 0, 1, 0, 1}, {&__pyx_n_s_i, __pyx_k_i, sizeof(__pyx_k_i), 0, 0, 1, 1}, {&__pyx_n_u_ignore, __pyx_k_ignore, sizeof(__pyx_k_ignore), 0, 1, 0, 1}, {&__pyx_n_s_img, __pyx_k_img, sizeof(__pyx_k_img), 0, 0, 1, 1}, {&__pyx_n_s_img_size, __pyx_k_img_size, sizeof(__pyx_k_img_size), 0, 0, 1, 1}, {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1}, {&__pyx_n_s_in_channels, __pyx_k_in_channels, sizeof(__pyx_k_in_channels), 0, 0, 1, 1}, {&__pyx_n_s_include, __pyx_k_include, sizeof(__pyx_k_include), 0, 0, 1, 1}, {&__pyx_n_u_inf, __pyx_k_inf, sizeof(__pyx_k_inf), 0, 1, 0, 1}, {&__pyx_n_s_info, __pyx_k_info, sizeof(__pyx_k_info), 0, 0, 1, 1}, {&__pyx_n_s_init, __pyx_k_init, sizeof(__pyx_k_init), 0, 0, 1, 1}, {&__pyx_n_s_init_subclass, __pyx_k_init_subclass, sizeof(__pyx_k_init_subclass), 0, 0, 1, 1}, {&__pyx_n_s_initialize_weights, __pyx_k_initialize_weights, sizeof(__pyx_k_initialize_weights), 0, 0, 1, 1}, {&__pyx_n_s_initializing, __pyx_k_initializing, sizeof(__pyx_k_initializing), 0, 0, 1, 1}, {&__pyx_n_s_inplace, __pyx_k_inplace, sizeof(__pyx_k_inplace), 0, 0, 1, 1}, {&__pyx_n_s_input, __pyx_k_input, sizeof(__pyx_k_input), 0, 0, 1, 1}, {&__pyx_n_u_input, __pyx_k_input, sizeof(__pyx_k_input), 0, 1, 0, 1}, {&__pyx_n_s_inputs, __pyx_k_inputs, sizeof(__pyx_k_inputs), 0, 0, 1, 1}, {&__pyx_n_s_int, __pyx_k_int, sizeof(__pyx_k_int), 0, 0, 1, 1}, {&__pyx_n_s_interpolate, __pyx_k_interpolate, sizeof(__pyx_k_interpolate), 0, 0, 1, 1}, {&__pyx_n_s_is_available, __pyx_k_is_available, sizeof(__pyx_k_is_available), 0, 0, 1, 1}, {&__pyx_n_s_is_coroutine, __pyx_k_is_coroutine, sizeof(__pyx_k_is_coroutine), 0, 0, 1, 1}, {&__pyx_n_s_is_floating_point, __pyx_k_is_floating_point, sizeof(__pyx_k_is_floating_point), 0, 0, 1, 1}, {&__pyx_n_s_is_parallel, __pyx_k_is_parallel, sizeof(__pyx_k_is_parallel), 0, 0, 1, 1}, {&__pyx_kp_u_isenabled, __pyx_k_isenabled, sizeof(__pyx_k_isenabled), 0, 1, 0, 0}, {&__pyx_n_s_items, __pyx_k_items, sizeof(__pyx_k_items), 0, 0, 1, 1}, {&__pyx_n_s_k, __pyx_k_k, sizeof(__pyx_k_k), 0, 0, 1, 1}, {&__pyx_n_s_kernel_size, __pyx_k_kernel_size, sizeof(__pyx_k_kernel_size), 0, 0, 1, 1}, {&__pyx_n_s_l1_unstructured, __pyx_k_l1_unstructured, sizeof(__pyx_k_l1_unstructured), 0, 0, 1, 1}, {&__pyx_n_u_layer, __pyx_k_layer, sizeof(__pyx_k_layer), 0, 1, 0, 1}, {&__pyx_kp_u_layers, __pyx_k_layers, sizeof(__pyx_k_layers), 0, 1, 0, 0}, {&__pyx_n_u_list, __pyx_k_list, sizeof(__pyx_k_list), 0, 1, 0, 1}, {&__pyx_n_s_local_rank, __pyx_k_local_rank, sizeof(__pyx_k_local_rank), 0, 0, 1, 1}, {&__pyx_n_s_lower, __pyx_k_lower, sizeof(__pyx_k_lower), 0, 0, 1, 1}, {&__pyx_n_s_m, __pyx_k_m, sizeof(__pyx_k_m), 0, 0, 1, 1}, {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, {&__pyx_n_s_math, __pyx_k_math, sizeof(__pyx_k_math), 0, 0, 1, 1}, {&__pyx_n_s_max, __pyx_k_max, sizeof(__pyx_k_max), 0, 0, 1, 1}, {&__pyx_n_s_mclass, __pyx_k_mclass, sizeof(__pyx_k_mclass), 0, 0, 1, 1}, {&__pyx_n_s_mean, __pyx_k_mean, sizeof(__pyx_k_mean), 0, 0, 1, 1}, {&__pyx_n_s_mem, __pyx_k_mem, sizeof(__pyx_k_mem), 0, 0, 1, 1}, {&__pyx_n_s_memory_reserved, __pyx_k_memory_reserved, sizeof(__pyx_k_memory_reserved), 0, 0, 1, 1}, {&__pyx_n_s_metaclass, __pyx_k_metaclass, sizeof(__pyx_k_metaclass), 0, 0, 1, 1}, {&__pyx_n_s_mm, __pyx_k_mm, sizeof(__pyx_k_mm), 0, 0, 1, 1}, {&__pyx_n_s_mode, __pyx_k_mode, sizeof(__pyx_k_mode), 0, 0, 1, 1}, {&__pyx_n_s_model, __pyx_k_model, sizeof(__pyx_k_model), 0, 0, 1, 1}, {&__pyx_n_s_model_info, __pyx_k_model_info, sizeof(__pyx_k_model_info), 0, 0, 1, 1}, {&__pyx_n_s_model_info_locals_genexpr, __pyx_k_model_info_locals_genexpr, sizeof(__pyx_k_model_info_locals_genexpr), 0, 0, 1, 1}, {&__pyx_n_s_module, __pyx_k_module, sizeof(__pyx_k_module), 0, 0, 1, 1}, {&__pyx_n_s_module_2, __pyx_k_module_2, sizeof(__pyx_k_module_2), 0, 0, 1, 1}, {&__pyx_n_s_module_list, __pyx_k_module_list, sizeof(__pyx_k_module_list), 0, 0, 1, 1}, {&__pyx_kp_u_module_list_2, __pyx_k_module_list_2, sizeof(__pyx_k_module_list_2), 0, 1, 0, 0}, {&__pyx_n_s_modules, __pyx_k_modules, sizeof(__pyx_k_modules), 0, 0, 1, 1}, {&__pyx_n_s_momentum, __pyx_k_momentum, sizeof(__pyx_k_momentum), 0, 0, 1, 1}, {&__pyx_n_s_month, __pyx_k_month, sizeof(__pyx_k_month), 0, 0, 1, 1}, {&__pyx_n_s_msd, __pyx_k_msd, sizeof(__pyx_k_msd), 0, 0, 1, 1}, {&__pyx_n_u_mu, __pyx_k_mu, sizeof(__pyx_k_mu), 0, 1, 0, 1}, {&__pyx_n_s_mul, __pyx_k_mul, sizeof(__pyx_k_mul), 0, 0, 1, 1}, {&__pyx_n_s_n, __pyx_k_n, sizeof(__pyx_k_n), 0, 0, 1, 1}, {&__pyx_n_s_n_g, __pyx_k_n_g, sizeof(__pyx_k_n_g), 0, 0, 1, 1}, {&__pyx_n_s_n_p, __pyx_k_n_p, sizeof(__pyx_k_n_p), 0, 0, 1, 1}, {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, {&__pyx_n_u_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 1, 0, 1}, {&__pyx_n_s_name_2, __pyx_k_name_2, sizeof(__pyx_k_name_2), 0, 0, 1, 1}, {&__pyx_n_s_named_modules, __pyx_k_named_modules, sizeof(__pyx_k_named_modules), 0, 0, 1, 1}, {&__pyx_n_s_named_parameters, __pyx_k_named_parameters, sizeof(__pyx_k_named_parameters), 0, 0, 1, 1}, {&__pyx_n_u_nan, __pyx_k_nan, sizeof(__pyx_k_nan), 0, 1, 0, 1}, {&__pyx_n_s_newline, __pyx_k_newline, sizeof(__pyx_k_newline), 0, 0, 1, 1}, {&__pyx_n_s_nn, __pyx_k_nn, sizeof(__pyx_k_nn), 0, 0, 1, 1}, {&__pyx_n_s_no_grad, __pyx_k_no_grad, sizeof(__pyx_k_no_grad), 0, 0, 1, 1}, {&__pyx_kp_u_not_multiple_of_GPU_count, __pyx_k_not_multiple_of_GPU_count, sizeof(__pyx_k_not_multiple_of_GPU_count), 0, 1, 0, 0}, {&__pyx_n_s_numel, __pyx_k_numel, sizeof(__pyx_k_numel), 0, 0, 1, 1}, {&__pyx_kp_u_nvidia_smi_L_wc_l, __pyx_k_nvidia_smi_L_wc_l, sizeof(__pyx_k_nvidia_smi_L_wc_l), 0, 1, 0, 0}, {&__pyx_n_s_ops, __pyx_k_ops, sizeof(__pyx_k_ops), 0, 0, 1, 1}, {&__pyx_n_s_os, __pyx_k_os, sizeof(__pyx_k_os), 0, 0, 1, 1}, {&__pyx_n_s_out_channels, __pyx_k_out_channels, sizeof(__pyx_k_out_channels), 0, 0, 1, 1}, {&__pyx_n_u_output, __pyx_k_output, sizeof(__pyx_k_output), 0, 1, 0, 1}, {&__pyx_n_s_p, __pyx_k_p, sizeof(__pyx_k_p), 0, 0, 1, 1}, {&__pyx_n_s_pad, __pyx_k_pad, sizeof(__pyx_k_pad), 0, 0, 1, 1}, {&__pyx_n_s_padding, __pyx_k_padding, sizeof(__pyx_k_padding), 0, 0, 1, 1}, {&__pyx_n_s_parallel, __pyx_k_parallel, sizeof(__pyx_k_parallel), 0, 0, 1, 1}, {&__pyx_n_s_parameters, __pyx_k_parameters, sizeof(__pyx_k_parameters), 0, 0, 1, 1}, {&__pyx_n_u_parameters, __pyx_k_parameters, sizeof(__pyx_k_parameters), 0, 1, 0, 1}, {&__pyx_kp_u_parameters_2, __pyx_k_parameters_2, sizeof(__pyx_k_parameters_2), 0, 1, 0, 0}, {&__pyx_n_s_parent, __pyx_k_parent, sizeof(__pyx_k_parent), 0, 0, 1, 1}, {&__pyx_kp_u_pass_a_new_patience_value_i_e_p, __pyx_k_pass_a_new_patience_value_i_e_p, sizeof(__pyx_k_pass_a_new_patience_value_i_e_p), 0, 1, 0, 0}, {&__pyx_n_s_path, __pyx_k_path, sizeof(__pyx_k_path), 0, 0, 1, 1}, {&__pyx_n_s_pathlib, __pyx_k_pathlib, sizeof(__pyx_k_pathlib), 0, 0, 1, 1}, {&__pyx_n_s_patience, __pyx_k_patience, sizeof(__pyx_k_patience), 0, 0, 1, 1}, {&__pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils, __pyx_k_pdf_toolbox_lib_dia_yolov5_utils, sizeof(__pyx_k_pdf_toolbox_lib_dia_yolov5_utils), 0, 0, 1, 1}, {&__pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils_2, __pyx_k_pdf_toolbox_lib_dia_yolov5_utils_2, sizeof(__pyx_k_pdf_toolbox_lib_dia_yolov5_utils_2), 0, 0, 1, 1}, {&__pyx_kp_s_pdf_toolbox_lib_dia_yolov5_utils_3, __pyx_k_pdf_toolbox_lib_dia_yolov5_utils_3, sizeof(__pyx_k_pdf_toolbox_lib_dia_yolov5_utils_3), 0, 0, 1, 0}, {&__pyx_n_s_platform, __pyx_k_platform, sizeof(__pyx_k_platform), 0, 0, 1, 1}, {&__pyx_n_s_possible_stop, __pyx_k_possible_stop, sizeof(__pyx_k_possible_stop), 0, 0, 1, 1}, {&__pyx_n_s_prepare, __pyx_k_prepare, sizeof(__pyx_k_prepare), 0, 0, 1, 1}, {&__pyx_n_s_print, __pyx_k_print, sizeof(__pyx_k_print), 0, 0, 1, 1}, {&__pyx_n_u_process_group, __pyx_k_process_group, sizeof(__pyx_k_process_group), 0, 1, 0, 1}, {&__pyx_n_s_profile, __pyx_k_profile, sizeof(__pyx_k_profile), 0, 0, 1, 1}, {&__pyx_n_s_profile_locals_genexpr, __pyx_k_profile_locals_genexpr, sizeof(__pyx_k_profile_locals_genexpr), 0, 0, 1, 1}, {&__pyx_n_s_prune, __pyx_k_prune, sizeof(__pyx_k_prune), 0, 0, 1, 1}, {&__pyx_n_s_qualname, __pyx_k_qualname, sizeof(__pyx_k_qualname), 0, 0, 1, 1}, {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, {&__pyx_n_s_ratio, __pyx_k_ratio, sizeof(__pyx_k_ratio), 0, 0, 1, 1}, {&__pyx_n_u_reducer, __pyx_k_reducer, sizeof(__pyx_k_reducer), 0, 1, 0, 1}, {&__pyx_n_s_remove, __pyx_k_remove, sizeof(__pyx_k_remove), 0, 0, 1, 1}, {&__pyx_n_s_replace, __pyx_k_replace, sizeof(__pyx_k_replace), 0, 0, 1, 1}, {&__pyx_kp_u_requested_use_device_cpu_or_pas, __pyx_k_requested_use_device_cpu_or_pas, sizeof(__pyx_k_requested_use_device_cpu_or_pas), 0, 1, 0, 0}, {&__pyx_n_s_requires_grad, __pyx_k_requires_grad, sizeof(__pyx_k_requires_grad), 0, 0, 1, 1}, {&__pyx_n_s_requires_grad_2, __pyx_k_requires_grad_2, sizeof(__pyx_k_requires_grad_2), 0, 0, 1, 1}, {&__pyx_n_s_reshape, __pyx_k_reshape, sizeof(__pyx_k_reshape), 0, 0, 1, 1}, {&__pyx_n_s_results, __pyx_k_results, sizeof(__pyx_k_results), 0, 0, 1, 1}, {&__pyx_n_s_rstrip, __pyx_k_rstrip, sizeof(__pyx_k_rstrip), 0, 0, 1, 1}, {&__pyx_n_s_run, __pyx_k_run, sizeof(__pyx_k_run), 0, 0, 1, 1}, {&__pyx_n_s_running_mean, __pyx_k_running_mean, sizeof(__pyx_k_running_mean), 0, 0, 1, 1}, {&__pyx_n_s_running_var, __pyx_k_running_var, sizeof(__pyx_k_running_var), 0, 0, 1, 1}, {&__pyx_n_s_s, __pyx_k_s, sizeof(__pyx_k_s), 0, 0, 1, 1}, {&__pyx_n_s_s_in, __pyx_k_s_in, sizeof(__pyx_k_s_in), 0, 0, 1, 1}, {&__pyx_n_s_s_out, __pyx_k_s_out, sizeof(__pyx_k_s_out), 0, 0, 1, 1}, {&__pyx_n_s_same_shape, __pyx_k_same_shape, sizeof(__pyx_k_same_shape), 0, 0, 1, 1}, {&__pyx_n_s_scale_img, __pyx_k_scale_img, sizeof(__pyx_k_scale_img), 0, 0, 1, 1}, {&__pyx_n_s_scale_img_locals_genexpr, __pyx_k_scale_img_locals_genexpr, sizeof(__pyx_k_scale_img_locals_genexpr), 0, 0, 1, 1}, {&__pyx_n_s_select_device, __pyx_k_select_device, sizeof(__pyx_k_select_device), 0, 0, 1, 1}, {&__pyx_n_s_self, __pyx_k_self, sizeof(__pyx_k_self), 0, 0, 1, 1}, {&__pyx_n_s_send, __pyx_k_send, sizeof(__pyx_k_send), 0, 0, 1, 1}, {&__pyx_n_s_set_name, __pyx_k_set_name, sizeof(__pyx_k_set_name), 0, 0, 1, 1}, {&__pyx_n_s_shape, __pyx_k_shape, sizeof(__pyx_k_shape), 0, 0, 1, 1}, {&__pyx_n_u_shape, __pyx_k_shape, sizeof(__pyx_k_shape), 0, 1, 0, 1}, {&__pyx_n_s_shell, __pyx_k_shell, sizeof(__pyx_k_shell), 0, 0, 1, 1}, {&__pyx_n_u_sigma, __pyx_k_sigma, sizeof(__pyx_k_sigma), 0, 1, 0, 1}, {&__pyx_n_s_size, __pyx_k_size, sizeof(__pyx_k_size), 0, 0, 1, 1}, {&__pyx_n_s_space, __pyx_k_space, sizeof(__pyx_k_space), 0, 0, 1, 1}, {&__pyx_n_s_sparsity, __pyx_k_sparsity, sizeof(__pyx_k_sparsity), 0, 0, 1, 1}, {&__pyx_n_s_spec, __pyx_k_spec, sizeof(__pyx_k_spec), 0, 0, 1, 1}, {&__pyx_n_s_split, __pyx_k_split, sizeof(__pyx_k_split), 0, 0, 1, 1}, {&__pyx_n_s_sqrt, __pyx_k_sqrt, sizeof(__pyx_k_sqrt), 0, 0, 1, 1}, {&__pyx_n_s_st_mtime, __pyx_k_st_mtime, sizeof(__pyx_k_st_mtime), 0, 0, 1, 1}, {&__pyx_n_s_startswith, __pyx_k_startswith, sizeof(__pyx_k_startswith), 0, 0, 1, 1}, {&__pyx_n_s_stat, __pyx_k_stat, sizeof(__pyx_k_stat), 0, 0, 1, 1}, {&__pyx_n_s_state_dict, __pyx_k_state_dict, sizeof(__pyx_k_state_dict), 0, 0, 1, 1}, {&__pyx_n_s_std, __pyx_k_std, sizeof(__pyx_k_std), 0, 0, 1, 1}, {&__pyx_n_s_stderr, __pyx_k_stderr, sizeof(__pyx_k_stderr), 0, 0, 1, 1}, {&__pyx_n_s_stdout, __pyx_k_stdout, sizeof(__pyx_k_stdout), 0, 0, 1, 1}, {&__pyx_n_s_stop, __pyx_k_stop, sizeof(__pyx_k_stop), 0, 0, 1, 1}, {&__pyx_n_s_stride, __pyx_k_stride, sizeof(__pyx_k_stride), 0, 0, 1, 1}, {&__pyx_n_u_stride, __pyx_k_stride, sizeof(__pyx_k_stride), 0, 1, 0, 1}, {&__pyx_n_s_strip, __pyx_k_strip, sizeof(__pyx_k_strip), 0, 0, 1, 1}, {&__pyx_n_s_subprocess, __pyx_k_subprocess, sizeof(__pyx_k_subprocess), 0, 0, 1, 1}, {&__pyx_n_s_sum, __pyx_k_sum, sizeof(__pyx_k_sum), 0, 0, 1, 1}, {&__pyx_n_s_super, __pyx_k_super, sizeof(__pyx_k_super), 0, 0, 1, 1}, {&__pyx_n_s_synchronize, __pyx_k_synchronize, sizeof(__pyx_k_synchronize), 0, 0, 1, 1}, {&__pyx_n_s_sys, __pyx_k_sys, sizeof(__pyx_k_sys), 0, 0, 1, 1}, {&__pyx_n_s_system, __pyx_k_system, sizeof(__pyx_k_system), 0, 0, 1, 1}, {&__pyx_n_s_t, __pyx_k_t, sizeof(__pyx_k_t), 0, 0, 1, 1}, {&__pyx_n_s_tb, __pyx_k_tb, sizeof(__pyx_k_tb), 0, 0, 1, 1}, {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, {&__pyx_n_s_tf, __pyx_k_tf, sizeof(__pyx_k_tf), 0, 0, 1, 1}, {&__pyx_n_s_thop, __pyx_k_thop, sizeof(__pyx_k_thop), 0, 0, 1, 1}, {&__pyx_n_s_throw, __pyx_k_throw, sizeof(__pyx_k_throw), 0, 0, 1, 1}, {&__pyx_n_s_time, __pyx_k_time, sizeof(__pyx_k_time), 0, 0, 1, 1}, {&__pyx_n_s_time_sync, __pyx_k_time_sync, sizeof(__pyx_k_time_sync), 0, 0, 1, 1}, {&__pyx_n_s_to, __pyx_k_to, sizeof(__pyx_k_to), 0, 0, 1, 1}, {&__pyx_n_u_to, __pyx_k_to, sizeof(__pyx_k_to), 0, 1, 0, 1}, {&__pyx_kp_u_torch, __pyx_k_torch, sizeof(__pyx_k_torch), 0, 1, 0, 0}, {&__pyx_n_s_torch_2, __pyx_k_torch_2, sizeof(__pyx_k_torch_2), 0, 0, 1, 1}, {&__pyx_n_s_torch_distributed, __pyx_k_torch_distributed, sizeof(__pyx_k_torch_distributed), 0, 0, 1, 1}, {&__pyx_n_s_torch_distributed_zero_first, __pyx_k_torch_distributed_zero_first, sizeof(__pyx_k_torch_distributed_zero_first), 0, 0, 1, 1}, {&__pyx_n_s_torch_nn, __pyx_k_torch_nn, sizeof(__pyx_k_torch_nn), 0, 0, 1, 1}, {&__pyx_n_s_torch_nn_functional, __pyx_k_torch_nn_functional, sizeof(__pyx_k_torch_nn_functional), 0, 0, 1, 1}, {&__pyx_n_s_torch_nn_utils_prune, __pyx_k_torch_nn_utils_prune, sizeof(__pyx_k_torch_nn_utils_prune), 0, 0, 1, 1}, {&__pyx_n_s_total_memory, __pyx_k_total_memory, sizeof(__pyx_k_total_memory), 0, 0, 1, 1}, {&__pyx_n_s_update, __pyx_k_update, sizeof(__pyx_k_update), 0, 0, 1, 1}, {&__pyx_n_s_update_attr, __pyx_k_update_attr, sizeof(__pyx_k_update_attr), 0, 0, 1, 1}, {&__pyx_n_s_updates, __pyx_k_updates, sizeof(__pyx_k_updates), 0, 0, 1, 1}, {&__pyx_n_s_utils, __pyx_k_utils, sizeof(__pyx_k_utils), 0, 0, 1, 1}, {&__pyx_n_s_v, __pyx_k_v, sizeof(__pyx_k_v), 0, 0, 1, 1}, {&__pyx_n_s_value, __pyx_k_value, sizeof(__pyx_k_value), 0, 0, 1, 1}, {&__pyx_n_s_verbose, __pyx_k_verbose, sizeof(__pyx_k_verbose), 0, 0, 1, 1}, {&__pyx_n_s_version, __pyx_k_version, sizeof(__pyx_k_version), 0, 0, 1, 1}, {&__pyx_n_s_view, __pyx_k_view, sizeof(__pyx_k_view), 0, 0, 1, 1}, {&__pyx_n_s_w, __pyx_k_w, sizeof(__pyx_k_w), 0, 0, 1, 1}, {&__pyx_n_s_w_bn, __pyx_k_w_bn, sizeof(__pyx_k_w_bn), 0, 0, 1, 1}, {&__pyx_n_s_w_conv, __pyx_k_w_conv, sizeof(__pyx_k_w_conv), 0, 0, 1, 1}, {&__pyx_n_s_weight, __pyx_k_weight, sizeof(__pyx_k_weight), 0, 0, 1, 1}, {&__pyx_n_u_weight, __pyx_k_weight, sizeof(__pyx_k_weight), 0, 1, 0, 1}, {&__pyx_n_s_x, __pyx_k_x, sizeof(__pyx_k_x), 0, 0, 1, 1}, {&__pyx_n_s_y, __pyx_k_y, sizeof(__pyx_k_y), 0, 0, 1, 1}, {&__pyx_n_s_yaml, __pyx_k_yaml, sizeof(__pyx_k_yaml), 0, 0, 1, 1}, {&__pyx_n_s_year, __pyx_k_year, sizeof(__pyx_k_year), 0, 0, 1, 1}, {&__pyx_n_s_zeros, __pyx_k_zeros, sizeof(__pyx_k_zeros), 0, 0, 1, 1}, #endif {0, 0, 0, 0, 0, 0, 0} }; /* #### Code section: cached_builtins ### */ static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(0, 28, __pyx_L1_error) __pyx_builtin_AssertionError = __Pyx_GetBuiltinName(__pyx_n_s_AssertionError); if (!__pyx_builtin_AssertionError) __PYX_ERR(0, 61, __pyx_L1_error) __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_n_s_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(0, 88, __pyx_L1_error) __pyx_builtin_print = __Pyx_GetBuiltinName(__pyx_n_s_print); if (!__pyx_builtin_print) __PYX_ERR(0, 118, __pyx_L1_error) __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 134, __pyx_L1_error) __pyx_builtin_sum = __Pyx_GetBuiltinName(__pyx_n_s_sum); if (!__pyx_builtin_sum) __PYX_ERR(0, 139, __pyx_L1_error) return 0; __pyx_L1_error:; return -1; } /* #### Code section: cached_constants ### */ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":54 * s = f'git -C {path} describe --tags --long --always' * try: * return subprocess.check_output(s, shell=True, stderr=subprocess.STDOUT).decode()[:-1] # <<<<<<<<<<<<<< * except subprocess.CalledProcessError as e: * return '' # not a git repository */ __pyx_slice__3 = PySlice_New(Py_None, __pyx_int_neg_1, Py_None); if (unlikely(!__pyx_slice__3)) __PYX_ERR(0, 54, __pyx_L1_error) __Pyx_GOTREF(__pyx_slice__3); __Pyx_GIVEREF(__pyx_slice__3); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":72 * # device = 'cpu' or '0' or '0,1,2,3' * s = f'YOLOv5 {git_describe() or date_modified()} torch {torch.__version__} ' # string * device = str(device).strip().lower().replace('cuda:', '') # to string, 'cuda:0' to '0' # <<<<<<<<<<<<<< * cpu = device == 'cpu' * if cpu: */ __pyx_tuple__6 = PyTuple_Pack(2, __pyx_kp_u_cuda, __pyx_kp_u__4); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(0, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__6); __Pyx_GIVEREF(__pyx_tuple__6); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":78 * elif device: # non-cpu device requested * os.environ['CUDA_VISIBLE_DEVICES'] = device # set environment variable - must be before assert is_available() * assert torch.cuda.is_available() and torch.cuda.device_count() >= len(device.replace(',', '')), \ # <<<<<<<<<<<<<< * f"Invalid CUDA '--device {device}' requested, use '--device cpu' or pass valid CUDA device(s)" * */ __pyx_tuple__8 = PyTuple_Pack(2, __pyx_kp_u__7, __pyx_kp_u__4); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__8); __Pyx_GIVEREF(__pyx_tuple__8); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":96 * if not newline: * s = s.rstrip() * LOGGER.info(s.encode().decode('ascii', 'ignore') if platform.system() == 'Windows' else s) # emoji-safe # <<<<<<<<<<<<<< * return torch.device('cuda:0' if cuda else 'cpu') * */ __pyx_tuple__11 = PyTuple_Pack(2, __pyx_n_u_ascii, __pyx_n_u_ignore); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(0, 96, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__11); __Pyx_GIVEREF(__pyx_tuple__11); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":197 * def prune(model, amount=0.3): * # Prune model to requested global sparsity * import torch.nn.utils.prune as prune # <<<<<<<<<<<<<< * print('Pruning model... ', end='') * for name, m in model.named_modules(): */ __pyx_tuple__12 = PyTuple_Pack(4, __pyx_n_s_torch_2, __pyx_n_s_nn, __pyx_n_s_utils, __pyx_n_s_prune); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(0, 197, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__12); __Pyx_GIVEREF(__pyx_tuple__12); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":198 * # Prune model to requested global sparsity * import torch.nn.utils.prune as prune * print('Pruning model... ', end='') # <<<<<<<<<<<<<< * for name, m in model.named_modules(): * if isinstance(m, nn.Conv2d): */ __pyx_tuple__14 = PyTuple_Pack(1, __pyx_kp_u_Pruning_model); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(0, 198, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__14); __Pyx_GIVEREF(__pyx_tuple__14); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":224 * b_conv = torch.zeros(conv.weight.size(0), device=conv.weight.device) if conv.bias is None else conv.bias * b_bn = bn.bias - bn.weight.mul(bn.running_mean).div(torch.sqrt(bn.running_var + bn.eps)) * fusedconv.bias.copy_(torch.mm(w_bn, b_conv.reshape(-1, 1)).reshape(-1) + b_bn) # <<<<<<<<<<<<<< * * return fusedconv */ __pyx_tuple__15 = PyTuple_Pack(2, __pyx_int_neg_1, __pyx_int_1); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(0, 224, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__15); __Pyx_GIVEREF(__pyx_tuple__15); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":236 * print(f"{'layer':>5} {'name':>40} {'gradient':>9} {'parameters':>12} {'shape':>20} {'mu':>10} {'sigma':>10}") * for i, (name, p) in enumerate(model.named_parameters()): * name = name.replace('module_list.', '') # <<<<<<<<<<<<<< * print('%5g %40s %9s %12g %20s %10.3g %10.3g' % * (i, name, p.requires_grad, p.numel(), list(p.shape), p.mean(), p.std())) */ __pyx_tuple__16 = PyTuple_Pack(2, __pyx_kp_u_module_list_2, __pyx_kp_u__4); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(0, 236, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__16); __Pyx_GIVEREF(__pyx_tuple__16); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":243 * from thop import profile * stride = max(int(model.stride.max()), 32) if hasattr(model, 'stride') else 32 * img = torch.zeros((1, model.yaml.get('ch', 3), stride, stride), device=next(model.parameters()).device) # input # <<<<<<<<<<<<<< * flops = profile(deepcopy(model), inputs=(img,), verbose=False)[0] / 1E9 * 2 # stride GFLOPs * img_size = img_size if isinstance(img_size, list) else [img_size, img_size] # expand if int/float */ __pyx_tuple__18 = PyTuple_Pack(2, __pyx_n_u_ch, __pyx_int_3); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(0, 243, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__18); __Pyx_GIVEREF(__pyx_tuple__18); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":258 * return img * else: * h, w = img.shape[2:] # <<<<<<<<<<<<<< * s = (int(h * ratio), int(w * ratio)) # new size * img = F.interpolate(img, size=s, mode='bilinear', align_corners=False) # resize */ __pyx_slice__19 = PySlice_New(__pyx_int_2, Py_None, Py_None); if (unlikely(!__pyx_slice__19)) __PYX_ERR(0, 258, __pyx_L1_error) __Pyx_GOTREF(__pyx_slice__19); __Pyx_GIVEREF(__pyx_slice__19); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":320 * def update(self, model): * # Update EMA parameters * with torch.no_grad(): # <<<<<<<<<<<<<< * self.updates += 1 * d = self.decay(self.updates) */ __pyx_tuple__21 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__21)) __PYX_ERR(0, 320, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__21); __Pyx_GIVEREF(__pyx_tuple__21); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":330 * v += (1 - d) * msd[k].detach() * * def update_attr(self, model, include=(), exclude=('process_group', 'reducer')): # <<<<<<<<<<<<<< * # Update EMA attributes * copy_attr(self.ema, model, include, exclude) */ __pyx_tuple__22 = PyTuple_Pack(2, __pyx_n_u_process_group, __pyx_n_u_reducer); if (unlikely(!__pyx_tuple__22)) __PYX_ERR(0, 330, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__22); __Pyx_GIVEREF(__pyx_tuple__22); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":20 * sys.path.append(str(ROOT) + "/../../../..") """ * import torch * import torch.distributed as dist # <<<<<<<<<<<<<< * import torch.nn as nn * import torch.nn.functional as F */ __pyx_tuple__23 = PyTuple_Pack(2, __pyx_n_s_torch_2, __pyx_n_s_distributed); if (unlikely(!__pyx_tuple__23)) __PYX_ERR(0, 20, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__23); __Pyx_GIVEREF(__pyx_tuple__23); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":21 * import torch * import torch.distributed as dist * import torch.nn as nn # <<<<<<<<<<<<<< * import torch.nn.functional as F * */ __pyx_tuple__24 = PyTuple_Pack(2, __pyx_n_s_torch_2, __pyx_n_s_nn); if (unlikely(!__pyx_tuple__24)) __PYX_ERR(0, 21, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__24); __Pyx_GIVEREF(__pyx_tuple__24); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":22 * import torch.distributed as dist * import torch.nn as nn * import torch.nn.functional as F # <<<<<<<<<<<<<< * * from pdf_toolbox.lib.dia_yolov5.utils.general import LOGGER */ __pyx_tuple__25 = PyTuple_Pack(3, __pyx_n_s_torch_2, __pyx_n_s_nn, __pyx_n_s_functional); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(0, 22, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__25); __Pyx_GIVEREF(__pyx_tuple__25); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":32 * * * @contextmanager # <<<<<<<<<<<<<< * def torch_distributed_zero_first(local_rank: int): * """ */ __pyx_tuple__26 = PyTuple_Pack(1, __pyx_n_s_local_rank); if (unlikely(!__pyx_tuple__26)) __PYX_ERR(0, 32, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__26); __Pyx_GIVEREF(__pyx_tuple__26); __pyx_codeobj_ = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__26, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pdf_toolbox_lib_dia_yolov5_utils_3, __pyx_n_s_torch_distributed_zero_first, 32, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj_)) __PYX_ERR(0, 32, __pyx_L1_error) /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":44 * * * def date_modified(path=__file__): # <<<<<<<<<<<<<< * # return human-readable file modification date, i.e. '2021-3-26' * t = datetime.datetime.fromtimestamp(Path(path).stat().st_mtime) */ __pyx_tuple__27 = PyTuple_Pack(2, __pyx_n_s_path, __pyx_n_s_t); if (unlikely(!__pyx_tuple__27)) __PYX_ERR(0, 44, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__27); __Pyx_GIVEREF(__pyx_tuple__27); __pyx_codeobj__28 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__27, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pdf_toolbox_lib_dia_yolov5_utils_3, __pyx_n_s_date_modified, 44, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__28)) __PYX_ERR(0, 44, __pyx_L1_error) /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":50 * * * def git_describe(path=Path(__file__).parent): # path must be a directory # <<<<<<<<<<<<<< * # return human-readable git description, i.e. v5.0-5-g3e25f1e https://git-scm.com/docs/git-describe * s = f'git -C {path} describe --tags --long --always' */ __pyx_tuple__29 = PyTuple_Pack(3, __pyx_n_s_path, __pyx_n_s_s, __pyx_n_s_e); if (unlikely(!__pyx_tuple__29)) __PYX_ERR(0, 50, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__29); __Pyx_GIVEREF(__pyx_tuple__29); __pyx_codeobj__30 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__29, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pdf_toolbox_lib_dia_yolov5_utils_3, __pyx_n_s_git_describe, 50, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__30)) __PYX_ERR(0, 50, __pyx_L1_error) /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":59 * * * def device_count(): # <<<<<<<<<<<<<< * # Returns number of CUDA devices available. Safe version of torch.cuda.device_count(). Only works on Linux. * assert platform.system() == 'Linux', 'device_count() function only works on Linux' */ __pyx_tuple__31 = PyTuple_Pack(2, __pyx_n_s_cmd, __pyx_n_s_e); if (unlikely(!__pyx_tuple__31)) __PYX_ERR(0, 59, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__31); __Pyx_GIVEREF(__pyx_tuple__31); __pyx_codeobj__32 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__31, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pdf_toolbox_lib_dia_yolov5_utils_3, __pyx_n_s_device_count, 59, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__32)) __PYX_ERR(0, 59, __pyx_L1_error) /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":69 * * * def select_device(device='', batch_size=0, newline=True): # <<<<<<<<<<<<<< * # device = 'cpu' or '0' or '0,1,2,3' * s = f'YOLOv5 {git_describe() or date_modified()} torch {torch.__version__} ' # string */ __pyx_tuple__33 = PyTuple_Pack(12, __pyx_n_s_device, __pyx_n_s_batch_size, __pyx_n_s_newline, __pyx_n_s_s, __pyx_n_s_cpu, __pyx_n_s_cuda_2, __pyx_n_s_devices, __pyx_n_s_n, __pyx_n_s_space, __pyx_n_s_i, __pyx_n_s_d, __pyx_n_s_p); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__33); __Pyx_GIVEREF(__pyx_tuple__33); __pyx_codeobj__34 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__33, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pdf_toolbox_lib_dia_yolov5_utils_3, __pyx_n_s_select_device, 69, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__34)) __PYX_ERR(0, 69, __pyx_L1_error) __pyx_tuple__35 = PyTuple_Pack(3, ((PyObject*)__pyx_kp_u__4), ((PyObject *)__pyx_int_0), ((PyObject *)Py_True)); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__35); __Pyx_GIVEREF(__pyx_tuple__35); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":100 * * * def time_sync(): # <<<<<<<<<<<<<< * # pytorch-accurate time * if torch.cuda.is_available(): */ __pyx_codeobj__36 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pdf_toolbox_lib_dia_yolov5_utils_3, __pyx_n_s_time_sync, 100, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__36)) __PYX_ERR(0, 100, __pyx_L1_error) /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":107 * * * def profile(input, ops, n=10, device=None): # <<<<<<<<<<<<<< * # YOLOv5 speed/memory/FLOPs profiler * # */ __pyx_tuple__37 = PyTuple_Pack(21, __pyx_n_s_input, __pyx_n_s_ops, __pyx_n_s_n, __pyx_n_s_device, __pyx_n_s_results, __pyx_n_s_x, __pyx_n_s_m, __pyx_n_s_tf, __pyx_n_s_tb, __pyx_n_s_t, __pyx_n_s_flops, __pyx_n_s__20, __pyx_n_s_y, __pyx_n_s_e, __pyx_n_s_mem, __pyx_n_s_s_in, __pyx_n_s_s_out, __pyx_n_s_p, __pyx_n_s_genexpr, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__37)) __PYX_ERR(0, 107, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__37); __Pyx_GIVEREF(__pyx_tuple__37); __pyx_codeobj__38 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 21, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__37, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pdf_toolbox_lib_dia_yolov5_utils_3, __pyx_n_s_profile, 107, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__38)) __PYX_ERR(0, 107, __pyx_L1_error) __pyx_tuple__39 = PyTuple_Pack(2, ((PyObject *)__pyx_int_10), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__39)) __PYX_ERR(0, 107, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__39); __Pyx_GIVEREF(__pyx_tuple__39); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":159 * * * def is_parallel(model): # <<<<<<<<<<<<<< * # Returns True if model is of type DP or DDP * return type(model) in (nn.parallel.DataParallel, nn.parallel.DistributedDataParallel) */ __pyx_tuple__40 = PyTuple_Pack(1, __pyx_n_s_model); if (unlikely(!__pyx_tuple__40)) __PYX_ERR(0, 159, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__40); __Pyx_GIVEREF(__pyx_tuple__40); __pyx_codeobj__41 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__40, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pdf_toolbox_lib_dia_yolov5_utils_3, __pyx_n_s_is_parallel, 159, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__41)) __PYX_ERR(0, 159, __pyx_L1_error) /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":164 * * * def de_parallel(model): # <<<<<<<<<<<<<< * # De-parallelize a model: returns single-GPU model if model is of type DP or DDP * return model.module if is_parallel(model) else model */ __pyx_codeobj__42 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__40, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pdf_toolbox_lib_dia_yolov5_utils_3, __pyx_n_s_de_parallel, 164, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__42)) __PYX_ERR(0, 164, __pyx_L1_error) /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":169 * * * def initialize_weights(model): # <<<<<<<<<<<<<< * for m in model.modules(): * t = type(m) */ __pyx_tuple__43 = PyTuple_Pack(3, __pyx_n_s_model, __pyx_n_s_m, __pyx_n_s_t); if (unlikely(!__pyx_tuple__43)) __PYX_ERR(0, 169, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__43); __Pyx_GIVEREF(__pyx_tuple__43); __pyx_codeobj__44 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__43, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pdf_toolbox_lib_dia_yolov5_utils_3, __pyx_n_s_initialize_weights, 169, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__44)) __PYX_ERR(0, 169, __pyx_L1_error) /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":181 * * * def find_modules(model, mclass=nn.Conv2d): # <<<<<<<<<<<<<< * # Finds layer indices matching module class 'mclass' * return [i for i, m in enumerate(model.module_list) if isinstance(m, mclass)] */ __pyx_tuple__45 = PyTuple_Pack(4, __pyx_n_s_model, __pyx_n_s_mclass, __pyx_n_s_i, __pyx_n_s_m); if (unlikely(!__pyx_tuple__45)) __PYX_ERR(0, 181, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__45); __Pyx_GIVEREF(__pyx_tuple__45); __pyx_codeobj__46 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__45, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pdf_toolbox_lib_dia_yolov5_utils_3, __pyx_n_s_find_modules, 181, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__46)) __PYX_ERR(0, 181, __pyx_L1_error) /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":186 * * * def sparsity(model): # <<<<<<<<<<<<<< * # Return global model sparsity * a, b = 0, 0 */ __pyx_tuple__47 = PyTuple_Pack(4, __pyx_n_s_model, __pyx_n_s_a, __pyx_n_s_b, __pyx_n_s_p); if (unlikely(!__pyx_tuple__47)) __PYX_ERR(0, 186, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__47); __Pyx_GIVEREF(__pyx_tuple__47); __pyx_codeobj__48 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__47, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pdf_toolbox_lib_dia_yolov5_utils_3, __pyx_n_s_sparsity, 186, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__48)) __PYX_ERR(0, 186, __pyx_L1_error) /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":195 * * * def prune(model, amount=0.3): # <<<<<<<<<<<<<< * # Prune model to requested global sparsity * import torch.nn.utils.prune as prune */ __pyx_tuple__49 = PyTuple_Pack(5, __pyx_n_s_model, __pyx_n_s_amount, __pyx_n_s_prune, __pyx_n_s_name, __pyx_n_s_m); if (unlikely(!__pyx_tuple__49)) __PYX_ERR(0, 195, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__49); __Pyx_GIVEREF(__pyx_tuple__49); __pyx_codeobj__50 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__49, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pdf_toolbox_lib_dia_yolov5_utils_3, __pyx_n_s_prune, 195, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__50)) __PYX_ERR(0, 195, __pyx_L1_error) __pyx_tuple__51 = PyTuple_Pack(1, ((PyObject*)__pyx_float_0_3)); if (unlikely(!__pyx_tuple__51)) __PYX_ERR(0, 195, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__51); __Pyx_GIVEREF(__pyx_tuple__51); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":206 * * * def fuse_conv_and_bn(conv, bn): # <<<<<<<<<<<<<< * # Fuse convolution and batchnorm layers https://tehnokv.com/posts/fusing-batchnorm-and-conv/ * fusedconv = nn.Conv2d(conv.in_channels, */ __pyx_tuple__52 = PyTuple_Pack(7, __pyx_n_s_conv, __pyx_n_s_bn, __pyx_n_s_fusedconv, __pyx_n_s_w_conv, __pyx_n_s_w_bn, __pyx_n_s_b_conv, __pyx_n_s_b_bn); if (unlikely(!__pyx_tuple__52)) __PYX_ERR(0, 206, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__52); __Pyx_GIVEREF(__pyx_tuple__52); __pyx_codeobj__53 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pdf_toolbox_lib_dia_yolov5_utils_3, __pyx_n_s_fuse_conv_and_bn, 206, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__53)) __PYX_ERR(0, 206, __pyx_L1_error) /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":229 * * * def model_info(model, verbose=False, img_size=640): # <<<<<<<<<<<<<< * # Model information. img_size may be int or list, i.e. img_size=640 or img_size=[640, 320] * n_p = sum(x.numel() for x in model.parameters()) # number parameters */ __pyx_tuple__54 = PyTuple_Pack(16, __pyx_n_s_model, __pyx_n_s_verbose, __pyx_n_s_img_size, __pyx_n_s_n_p, __pyx_n_s_n_g, __pyx_n_s_i, __pyx_n_s_name, __pyx_n_s_p, __pyx_n_s_profile, __pyx_n_s_stride, __pyx_n_s_img, __pyx_n_s_flops, __pyx_n_s_fs, __pyx_n_s_genexpr, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__54)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__54); __Pyx_GIVEREF(__pyx_tuple__54); __pyx_codeobj__55 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 16, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__54, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pdf_toolbox_lib_dia_yolov5_utils_3, __pyx_n_s_model_info, 229, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__55)) __PYX_ERR(0, 229, __pyx_L1_error) __pyx_tuple__56 = PyTuple_Pack(2, ((PyObject *)Py_False), ((PyObject *)__pyx_int_640)); if (unlikely(!__pyx_tuple__56)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__56); __Pyx_GIVEREF(__pyx_tuple__56); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":253 * * * def scale_img(img, ratio=1.0, same_shape=False, gs=32): # img(16,3,256,416) # <<<<<<<<<<<<<< * # scales img(bs,3,y,x) by ratio constrained to gs-multiple * if ratio == 1.0: */ __pyx_tuple__57 = PyTuple_Pack(9, __pyx_n_s_img, __pyx_n_s_ratio, __pyx_n_s_same_shape, __pyx_n_s_gs, __pyx_n_s_h, __pyx_n_s_w, __pyx_n_s_s, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__57)) __PYX_ERR(0, 253, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__57); __Pyx_GIVEREF(__pyx_tuple__57); __pyx_codeobj__58 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__57, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pdf_toolbox_lib_dia_yolov5_utils_3, __pyx_n_s_scale_img, 253, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__58)) __PYX_ERR(0, 253, __pyx_L1_error) __pyx_tuple__59 = PyTuple_Pack(3, ((PyObject*)__pyx_float_1_0), ((PyObject *)Py_False), ((PyObject *)__pyx_int_32)); if (unlikely(!__pyx_tuple__59)) __PYX_ERR(0, 253, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__59); __Pyx_GIVEREF(__pyx_tuple__59); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":266 * * * def copy_attr(a, b, include=(), exclude=()): # <<<<<<<<<<<<<< * # Copy attributes from b to a, options to only include [...] and to exclude [...] * for k, v in b.__dict__.items(): */ __pyx_tuple__60 = PyTuple_Pack(6, __pyx_n_s_a, __pyx_n_s_b, __pyx_n_s_include, __pyx_n_s_exclude, __pyx_n_s_k, __pyx_n_s_v); if (unlikely(!__pyx_tuple__60)) __PYX_ERR(0, 266, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__60); __Pyx_GIVEREF(__pyx_tuple__60); __pyx_codeobj__61 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__60, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pdf_toolbox_lib_dia_yolov5_utils_3, __pyx_n_s_copy_attr, 266, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__61)) __PYX_ERR(0, 266, __pyx_L1_error) __pyx_tuple__62 = PyTuple_Pack(2, ((PyObject*)__pyx_empty_tuple), ((PyObject*)__pyx_empty_tuple)); if (unlikely(!__pyx_tuple__62)) __PYX_ERR(0, 266, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__62); __Pyx_GIVEREF(__pyx_tuple__62); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":277 * class EarlyStopping: * # YOLOv5 simple early stopper * def __init__(self, patience=30): # <<<<<<<<<<<<<< * self.best_fitness = 0.0 # i.e. mAP * self.best_epoch = 0 */ __pyx_tuple__63 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_patience); if (unlikely(!__pyx_tuple__63)) __PYX_ERR(0, 277, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__63); __Pyx_GIVEREF(__pyx_tuple__63); __pyx_codeobj__64 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__63, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pdf_toolbox_lib_dia_yolov5_utils_3, __pyx_n_s_init, 277, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__64)) __PYX_ERR(0, 277, __pyx_L1_error) __pyx_tuple__65 = PyTuple_Pack(1, ((PyObject *)__pyx_int_30)); if (unlikely(!__pyx_tuple__65)) __PYX_ERR(0, 277, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__65); __Pyx_GIVEREF(__pyx_tuple__65); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":283 * self.possible_stop = False # possible stop may occur next epoch * * def __call__(self, epoch, fitness): # <<<<<<<<<<<<<< * if fitness >= self.best_fitness: # >= 0 to allow for early zero-fitness stage of training * self.best_epoch = epoch */ __pyx_tuple__66 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_epoch, __pyx_n_s_fitness, __pyx_n_s_delta, __pyx_n_s_stop); if (unlikely(!__pyx_tuple__66)) __PYX_ERR(0, 283, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__66); __Pyx_GIVEREF(__pyx_tuple__66); __pyx_codeobj__67 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__66, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pdf_toolbox_lib_dia_yolov5_utils_3, __pyx_n_s_call, 283, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__67)) __PYX_ERR(0, 283, __pyx_L1_error) /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":308 * """ * * def __init__(self, model, decay=0.9999, updates=0): # <<<<<<<<<<<<<< * # Create EMA * self.ema = deepcopy(de_parallel(model)).eval() # FP32 EMA */ __pyx_tuple__68 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_model, __pyx_n_s_decay, __pyx_n_s_updates, __pyx_n_s_p); if (unlikely(!__pyx_tuple__68)) __PYX_ERR(0, 308, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__68); __Pyx_GIVEREF(__pyx_tuple__68); __pyx_codeobj__69 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__68, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pdf_toolbox_lib_dia_yolov5_utils_3, __pyx_n_s_init, 308, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__69)) __PYX_ERR(0, 308, __pyx_L1_error) __pyx_tuple__70 = PyTuple_Pack(2, ((PyObject*)__pyx_float_0_9999), ((PyObject *)__pyx_int_0)); if (unlikely(!__pyx_tuple__70)) __PYX_ERR(0, 308, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__70); __Pyx_GIVEREF(__pyx_tuple__70); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":318 * p.requires_grad_(False) * * def update(self, model): # <<<<<<<<<<<<<< * # Update EMA parameters * with torch.no_grad(): */ __pyx_tuple__71 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_model, __pyx_n_s_d, __pyx_n_s_msd, __pyx_n_s_k, __pyx_n_s_v); if (unlikely(!__pyx_tuple__71)) __PYX_ERR(0, 318, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__71); __Pyx_GIVEREF(__pyx_tuple__71); __pyx_codeobj__72 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pdf_toolbox_lib_dia_yolov5_utils_3, __pyx_n_s_update, 318, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__72)) __PYX_ERR(0, 318, __pyx_L1_error) /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":330 * v += (1 - d) * msd[k].detach() * * def update_attr(self, model, include=(), exclude=('process_group', 'reducer')): # <<<<<<<<<<<<<< * # Update EMA attributes * copy_attr(self.ema, model, include, exclude) */ __pyx_tuple__73 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_model, __pyx_n_s_include, __pyx_n_s_exclude); if (unlikely(!__pyx_tuple__73)) __PYX_ERR(0, 330, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__73); __Pyx_GIVEREF(__pyx_tuple__73); __pyx_codeobj__74 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__73, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pdf_toolbox_lib_dia_yolov5_utils_3, __pyx_n_s_update_attr, 330, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__74)) __PYX_ERR(0, 330, __pyx_L1_error) __pyx_tuple__75 = PyTuple_Pack(2, ((PyObject*)__pyx_empty_tuple), ((PyObject*)__pyx_tuple__22)); if (unlikely(!__pyx_tuple__75)) __PYX_ERR(0, 330, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__75); __Pyx_GIVEREF(__pyx_tuple__75); __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; __Pyx_RefNannyFinishContext(); return -1; } /* #### Code section: init_constants ### */ static CYTHON_SMALL_CODE int __Pyx_InitConstants(void) { __pyx_umethod_PyUnicode_Type_rstrip.type = (PyObject*)&PyUnicode_Type; __pyx_umethod_PyUnicode_Type_rstrip.method_name = &__pyx_n_s_rstrip; #if CYTHON_USE_MODULE_STATE if (__Pyx_InitString(__pyx_string_tab[0], &__pyx_kp_u_0) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[1], &__pyx_kp_u_0f) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[2], &__pyx_kp_u_1) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[3], &__pyx_kp_u_10) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[4], &__pyx_kp_u_12) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[5], &__pyx_kp_u_12_2) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[6], &__pyx_kp_u_12_4g) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[7], &__pyx_kp_u_12s) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[8], &__pyx_kp_u_14_3f) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[9], &__pyx_kp_u_14_4g) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[10], &__pyx_kp_u_14s) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[11], &__pyx_kp_u_1f_GFLOPs) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[12], &__pyx_kp_u_20) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[13], &__pyx_kp_u_24s) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[14], &__pyx_kp_u_3g_global_sparsity) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[15], &__pyx_kp_u_40) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[16], &__pyx_kp_u_5) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[17], &__pyx_kp_u_5g_40s_9s_12g_20s_10_3g_10_3g) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[18], &__pyx_kp_u_9) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[19], &__pyx_n_s_AssertionError) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[20], &__pyx_n_s_BatchNorm2d) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[21], &__pyx_n_u_CPU) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[22], &__pyx_kp_u_CUDA) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[23], &__pyx_n_u_CUDA_VISIBLE_DEVICES) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[24], &__pyx_n_s_CalledProcessError) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[25], &__pyx_n_s_Conv2d) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[26], &__pyx_n_s_DataParallel) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[27], &__pyx_n_s_DistributedDataParallel) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[28], &__pyx_n_s_EarlyStopping) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[29], &__pyx_n_s_EarlyStopping___call) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[30], &__pyx_n_s_EarlyStopping___init) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[31], &__pyx_n_s_F) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[32], &__pyx_n_u_GFLOPs) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[33], &__pyx_kp_u_GPU_mem_GB) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[34], &__pyx_n_s_Hardswish) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[35], &__pyx_n_s_ImportError) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[36], &__pyx_kp_u_Invalid_CUDA_device) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[37], &__pyx_n_s_LOGGER) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[38], &__pyx_n_s_LeakyReLU) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[39], &__pyx_n_u_Linux) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[40], &__pyx_kp_u_MiB) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[41], &__pyx_n_s_ModelEMA) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[42], &__pyx_n_s_ModelEMA___init) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[43], &__pyx_n_s_ModelEMA___init___locals_lambda) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[44], &__pyx_n_s_ModelEMA_update) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[45], &__pyx_n_s_ModelEMA_update_attr) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[46], &__pyx_kp_s_Model_Exponential_Moving_Averag) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[47], &__pyx_kp_u_Model_Summary) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[48], &__pyx_n_s_Module) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[49], &__pyx_kp_u_None) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[50], &__pyx_n_u_Params) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[51], &__pyx_n_s_Path) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[52], &__pyx_kp_u_Pruning_model) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[53], &__pyx_n_s_ReLU) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[54], &__pyx_n_s_ReLU6) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[55], &__pyx_n_s_STDOUT) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[56], &__pyx_n_s_SiLU) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[57], &__pyx_kp_u_Stopping_training_early_as_no_im) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[58], &__pyx_n_s_Tensor) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[59], &__pyx_n_u_Windows) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[60], &__pyx_kp_u_YOLOv5) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[61], &__pyx_kp_u__10) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[62], &__pyx_n_s__13) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[63], &__pyx_kp_u__17) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[64], &__pyx_kp_u__2) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[65], &__pyx_n_s__20) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[66], &__pyx_n_u__20) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[67], &__pyx_kp_u__4) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[68], &__pyx_kp_u__5) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[69], &__pyx_kp_u__7) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[70], &__pyx_n_s__76) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[71], &__pyx_kp_u__9) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[72], &__pyx_n_s_a) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[73], &__pyx_n_s_align_corners) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[74], &__pyx_n_s_amount) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[75], &__pyx_n_s_args) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[76], &__pyx_n_u_ascii) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[77], &__pyx_n_s_asyncio_coroutines) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[78], &__pyx_n_s_b) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[79], &__pyx_n_s_b_bn) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[80], &__pyx_n_s_b_conv) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[81], &__pyx_n_s_backward) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[82], &__pyx_kp_u_backward_ms) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[83], &__pyx_n_s_barrier) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[84], &__pyx_n_s_batch_size) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[85], &__pyx_kp_u_batch_size_2) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[86], &__pyx_n_s_best_epoch) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[87], &__pyx_n_s_best_fitness) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[88], &__pyx_kp_u_best_model_saved_as_best_pt_To) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[89], &__pyx_n_s_bias) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[90], &__pyx_n_u_bilinear) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[91], &__pyx_n_s_bn) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[92], &__pyx_n_s_call) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[93], &__pyx_n_s_capture_output) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[94], &__pyx_n_s_ceil) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[95], &__pyx_n_u_ch) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[96], &__pyx_n_s_check) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[97], &__pyx_n_s_check_output) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[98], &__pyx_n_s_class_getitem) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[99], &__pyx_n_s_cline_in_traceback) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[100], &__pyx_n_s_clone) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[101], &__pyx_n_s_close) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[102], &__pyx_n_s_cmd) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[103], &__pyx_n_s_contextlib) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[104], &__pyx_n_s_contextmanager) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[105], &__pyx_n_s_conv) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[106], &__pyx_n_s_copy) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[107], &__pyx_n_s_copy_2) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[108], &__pyx_n_s_copy_attr) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[109], &__pyx_n_s_cpu) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[110], &__pyx_n_u_cpu) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[111], &__pyx_kp_u_cuda) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[112], &__pyx_kp_u_cuda_0) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[113], &__pyx_n_s_cuda_2) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[114], &__pyx_n_s_d) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[115], &__pyx_n_s_date_modified) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[116], &__pyx_n_s_datetime) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[117], &__pyx_n_s_day) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[118], &__pyx_n_s_de_parallel) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[119], &__pyx_n_s_decay) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[120], &__pyx_n_s_decode) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[121], &__pyx_n_s_deepcopy) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[122], &__pyx_n_s_delta) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[123], &__pyx_kp_u_describe_tags_long_always) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[124], &__pyx_n_s_detach) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[125], &__pyx_n_s_device) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[126], &__pyx_n_s_device_count) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[127], &__pyx_kp_u_device_count_function_only_works) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[128], &__pyx_n_s_device_ids) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[129], &__pyx_n_s_devices) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[130], &__pyx_n_s_diag) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[131], &__pyx_n_s_dict) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[132], &__pyx_kp_u_disable) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[133], &__pyx_n_s_dist) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[134], &__pyx_n_s_distributed) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[135], &__pyx_n_s_div) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[136], &__pyx_n_s_doc) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[137], &__pyx_n_s_dtype) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[138], &__pyx_n_s_e) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[139], &__pyx_n_s_ema) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[140], &__pyx_n_s_empty_cache) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[141], &__pyx_kp_u_enable) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[142], &__pyx_n_s_encode) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[143], &__pyx_n_s_end) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[144], &__pyx_n_s_enter) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[145], &__pyx_n_s_enumerate) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[146], &__pyx_n_s_environ) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[147], &__pyx_n_s_epoch) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[148], &__pyx_kp_u_epochs_Best_results_observed_at) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[149], &__pyx_n_s_eps) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[150], &__pyx_n_s_eval) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[151], &__pyx_n_s_exclude) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[152], &__pyx_n_s_exit) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[153], &__pyx_n_s_exp) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[154], &__pyx_n_s_file) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[155], &__pyx_n_s_find_modules) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[156], &__pyx_n_s_fitness) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[157], &__pyx_n_s_float16) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[158], &__pyx_n_s_flops) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[159], &__pyx_kp_u_forward_ms) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[160], &__pyx_n_s_fromtimestamp) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[161], &__pyx_n_s_fs) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[162], &__pyx_n_s_functional) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[163], &__pyx_n_s_fuse_conv_and_bn) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[164], &__pyx_n_s_fusedconv) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[165], &__pyx_kp_u_gc) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[166], &__pyx_n_s_genexpr) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[167], &__pyx_n_s_get) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[168], &__pyx_n_s_get_device_properties) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[169], &__pyx_kp_u_git_C) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[170], &__pyx_n_s_git_describe) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[171], &__pyx_n_u_gradient) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[172], &__pyx_kp_u_gradients) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[173], &__pyx_n_s_groups) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[174], &__pyx_n_s_gs) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[175], &__pyx_n_s_h) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[176], &__pyx_n_s_half) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[177], &__pyx_n_u_half) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[178], &__pyx_n_s_i) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[179], &__pyx_n_u_ignore) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[180], &__pyx_n_s_img) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[181], &__pyx_n_s_img_size) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[182], &__pyx_n_s_import) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[183], &__pyx_n_s_in_channels) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[184], &__pyx_n_s_include) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[185], &__pyx_n_u_inf) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[186], &__pyx_n_s_info) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[187], &__pyx_n_s_init) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[188], &__pyx_n_s_init_subclass) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[189], &__pyx_n_s_initialize_weights) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[190], &__pyx_n_s_initializing) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[191], &__pyx_n_s_inplace) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[192], &__pyx_n_s_input) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[193], &__pyx_n_u_input) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[194], &__pyx_n_s_inputs) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[195], &__pyx_n_s_int) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[196], &__pyx_n_s_interpolate) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[197], &__pyx_n_s_is_available) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[198], &__pyx_n_s_is_coroutine) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[199], &__pyx_n_s_is_floating_point) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[200], &__pyx_n_s_is_parallel) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[201], &__pyx_kp_u_isenabled) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[202], &__pyx_n_s_items) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[203], &__pyx_n_s_k) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[204], &__pyx_n_s_kernel_size) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[205], &__pyx_n_s_l1_unstructured) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[206], &__pyx_n_u_layer) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[207], &__pyx_kp_u_layers) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[208], &__pyx_n_u_list) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[209], &__pyx_n_s_local_rank) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[210], &__pyx_n_s_lower) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[211], &__pyx_n_s_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[212], &__pyx_n_s_main) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[213], &__pyx_n_s_math) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[214], &__pyx_n_s_max) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[215], &__pyx_n_s_mclass) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[216], &__pyx_n_s_mean) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[217], &__pyx_n_s_mem) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[218], &__pyx_n_s_memory_reserved) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[219], &__pyx_n_s_metaclass) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[220], &__pyx_n_s_mm) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[221], &__pyx_n_s_mode) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[222], &__pyx_n_s_model) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[223], &__pyx_n_s_model_info) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[224], &__pyx_n_s_model_info_locals_genexpr) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[225], &__pyx_n_s_module) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[226], &__pyx_n_s_module_2) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[227], &__pyx_n_s_module_list) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[228], &__pyx_kp_u_module_list_2) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[229], &__pyx_n_s_modules) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[230], &__pyx_n_s_momentum) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[231], &__pyx_n_s_month) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[232], &__pyx_n_s_msd) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[233], &__pyx_n_u_mu) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[234], &__pyx_n_s_mul) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[235], &__pyx_n_s_n) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[236], &__pyx_n_s_n_g) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[237], &__pyx_n_s_n_p) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[238], &__pyx_n_s_name) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[239], &__pyx_n_u_name) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[240], &__pyx_n_s_name_2) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[241], &__pyx_n_s_named_modules) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[242], &__pyx_n_s_named_parameters) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[243], &__pyx_n_u_nan) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[244], &__pyx_n_s_newline) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[245], &__pyx_n_s_nn) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[246], &__pyx_n_s_no_grad) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[247], &__pyx_kp_u_not_multiple_of_GPU_count) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[248], &__pyx_n_s_numel) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[249], &__pyx_kp_u_nvidia_smi_L_wc_l) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[250], &__pyx_n_s_ops) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[251], &__pyx_n_s_os) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[252], &__pyx_n_s_out_channels) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[253], &__pyx_n_u_output) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[254], &__pyx_n_s_p) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[255], &__pyx_n_s_pad) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[256], &__pyx_n_s_padding) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[257], &__pyx_n_s_parallel) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[258], &__pyx_n_s_parameters) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[259], &__pyx_n_u_parameters) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[260], &__pyx_kp_u_parameters_2) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[261], &__pyx_n_s_parent) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[262], &__pyx_kp_u_pass_a_new_patience_value_i_e_p) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[263], &__pyx_n_s_path) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[264], &__pyx_n_s_pathlib) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[265], &__pyx_n_s_patience) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[266], &__pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[267], &__pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils_2) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[268], &__pyx_kp_s_pdf_toolbox_lib_dia_yolov5_utils_3) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[269], &__pyx_n_s_platform) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[270], &__pyx_n_s_possible_stop) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[271], &__pyx_n_s_prepare) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[272], &__pyx_n_s_print) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[273], &__pyx_n_u_process_group) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[274], &__pyx_n_s_profile) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[275], &__pyx_n_s_profile_locals_genexpr) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[276], &__pyx_n_s_prune) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[277], &__pyx_n_s_qualname) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[278], &__pyx_n_s_range) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[279], &__pyx_n_s_ratio) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[280], &__pyx_n_u_reducer) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[281], &__pyx_n_s_remove) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[282], &__pyx_n_s_replace) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[283], &__pyx_kp_u_requested_use_device_cpu_or_pas) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[284], &__pyx_n_s_requires_grad) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[285], &__pyx_n_s_requires_grad_2) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[286], &__pyx_n_s_reshape) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[287], &__pyx_n_s_results) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[288], &__pyx_n_s_rstrip) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[289], &__pyx_n_s_run) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[290], &__pyx_n_s_running_mean) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[291], &__pyx_n_s_running_var) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[292], &__pyx_n_s_s) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[293], &__pyx_n_s_s_in) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[294], &__pyx_n_s_s_out) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[295], &__pyx_n_s_same_shape) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[296], &__pyx_n_s_scale_img) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[297], &__pyx_n_s_scale_img_locals_genexpr) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[298], &__pyx_n_s_select_device) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[299], &__pyx_n_s_self) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[300], &__pyx_n_s_send) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[301], &__pyx_n_s_set_name) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[302], &__pyx_n_s_shape) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[303], &__pyx_n_u_shape) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[304], &__pyx_n_s_shell) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[305], &__pyx_n_u_sigma) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[306], &__pyx_n_s_size) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[307], &__pyx_n_s_space) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[308], &__pyx_n_s_sparsity) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[309], &__pyx_n_s_spec) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[310], &__pyx_n_s_split) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[311], &__pyx_n_s_sqrt) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[312], &__pyx_n_s_st_mtime) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[313], &__pyx_n_s_startswith) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[314], &__pyx_n_s_stat) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[315], &__pyx_n_s_state_dict) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[316], &__pyx_n_s_std) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[317], &__pyx_n_s_stderr) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[318], &__pyx_n_s_stdout) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[319], &__pyx_n_s_stop) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[320], &__pyx_n_s_stride) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[321], &__pyx_n_u_stride) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[322], &__pyx_n_s_strip) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[323], &__pyx_n_s_subprocess) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[324], &__pyx_n_s_sum) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[325], &__pyx_n_s_super) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[326], &__pyx_n_s_synchronize) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[327], &__pyx_n_s_sys) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[328], &__pyx_n_s_system) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[329], &__pyx_n_s_t) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[330], &__pyx_n_s_tb) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[331], &__pyx_n_s_test) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[332], &__pyx_n_s_tf) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[333], &__pyx_n_s_thop) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[334], &__pyx_n_s_throw) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[335], &__pyx_n_s_time) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[336], &__pyx_n_s_time_sync) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[337], &__pyx_n_s_to) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[338], &__pyx_n_u_to) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[339], &__pyx_kp_u_torch) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[340], &__pyx_n_s_torch_2) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[341], &__pyx_n_s_torch_distributed) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[342], &__pyx_n_s_torch_distributed_zero_first) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[343], &__pyx_n_s_torch_nn) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[344], &__pyx_n_s_torch_nn_functional) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[345], &__pyx_n_s_torch_nn_utils_prune) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[346], &__pyx_n_s_total_memory) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[347], &__pyx_n_s_update) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[348], &__pyx_n_s_update_attr) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[349], &__pyx_n_s_updates) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[350], &__pyx_n_s_utils) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[351], &__pyx_n_s_v) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[352], &__pyx_n_s_value) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[353], &__pyx_n_s_verbose) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[354], &__pyx_n_s_version) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[355], &__pyx_n_s_view) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[356], &__pyx_n_s_w) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[357], &__pyx_n_s_w_bn) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[358], &__pyx_n_s_w_conv) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[359], &__pyx_n_s_weight) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[360], &__pyx_n_u_weight) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[361], &__pyx_n_s_x) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[362], &__pyx_n_s_y) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[363], &__pyx_n_s_yaml) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[364], &__pyx_n_s_year) < 0) __PYX_ERR(0, 1, __pyx_L1_error); if (__Pyx_InitString(__pyx_string_tab[365], &__pyx_n_s_zeros) < 0) __PYX_ERR(0, 1, __pyx_L1_error); #endif #if !CYTHON_USE_MODULE_STATE if (__Pyx_InitStrings(__pyx_string_tab) < 0) __PYX_ERR(0, 1, __pyx_L1_error); #endif __pyx_float_0_0 = PyFloat_FromDouble(0.0); if (unlikely(!__pyx_float_0_0)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_float_0_3 = PyFloat_FromDouble(0.3); if (unlikely(!__pyx_float_0_3)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_float_1_0 = PyFloat_FromDouble(1.0); if (unlikely(!__pyx_float_1_0)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_float_1E9 = PyFloat_FromDouble(1E9); if (unlikely(!__pyx_float_1E9)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_float_0_03 = PyFloat_FromDouble(0.03); if (unlikely(!__pyx_float_0_03)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_float_1eneg_3 = PyFloat_FromDouble(1e-3); if (unlikely(!__pyx_float_1eneg_3)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_float_0_447 = PyFloat_FromDouble(0.447); if (unlikely(!__pyx_float_0_447)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_float_0_9999 = PyFloat_FromDouble(0.9999); if (unlikely(!__pyx_float_0_9999)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_2 = PyInt_FromLong(2); if (unlikely(!__pyx_int_2)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_3 = PyInt_FromLong(3); if (unlikely(!__pyx_int_3)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_10 = PyInt_FromLong(10); if (unlikely(!__pyx_int_10)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_30 = PyInt_FromLong(30); if (unlikely(!__pyx_int_30)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_32 = PyInt_FromLong(32); if (unlikely(!__pyx_int_32)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_640 = PyInt_FromLong(640); if (unlikely(!__pyx_int_640)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_1000 = PyInt_FromLong(1000); if (unlikely(!__pyx_int_1000)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_2000 = PyInt_FromLong(2000); if (unlikely(!__pyx_int_2000)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_1048576 = PyInt_FromLong(1048576L); if (unlikely(!__pyx_int_1048576)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_neg_1 = PyInt_FromLong(-1); if (unlikely(!__pyx_int_neg_1)) __PYX_ERR(0, 1, __pyx_L1_error) return 0; __pyx_L1_error:; return -1; } /* #### Code section: init_globals ### */ static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) { return 0; } /* #### Code section: init_module ### */ static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(void); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(void); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(void); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(void); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(void); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(void); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(void); /*proto*/ static int __Pyx_modinit_global_init_code(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0); /*--- Global init code ---*/ __Pyx_RefNannyFinishContext(); return 0; } static int __Pyx_modinit_variable_export_code(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0); /*--- Variable export code ---*/ __Pyx_RefNannyFinishContext(); return 0; } static int __Pyx_modinit_function_export_code(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0); /*--- Function export code ---*/ __Pyx_RefNannyFinishContext(); return 0; } static int __Pyx_modinit_type_init_code(void) { __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); /*--- Type init code ---*/ #if CYTHON_USE_TYPE_SPECS __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first_spec, NULL); if (unlikely(!__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first)) __PYX_ERR(0, 32, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first_spec, __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first) < 0) __PYX_ERR(0, 32, __pyx_L1_error) #else __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first = &__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first) < 0) __PYX_ERR(0, 32, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first->tp_dictoffset && __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct__torch_distributed_zero_first->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile_spec, NULL); if (unlikely(!__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile)) __PYX_ERR(0, 107, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile_spec, __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile) < 0) __PYX_ERR(0, 107, __pyx_L1_error) #else __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile = &__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile) < 0) __PYX_ERR(0, 107, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile->tp_dictoffset && __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_1_profile->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr_spec, NULL); if (unlikely(!__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr)) __PYX_ERR(0, 139, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr_spec, __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr) < 0) __PYX_ERR(0, 139, __pyx_L1_error) #else __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr = &__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr) < 0) __PYX_ERR(0, 139, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr->tp_dictoffset && __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_2_genexpr->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr_spec, NULL); if (unlikely(!__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr)) __PYX_ERR(0, 149, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr_spec, __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr) < 0) __PYX_ERR(0, 149, __pyx_L1_error) #else __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr = &__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr) < 0) __PYX_ERR(0, 149, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr->tp_dictoffset && __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_3_genexpr->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info_spec, NULL); if (unlikely(!__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info)) __PYX_ERR(0, 229, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info_spec, __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info) < 0) __PYX_ERR(0, 229, __pyx_L1_error) #else __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info = &__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info) < 0) __PYX_ERR(0, 229, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info->tp_dictoffset && __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_4_model_info->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr_spec, NULL); if (unlikely(!__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr)) __PYX_ERR(0, 231, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr_spec, __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr) < 0) __PYX_ERR(0, 231, __pyx_L1_error) #else __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr = &__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr) < 0) __PYX_ERR(0, 231, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr->tp_dictoffset && __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_5_genexpr->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr_spec, NULL); if (unlikely(!__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr)) __PYX_ERR(0, 232, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr_spec, __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr) < 0) __PYX_ERR(0, 232, __pyx_L1_error) #else __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr = &__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr) < 0) __PYX_ERR(0, 232, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr->tp_dictoffset && __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_6_genexpr->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img_spec, NULL); if (unlikely(!__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img)) __PYX_ERR(0, 253, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img_spec, __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img) < 0) __PYX_ERR(0, 253, __pyx_L1_error) #else __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img = &__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img) < 0) __PYX_ERR(0, 253, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img->tp_dictoffset && __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_7_scale_img->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr_spec, NULL); if (unlikely(!__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr)) __PYX_ERR(0, 262, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr_spec, __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr) < 0) __PYX_ERR(0, 262, __pyx_L1_error) #else __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr = &__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr) < 0) __PYX_ERR(0, 262, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr->tp_dictoffset && __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_8_genexpr->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } #endif #if CYTHON_USE_TYPE_SPECS __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__ = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init___spec, NULL); if (unlikely(!__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__)) __PYX_ERR(0, 308, __pyx_L1_error) if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init___spec, __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__) < 0) __PYX_ERR(0, 308, __pyx_L1_error) #else __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__ = &__pyx_type_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS if (__Pyx_PyType_Ready(__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__) < 0) __PYX_ERR(0, 308, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__->tp_print = 0; #endif #if !CYTHON_COMPILING_IN_LIMITED_API if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__->tp_dictoffset && __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__->tp_getattro == PyObject_GenericGetAttr)) { __pyx_ptype_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils___pyx_scope_struct_9___init__->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; } #endif __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; __Pyx_RefNannyFinishContext(); return -1; } static int __Pyx_modinit_type_import_code(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); /*--- Type import code ---*/ __Pyx_RefNannyFinishContext(); return 0; } static int __Pyx_modinit_variable_import_code(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0); /*--- Variable import code ---*/ __Pyx_RefNannyFinishContext(); return 0; } static int __Pyx_modinit_function_import_code(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0); /*--- Function import code ---*/ __Pyx_RefNannyFinishContext(); return 0; } #if PY_MAJOR_VERSION >= 3 #if CYTHON_PEP489_MULTI_PHASE_INIT static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/ static int __pyx_pymod_exec_torch_utils(PyObject* module); /*proto*/ static PyModuleDef_Slot __pyx_moduledef_slots[] = { {Py_mod_create, (void*)__pyx_pymod_create}, {Py_mod_exec, (void*)__pyx_pymod_exec_torch_utils}, {0, NULL} }; #endif #ifdef __cplusplus namespace { struct PyModuleDef __pyx_moduledef = #else static struct PyModuleDef __pyx_moduledef = #endif { PyModuleDef_HEAD_INIT, "torch_utils", __pyx_k_PyTorch_utils, /* m_doc */ #if CYTHON_PEP489_MULTI_PHASE_INIT 0, /* m_size */ #elif CYTHON_USE_MODULE_STATE sizeof(__pyx_mstate), /* m_size */ #else -1, /* m_size */ #endif __pyx_methods /* m_methods */, #if CYTHON_PEP489_MULTI_PHASE_INIT __pyx_moduledef_slots, /* m_slots */ #else NULL, /* m_reload */ #endif #if CYTHON_USE_MODULE_STATE __pyx_m_traverse, /* m_traverse */ __pyx_m_clear, /* m_clear */ NULL /* m_free */ #else NULL, /* m_traverse */ NULL, /* m_clear */ NULL /* m_free */ #endif }; #ifdef __cplusplus } /* anonymous namespace */ #endif #endif #ifndef CYTHON_NO_PYINIT_EXPORT #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC #elif PY_MAJOR_VERSION < 3 #ifdef __cplusplus #define __Pyx_PyMODINIT_FUNC extern "C" void #else #define __Pyx_PyMODINIT_FUNC void #endif #else #ifdef __cplusplus #define __Pyx_PyMODINIT_FUNC extern "C" PyObject * #else #define __Pyx_PyMODINIT_FUNC PyObject * #endif #endif #if PY_MAJOR_VERSION < 3 __Pyx_PyMODINIT_FUNC inittorch_utils(void) CYTHON_SMALL_CODE; /*proto*/ __Pyx_PyMODINIT_FUNC inittorch_utils(void) #else __Pyx_PyMODINIT_FUNC PyInit_torch_utils(void) CYTHON_SMALL_CODE; /*proto*/ __Pyx_PyMODINIT_FUNC PyInit_torch_utils(void) #if CYTHON_PEP489_MULTI_PHASE_INIT { return PyModuleDef_Init(&__pyx_moduledef); } static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) { #if PY_VERSION_HEX >= 0x030700A1 static PY_INT64_T main_interpreter_id = -1; PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp); if (main_interpreter_id == -1) { main_interpreter_id = current_id; return (unlikely(current_id == -1)) ? -1 : 0; } else if (unlikely(main_interpreter_id != current_id)) #else static PyInterpreterState *main_interpreter = NULL; PyInterpreterState *current_interpreter = PyThreadState_Get()->interp; if (!main_interpreter) { main_interpreter = current_interpreter; } else if (unlikely(main_interpreter != current_interpreter)) #endif { PyErr_SetString( PyExc_ImportError, "Interpreter change detected - this module can only be loaded into one interpreter per process."); return -1; } return 0; } #if CYTHON_COMPILING_IN_LIMITED_API static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *module, const char* from_name, const char* to_name, int allow_none) #else static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name, int allow_none) #endif { PyObject *value = PyObject_GetAttrString(spec, from_name); int result = 0; if (likely(value)) { if (allow_none || value != Py_None) { #if CYTHON_COMPILING_IN_LIMITED_API result = PyModule_AddObject(module, to_name, value); #else result = PyDict_SetItemString(moddict, to_name, value); #endif } Py_DECREF(value); } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) { PyErr_Clear(); } else { result = -1; } return result; } static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def) { PyObject *module = NULL, *moddict, *modname; CYTHON_UNUSED_VAR(def); if (__Pyx_check_single_interpreter()) return NULL; if (__pyx_m) return __Pyx_NewRef(__pyx_m); modname = PyObject_GetAttrString(spec, "name"); if (unlikely(!modname)) goto bad; module = PyModule_NewObject(modname); Py_DECREF(modname); if (unlikely(!module)) goto bad; #if CYTHON_COMPILING_IN_LIMITED_API moddict = module; #else moddict = PyModule_GetDict(module); if (unlikely(!moddict)) goto bad; #endif if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad; if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad; if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad; if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad; return module; bad: Py_XDECREF(module); return NULL; } static CYTHON_SMALL_CODE int __pyx_pymod_exec_torch_utils(PyObject *__pyx_pyinit_module) #endif #endif { int stringtab_initialized = 0; PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; int __pyx_t_6; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations #if CYTHON_PEP489_MULTI_PHASE_INIT if (__pyx_m) { if (__pyx_m == __pyx_pyinit_module) return 0; PyErr_SetString(PyExc_RuntimeError, "Module 'torch_utils' has already been imported. Re-initialisation is not supported."); return -1; } #elif PY_MAJOR_VERSION >= 3 if (__pyx_m) return __Pyx_NewRef(__pyx_m); #endif /*--- Module creation code ---*/ #if CYTHON_PEP489_MULTI_PHASE_INIT __pyx_m = __pyx_pyinit_module; Py_INCREF(__pyx_m); #else #if PY_MAJOR_VERSION < 3 __pyx_m = Py_InitModule4("torch_utils", __pyx_methods, __pyx_k_PyTorch_utils, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m); if (unlikely(!__pyx_m)) __PYX_ERR(0, 1, __pyx_L1_error) #elif CYTHON_COMPILING_IN_LIMITED_API __pyx_t_1 = PyModule_Create(&__pyx_moduledef); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error) { int add_module_result = PyState_AddModule(__pyx_t_1, &__pyx_moduledef); Py_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely((add_module_result < 0))) __PYX_ERR(0, 1, __pyx_L1_error) } #else __pyx_m = PyModule_Create(&__pyx_moduledef); if (unlikely(!__pyx_m)) __PYX_ERR(0, 1, __pyx_L1_error) #endif #endif CYTHON_UNUSED_VAR(__pyx_t_1); __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) __PYX_ERR(0, 1, __pyx_L1_error) Py_INCREF(__pyx_d); __pyx_b = PyImport_AddModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_b)) __PYX_ERR(0, 1, __pyx_L1_error) Py_INCREF(__pyx_b); __pyx_cython_runtime = PyImport_AddModule((char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(0, 1, __pyx_L1_error) Py_INCREF(__pyx_cython_runtime); if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) __PYX_ERR(0, 1, __pyx_L1_error); #if CYTHON_REFNANNY __Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny"); if (!__Pyx_RefNanny) { PyErr_Clear(); __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny"); if (!__Pyx_RefNanny) Py_FatalError("failed to import 'refnanny' module"); } #endif __Pyx_RefNannySetupContext("__Pyx_PyMODINIT_FUNC PyInit_torch_utils(void)", 0); if (__Pyx_check_binary_version() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #ifdef __Pxy_PyFrame_Initialize_Offsets __Pxy_PyFrame_Initialize_Offsets(); #endif __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(0, 1, __pyx_L1_error) #ifdef __Pyx_CyFunction_USED if (__pyx_CyFunction_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif #ifdef __Pyx_FusedFunction_USED if (__pyx_FusedFunction_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif #ifdef __Pyx_Coroutine_USED if (__pyx_Coroutine_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif #ifdef __Pyx_Generator_USED if (__pyx_Generator_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif #ifdef __Pyx_AsyncGen_USED if (__pyx_AsyncGen_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif #ifdef __Pyx_StopAsyncIteration_USED if (__pyx_StopAsyncIteration_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif /*--- Library function declarations ---*/ /*--- Threads initialization code ---*/ #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS PyEval_InitThreads(); #endif /*--- Initialize various global constants etc. ---*/ if (__Pyx_InitConstants() < 0) __PYX_ERR(0, 1, __pyx_L1_error) stringtab_initialized = 1; if (__Pyx_InitGlobals() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT) if (__Pyx_init_sys_getdefaultencoding_params() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif if (__pyx_module_is_main_pdf_toolbox__lib__dia_yolov5__utils__torch_utils) { if (PyObject_SetAttr(__pyx_m, __pyx_n_s_name_2, __pyx_n_s_main) < 0) __PYX_ERR(0, 1, __pyx_L1_error) } #if PY_MAJOR_VERSION >= 3 { PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(0, 1, __pyx_L1_error) if (!PyDict_GetItemString(modules, "pdf_toolbox.lib.dia_yolov5.utils.torch_utils")) { if (unlikely((PyDict_SetItemString(modules, "pdf_toolbox.lib.dia_yolov5.utils.torch_utils", __pyx_m) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) } } #endif /*--- Builtin init code ---*/ if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(0, 1, __pyx_L1_error) /*--- Constants init code ---*/ if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(0, 1, __pyx_L1_error) /*--- Global type/function init code ---*/ (void)__Pyx_modinit_global_init_code(); (void)__Pyx_modinit_variable_export_code(); (void)__Pyx_modinit_function_export_code(); if (unlikely((__Pyx_modinit_type_init_code() < 0))) __PYX_ERR(0, 1, __pyx_L1_error) (void)__Pyx_modinit_type_import_code(); (void)__Pyx_modinit_variable_import_code(); (void)__Pyx_modinit_function_import_code(); /*--- Execution code ---*/ #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) if (__Pyx_patch_abc() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":6 * """ * * import datetime # <<<<<<<<<<<<<< * import math * import os */ __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_n_s_datetime, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_datetime, __pyx_t_2) < 0) __PYX_ERR(0, 6, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":7 * * import datetime * import math # <<<<<<<<<<<<<< * import os * import platform */ __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_n_s_math, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_math, __pyx_t_2) < 0) __PYX_ERR(0, 7, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":8 * import datetime * import math * import os # <<<<<<<<<<<<<< * import platform * import subprocess */ __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_n_s_os, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_os, __pyx_t_2) < 0) __PYX_ERR(0, 8, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":9 * import math * import os * import platform # <<<<<<<<<<<<<< * import subprocess * import time */ __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_n_s_platform, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 9, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_platform, __pyx_t_2) < 0) __PYX_ERR(0, 9, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":10 * import os * import platform * import subprocess # <<<<<<<<<<<<<< * import time * from contextlib import contextmanager */ __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_n_s_subprocess, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 10, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_subprocess, __pyx_t_2) < 0) __PYX_ERR(0, 10, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":11 * import platform * import subprocess * import time # <<<<<<<<<<<<<< * from contextlib import contextmanager * from copy import deepcopy */ __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_n_s_time, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 11, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_time, __pyx_t_2) < 0) __PYX_ERR(0, 11, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":12 * import subprocess * import time * from contextlib import contextmanager # <<<<<<<<<<<<<< * from copy import deepcopy * from pathlib import Path */ __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 12, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_contextmanager); __Pyx_GIVEREF(__pyx_n_s_contextmanager); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_contextmanager); __pyx_t_3 = __Pyx_Import(__pyx_n_s_contextlib, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 12, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_contextmanager); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 12, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_contextmanager, __pyx_t_2) < 0) __PYX_ERR(0, 12, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":13 * import time * from contextlib import contextmanager * from copy import deepcopy # <<<<<<<<<<<<<< * from pathlib import Path * import sys */ __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_n_s_deepcopy); __Pyx_GIVEREF(__pyx_n_s_deepcopy); PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_deepcopy); __pyx_t_2 = __Pyx_Import(__pyx_n_s_copy_2, __pyx_t_3, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_deepcopy); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_deepcopy, __pyx_t_3) < 0) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":14 * from contextlib import contextmanager * from copy import deepcopy * from pathlib import Path # <<<<<<<<<<<<<< * import sys * """ FILE = Path(__file__).resolve() */ __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 14, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_Path); __Pyx_GIVEREF(__pyx_n_s_Path); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_Path); __pyx_t_3 = __Pyx_Import(__pyx_n_s_pathlib, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 14, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_Path); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 14, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_Path, __pyx_t_2) < 0) __PYX_ERR(0, 14, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":15 * from copy import deepcopy * from pathlib import Path * import sys # <<<<<<<<<<<<<< * """ FILE = Path(__file__).resolve() * ROOT = FILE.parents[0] */ __pyx_t_3 = __Pyx_ImportDottedModule(__pyx_n_s_sys, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 15, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_sys, __pyx_t_3) < 0) __PYX_ERR(0, 15, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":19 * ROOT = FILE.parents[0] * sys.path.append(str(ROOT) + "/../../../..") """ * import torch # <<<<<<<<<<<<<< * import torch.distributed as dist * import torch.nn as nn */ __pyx_t_3 = __Pyx_ImportDottedModule(__pyx_n_s_torch_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_torch_2, __pyx_t_3) < 0) __PYX_ERR(0, 19, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":20 * sys.path.append(str(ROOT) + "/../../../..") """ * import torch * import torch.distributed as dist # <<<<<<<<<<<<<< * import torch.nn as nn * import torch.nn.functional as F */ __pyx_t_3 = __Pyx_ImportDottedModule(__pyx_n_s_torch_distributed, __pyx_tuple__23); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 20, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_dist, __pyx_t_3) < 0) __PYX_ERR(0, 20, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":21 * import torch * import torch.distributed as dist * import torch.nn as nn # <<<<<<<<<<<<<< * import torch.nn.functional as F * */ __pyx_t_3 = __Pyx_ImportDottedModule(__pyx_n_s_torch_nn, __pyx_tuple__24); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_nn, __pyx_t_3) < 0) __PYX_ERR(0, 21, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":22 * import torch.distributed as dist * import torch.nn as nn * import torch.nn.functional as F # <<<<<<<<<<<<<< * * from pdf_toolbox.lib.dia_yolov5.utils.general import LOGGER */ __pyx_t_3 = __Pyx_ImportDottedModule(__pyx_n_s_torch_nn_functional, __pyx_tuple__25); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_F, __pyx_t_3) < 0) __PYX_ERR(0, 22, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":24 * import torch.nn.functional as F * * from pdf_toolbox.lib.dia_yolov5.utils.general import LOGGER # <<<<<<<<<<<<<< * * try: */ __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_n_s_LOGGER); __Pyx_GIVEREF(__pyx_n_s_LOGGER); PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_LOGGER); __pyx_t_2 = __Pyx_Import(__pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils_2, __pyx_t_3, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_LOGGER); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 24, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_LOGGER, __pyx_t_3) < 0) __PYX_ERR(0, 24, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":26 * from pdf_toolbox.lib.dia_yolov5.utils.general import LOGGER * * try: # <<<<<<<<<<<<<< * import thop # for FLOPs computation * except ImportError: */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_4, &__pyx_t_5); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_5); /*try:*/ { /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":27 * * try: * import thop # for FLOPs computation # <<<<<<<<<<<<<< * except ImportError: * thop = None */ __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_n_s_thop, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27, __pyx_L2_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_thop, __pyx_t_2) < 0) __PYX_ERR(0, 27, __pyx_L2_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":26 * from pdf_toolbox.lib.dia_yolov5.utils.general import LOGGER * * try: # <<<<<<<<<<<<<< * import thop # for FLOPs computation * except ImportError: */ } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L7_try_end; __pyx_L2_error:; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":28 * try: * import thop # for FLOPs computation * except ImportError: # <<<<<<<<<<<<<< * thop = None * */ __pyx_t_6 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ImportError); if (__pyx_t_6) { __Pyx_AddTraceback("pdf_toolbox.lib.dia_yolov5.utils.torch_utils", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_3, &__pyx_t_7) < 0) __PYX_ERR(0, 28, __pyx_L4_except_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GOTREF(__pyx_t_3); __Pyx_GOTREF(__pyx_t_7); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":29 * import thop # for FLOPs computation * except ImportError: * thop = None # <<<<<<<<<<<<<< * * */ if (PyDict_SetItem(__pyx_d, __pyx_n_s_thop, Py_None) < 0) __PYX_ERR(0, 29, __pyx_L4_except_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L3_exception_handled; } goto __pyx_L4_except_error; __pyx_L4_except_error:; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":26 * from pdf_toolbox.lib.dia_yolov5.utils.general import LOGGER * * try: # <<<<<<<<<<<<<< * import thop # for FLOPs computation * except ImportError: */ __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_5); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_4, __pyx_t_5); goto __pyx_L1_error; __pyx_L3_exception_handled:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_5); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_4, __pyx_t_5); __pyx_L7_try_end:; } /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":32 * * * @contextmanager # <<<<<<<<<<<<<< * def torch_distributed_zero_first(local_rank: int): * """ */ __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_contextmanager); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 32, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 32, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_local_rank, __pyx_n_s_int) < 0) __PYX_ERR(0, 32, __pyx_L1_error) __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_1torch_distributed_zero_first, 0, __pyx_n_s_torch_distributed_zero_first, NULL, __pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils, __pyx_d, ((PyObject *)__pyx_codeobj_)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 32, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 32, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (PyDict_SetItem(__pyx_d, __pyx_n_s_torch_distributed_zero_first, __pyx_t_3) < 0) __PYX_ERR(0, 32, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":44 * * * def date_modified(path=__file__): # <<<<<<<<<<<<<< * # return human-readable file modification date, i.e. '2021-3-26' * t = datetime.datetime.fromtimestamp(Path(path).stat().st_mtime) */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_4date_modified, 0, __pyx_n_s_date_modified, NULL, __pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils, __pyx_d, ((PyObject *)__pyx_codeobj__28)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 44, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults), 1)) __PYX_ERR(0, 44, __pyx_L1_error) __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_file); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 44, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_t_3)->__pyx_arg_path = __pyx_t_2; __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_35__defaults__); if (PyDict_SetItem(__pyx_d, __pyx_n_s_date_modified, __pyx_t_3) < 0) __PYX_ERR(0, 44, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":50 * * * def git_describe(path=Path(__file__).parent): # path must be a directory # <<<<<<<<<<<<<< * # return human-readable git description, i.e. v5.0-5-g3e25f1e https://git-scm.com/docs/git-describe * s = f'git -C {path} describe --tags --long --always' */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_6git_describe, 0, __pyx_n_s_git_describe, NULL, __pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils, __pyx_d, ((PyObject *)__pyx_codeobj__30)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 50, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults1), 1)) __PYX_ERR(0, 50, __pyx_L1_error) __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Path); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 50, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_file); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 50, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 50, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_parent); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 50, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_CyFunction_Defaults(__pyx_defaults1, __pyx_t_3)->__pyx_arg_path = __pyx_t_7; __Pyx_GIVEREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_37__defaults__); if (PyDict_SetItem(__pyx_d, __pyx_n_s_git_describe, __pyx_t_3) < 0) __PYX_ERR(0, 50, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":59 * * * def device_count(): # <<<<<<<<<<<<<< * # Returns number of CUDA devices available. Safe version of torch.cuda.device_count(). Only works on Linux. * assert platform.system() == 'Linux', 'device_count() function only works on Linux' */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_8device_count, 0, __pyx_n_s_device_count, NULL, __pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils, __pyx_d, ((PyObject *)__pyx_codeobj__32)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 59, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_device_count, __pyx_t_3) < 0) __PYX_ERR(0, 59, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":69 * * * def select_device(device='', batch_size=0, newline=True): # <<<<<<<<<<<<<< * # device = 'cpu' or '0' or '0,1,2,3' * s = f'YOLOv5 {git_describe() or date_modified()} torch {torch.__version__} ' # string */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_10select_device, 0, __pyx_n_s_select_device, NULL, __pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils, __pyx_d, ((PyObject *)__pyx_codeobj__34)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__35); if (PyDict_SetItem(__pyx_d, __pyx_n_s_select_device, __pyx_t_3) < 0) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":100 * * * def time_sync(): # <<<<<<<<<<<<<< * # pytorch-accurate time * if torch.cuda.is_available(): */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_12time_sync, 0, __pyx_n_s_time_sync, NULL, __pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils, __pyx_d, ((PyObject *)__pyx_codeobj__36)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 100, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_time_sync, __pyx_t_3) < 0) __PYX_ERR(0, 100, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":107 * * * def profile(input, ops, n=10, device=None): # <<<<<<<<<<<<<< * # YOLOv5 speed/memory/FLOPs profiler * # */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_14profile, 0, __pyx_n_s_profile, NULL, __pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils, __pyx_d, ((PyObject *)__pyx_codeobj__38)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__39); if (PyDict_SetItem(__pyx_d, __pyx_n_s_profile, __pyx_t_3) < 0) __PYX_ERR(0, 107, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":159 * * * def is_parallel(model): # <<<<<<<<<<<<<< * # Returns True if model is of type DP or DDP * return type(model) in (nn.parallel.DataParallel, nn.parallel.DistributedDataParallel) */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_16is_parallel, 0, __pyx_n_s_is_parallel, NULL, __pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils, __pyx_d, ((PyObject *)__pyx_codeobj__41)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_parallel, __pyx_t_3) < 0) __PYX_ERR(0, 159, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":164 * * * def de_parallel(model): # <<<<<<<<<<<<<< * # De-parallelize a model: returns single-GPU model if model is of type DP or DDP * return model.module if is_parallel(model) else model */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_18de_parallel, 0, __pyx_n_s_de_parallel, NULL, __pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils, __pyx_d, ((PyObject *)__pyx_codeobj__42)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_de_parallel, __pyx_t_3) < 0) __PYX_ERR(0, 164, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":169 * * * def initialize_weights(model): # <<<<<<<<<<<<<< * for m in model.modules(): * t = type(m) */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_20initialize_weights, 0, __pyx_n_s_initialize_weights, NULL, __pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils, __pyx_d, ((PyObject *)__pyx_codeobj__44)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 169, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_initialize_weights, __pyx_t_3) < 0) __PYX_ERR(0, 169, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":181 * * * def find_modules(model, mclass=nn.Conv2d): # <<<<<<<<<<<<<< * # Finds layer indices matching module class 'mclass' * return [i for i, m in enumerate(model.module_list) if isinstance(m, mclass)] */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_22find_modules, 0, __pyx_n_s_find_modules, NULL, __pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils, __pyx_d, ((PyObject *)__pyx_codeobj__46)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults2), 1)) __PYX_ERR(0, 181, __pyx_L1_error) __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_nn); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_Conv2d); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_CyFunction_Defaults(__pyx_defaults2, __pyx_t_3)->__pyx_arg_mclass = __pyx_t_8; __Pyx_GIVEREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_39__defaults__); if (PyDict_SetItem(__pyx_d, __pyx_n_s_find_modules, __pyx_t_3) < 0) __PYX_ERR(0, 181, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":186 * * * def sparsity(model): # <<<<<<<<<<<<<< * # Return global model sparsity * a, b = 0, 0 */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_24sparsity, 0, __pyx_n_s_sparsity, NULL, __pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils, __pyx_d, ((PyObject *)__pyx_codeobj__48)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 186, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_sparsity, __pyx_t_3) < 0) __PYX_ERR(0, 186, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":195 * * * def prune(model, amount=0.3): # <<<<<<<<<<<<<< * # Prune model to requested global sparsity * import torch.nn.utils.prune as prune */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_26prune, 0, __pyx_n_s_prune, NULL, __pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils, __pyx_d, ((PyObject *)__pyx_codeobj__50)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 195, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__51); if (PyDict_SetItem(__pyx_d, __pyx_n_s_prune, __pyx_t_3) < 0) __PYX_ERR(0, 195, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":206 * * * def fuse_conv_and_bn(conv, bn): # <<<<<<<<<<<<<< * # Fuse convolution and batchnorm layers https://tehnokv.com/posts/fusing-batchnorm-and-conv/ * fusedconv = nn.Conv2d(conv.in_channels, */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_28fuse_conv_and_bn, 0, __pyx_n_s_fuse_conv_and_bn, NULL, __pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 206, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_fuse_conv_and_bn, __pyx_t_3) < 0) __PYX_ERR(0, 206, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":229 * * * def model_info(model, verbose=False, img_size=640): # <<<<<<<<<<<<<< * # Model information. img_size may be int or list, i.e. img_size=640 or img_size=[640, 320] * n_p = sum(x.numel() for x in model.parameters()) # number parameters */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_30model_info, 0, __pyx_n_s_model_info, NULL, __pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils, __pyx_d, ((PyObject *)__pyx_codeobj__55)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__56); if (PyDict_SetItem(__pyx_d, __pyx_n_s_model_info, __pyx_t_3) < 0) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":253 * * * def scale_img(img, ratio=1.0, same_shape=False, gs=32): # img(16,3,256,416) # <<<<<<<<<<<<<< * # scales img(bs,3,y,x) by ratio constrained to gs-multiple * if ratio == 1.0: */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_32scale_img, 0, __pyx_n_s_scale_img, NULL, __pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 253, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__59); if (PyDict_SetItem(__pyx_d, __pyx_n_s_scale_img, __pyx_t_3) < 0) __PYX_ERR(0, 253, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":266 * * * def copy_attr(a, b, include=(), exclude=()): # <<<<<<<<<<<<<< * # Copy attributes from b to a, options to only include [...] and to exclude [...] * for k, v in b.__dict__.items(): */ __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_34copy_attr, 0, __pyx_n_s_copy_attr, NULL, __pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils, __pyx_d, ((PyObject *)__pyx_codeobj__61)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__62); if (PyDict_SetItem(__pyx_d, __pyx_n_s_copy_attr, __pyx_t_3) < 0) __PYX_ERR(0, 266, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":275 * * * class EarlyStopping: # <<<<<<<<<<<<<< * # YOLOv5 simple early stopper * def __init__(self, patience=30): */ __pyx_t_3 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_empty_tuple, __pyx_n_s_EarlyStopping, __pyx_n_s_EarlyStopping, (PyObject *) NULL, __pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils, (PyObject *) NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":277 * class EarlyStopping: * # YOLOv5 simple early stopper * def __init__(self, patience=30): # <<<<<<<<<<<<<< * self.best_fitness = 0.0 # i.e. mAP * self.best_epoch = 0 */ __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_13EarlyStopping_1__init__, 0, __pyx_n_s_EarlyStopping___init, NULL, __pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils, __pyx_d, ((PyObject *)__pyx_codeobj__64)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_8, __pyx_tuple__65); if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_init, __pyx_t_8) < 0) __PYX_ERR(0, 277, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":283 * self.possible_stop = False # possible stop may occur next epoch * * def __call__(self, epoch, fitness): # <<<<<<<<<<<<<< * if fitness >= self.best_fitness: # >= 0 to allow for early zero-fitness stage of training * self.best_epoch = epoch */ __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_13EarlyStopping_3__call__, 0, __pyx_n_s_EarlyStopping___call, NULL, __pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils, __pyx_d, ((PyObject *)__pyx_codeobj__67)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 283, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_call, __pyx_t_8) < 0) __PYX_ERR(0, 283, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":275 * * * class EarlyStopping: # <<<<<<<<<<<<<< * # YOLOv5 simple early stopper * def __init__(self, patience=30): */ __pyx_t_8 = __Pyx_Py3ClassCreate(((PyObject*)&PyType_Type), __pyx_n_s_EarlyStopping, __pyx_empty_tuple, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (PyDict_SetItem(__pyx_d, __pyx_n_s_EarlyStopping, __pyx_t_8) < 0) __PYX_ERR(0, 275, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":298 * * * class ModelEMA: # <<<<<<<<<<<<<< * """ Model Exponential Moving Average from https://github.com/rwightman/pytorch-image-models * Keep a moving average of everything in the model state_dict (parameters and buffers). */ __pyx_t_3 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_empty_tuple, __pyx_n_s_ModelEMA, __pyx_n_s_ModelEMA, (PyObject *) NULL, __pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils, __pyx_kp_s_Model_Exponential_Moving_Averag); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":308 * """ * * def __init__(self, model, decay=0.9999, updates=0): # <<<<<<<<<<<<<< * # Create EMA * self.ema = deepcopy(de_parallel(model)).eval() # FP32 EMA */ __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_8ModelEMA_1__init__, 0, __pyx_n_s_ModelEMA___init, NULL, __pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils, __pyx_d, ((PyObject *)__pyx_codeobj__69)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 308, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_8, __pyx_tuple__70); if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_init, __pyx_t_8) < 0) __PYX_ERR(0, 308, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":318 * p.requires_grad_(False) * * def update(self, model): # <<<<<<<<<<<<<< * # Update EMA parameters * with torch.no_grad(): */ __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_8ModelEMA_3update, 0, __pyx_n_s_ModelEMA_update, NULL, __pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils, __pyx_d, ((PyObject *)__pyx_codeobj__72)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 318, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_update, __pyx_t_8) < 0) __PYX_ERR(0, 318, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":330 * v += (1 - d) * msd[k].detach() * * def update_attr(self, model, include=(), exclude=('process_group', 'reducer')): # <<<<<<<<<<<<<< * # Update EMA attributes * copy_attr(self.ema, model, include, exclude) */ __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_11pdf_toolbox_3lib_10dia_yolov5_5utils_11torch_utils_8ModelEMA_5update_attr, 0, __pyx_n_s_ModelEMA_update_attr, NULL, __pyx_n_s_pdf_toolbox_lib_dia_yolov5_utils, __pyx_d, ((PyObject *)__pyx_codeobj__74)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 330, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_8, __pyx_tuple__75); if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_update_attr, __pyx_t_8) < 0) __PYX_ERR(0, 330, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":298 * * * class ModelEMA: # <<<<<<<<<<<<<< * """ Model Exponential Moving Average from https://github.com/rwightman/pytorch-image-models * Keep a moving average of everything in the model state_dict (parameters and buffers). */ __pyx_t_8 = __Pyx_Py3ClassCreate(((PyObject*)&PyType_Type), __pyx_n_s_ModelEMA, __pyx_empty_tuple, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (PyDict_SetItem(__pyx_d, __pyx_n_s_ModelEMA, __pyx_t_8) < 0) __PYX_ERR(0, 298, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pdf_toolbox/lib/dia_yolov5/utils/torch_utils.py":1 * # YOLOv5 by Ultralytics, GPL-3.0 license # <<<<<<<<<<<<<< * """ * PyTorch utils */ __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_3) < 0) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /*--- Wrapped vars code ---*/ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); if (__pyx_m) { if (__pyx_d && stringtab_initialized) { __Pyx_AddTraceback("init pdf_toolbox.lib.dia_yolov5.utils.torch_utils", __pyx_clineno, __pyx_lineno, __pyx_filename); } #if !CYTHON_USE_MODULE_STATE Py_CLEAR(__pyx_m); #endif } else if (!PyErr_Occurred()) { PyErr_SetString(PyExc_ImportError, "init pdf_toolbox.lib.dia_yolov5.utils.torch_utils"); } __pyx_L0:; __Pyx_RefNannyFinishContext(); #if CYTHON_PEP489_MULTI_PHASE_INIT return (__pyx_m != NULL) ? 0 : -1; #elif PY_MAJOR_VERSION >= 3 return __pyx_m; #else return; #endif } /* #### Code section: cleanup_globals ### */ /* #### Code section: cleanup_module ### */ /* #### Code section: main_method ### */ /* #### Code section: utility_code_pragmas ### */ #if _MSC_VER #pragma warning( push ) /* Warning 4127: conditional expression is constant * Cython uses constant conditional expressions to allow in inline functions to be optimized at * compile-time, so this warning is not useful */ #pragma warning( disable : 4127 ) #endif /* #### Code section: utility_code_def ### */ /* --- Runtime support code --- */ /* Refnanny */ #if CYTHON_REFNANNY static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) { PyObject *m = NULL, *p = NULL; void *r = NULL; m = PyImport_ImportModule(modname); if (!m) goto end; p = PyObject_GetAttrString(m, "RefNannyAPI"); if (!p) goto end; r = PyLong_AsVoidPtr(p); end: Py_XDECREF(p); Py_XDECREF(m); return (__Pyx_RefNannyAPIStruct *)r; } #endif /* PyErrExceptionMatches */ #if CYTHON_FAST_THREAD_STATE static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) { Py_ssize_t i, n; n = PyTuple_GET_SIZE(tuple); #if PY_MAJOR_VERSION >= 3 for (i=0; icurexc_type; if (exc_type == err) return 1; if (unlikely(!exc_type)) return 0; if (unlikely(PyTuple_Check(err))) return __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err); return __Pyx_PyErr_GivenExceptionMatches(exc_type, err); } #endif /* PyErrFetchRestore */ #if CYTHON_FAST_THREAD_STATE static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { PyObject *tmp_type, *tmp_value, *tmp_tb; tmp_type = tstate->curexc_type; tmp_value = tstate->curexc_value; tmp_tb = tstate->curexc_traceback; tstate->curexc_type = type; tstate->curexc_value = value; tstate->curexc_traceback = tb; Py_XDECREF(tmp_type); Py_XDECREF(tmp_value); Py_XDECREF(tmp_tb); } static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { *type = tstate->curexc_type; *value = tstate->curexc_value; *tb = tstate->curexc_traceback; tstate->curexc_type = 0; tstate->curexc_value = 0; tstate->curexc_traceback = 0; } #endif /* PyObjectGetAttrStr */ #if CYTHON_USE_TYPE_SLOTS static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) { PyTypeObject* tp = Py_TYPE(obj); if (likely(tp->tp_getattro)) return tp->tp_getattro(obj, attr_name); #if PY_MAJOR_VERSION < 3 if (likely(tp->tp_getattr)) return tp->tp_getattr(obj, PyString_AS_STRING(attr_name)); #endif return PyObject_GetAttr(obj, attr_name); } #endif /* PyObjectGetAttrStrNoError */ static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError))) __Pyx_PyErr_Clear(); } static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) { PyObject *result; #if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS && PY_VERSION_HEX >= 0x030700B1 PyTypeObject* tp = Py_TYPE(obj); if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) { return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1); } #endif result = __Pyx_PyObject_GetAttrStr(obj, attr_name); if (unlikely(!result)) { __Pyx_PyObject_GetAttrStr_ClearAttributeError(); } return result; } /* GetBuiltinName */ static PyObject *__Pyx_GetBuiltinName(PyObject *name) { PyObject* result = __Pyx_PyObject_GetAttrStrNoError(__pyx_b, name); if (unlikely(!result) && !PyErr_Occurred()) { PyErr_Format(PyExc_NameError, #if PY_MAJOR_VERSION >= 3 "name '%U' is not defined", name); #else "name '%.200s' is not defined", PyString_AS_STRING(name)); #endif } return result; } /* TupleAndListFromArray */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE void __Pyx_copy_object_array(PyObject *const *CYTHON_RESTRICT src, PyObject** CYTHON_RESTRICT dest, Py_ssize_t length) { PyObject *v; Py_ssize_t i; for (i = 0; i < length; i++) { v = dest[i] = src[i]; Py_INCREF(v); } } static CYTHON_INLINE PyObject * __Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n) { PyObject *res; if (n <= 0) { Py_INCREF(__pyx_empty_tuple); return __pyx_empty_tuple; } res = PyTuple_New(n); if (unlikely(res == NULL)) return NULL; __Pyx_copy_object_array(src, ((PyTupleObject*)res)->ob_item, n); return res; } static CYTHON_INLINE PyObject * __Pyx_PyList_FromArray(PyObject *const *src, Py_ssize_t n) { PyObject *res; if (n <= 0) { return PyList_New(0); } res = PyList_New(n); if (unlikely(res == NULL)) return NULL; __Pyx_copy_object_array(src, ((PyListObject*)res)->ob_item, n); return res; } #endif /* BytesEquals */ static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals) { #if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API return PyObject_RichCompareBool(s1, s2, equals); #else if (s1 == s2) { return (equals == Py_EQ); } else if (PyBytes_CheckExact(s1) & PyBytes_CheckExact(s2)) { const char *ps1, *ps2; Py_ssize_t length = PyBytes_GET_SIZE(s1); if (length != PyBytes_GET_SIZE(s2)) return (equals == Py_NE); ps1 = PyBytes_AS_STRING(s1); ps2 = PyBytes_AS_STRING(s2); if (ps1[0] != ps2[0]) { return (equals == Py_NE); } else if (length == 1) { return (equals == Py_EQ); } else { int result; #if CYTHON_USE_UNICODE_INTERNALS Py_hash_t hash1, hash2; hash1 = ((PyBytesObject*)s1)->ob_shash; hash2 = ((PyBytesObject*)s2)->ob_shash; if (hash1 != hash2 && hash1 != -1 && hash2 != -1) { return (equals == Py_NE); } #endif result = memcmp(ps1, ps2, (size_t)length); return (equals == Py_EQ) ? (result == 0) : (result != 0); } } else if ((s1 == Py_None) & PyBytes_CheckExact(s2)) { return (equals == Py_NE); } else if ((s2 == Py_None) & PyBytes_CheckExact(s1)) { return (equals == Py_NE); } else { int result; PyObject* py_result = PyObject_RichCompare(s1, s2, equals); if (!py_result) return -1; result = __Pyx_PyObject_IsTrue(py_result); Py_DECREF(py_result); return result; } #endif } /* UnicodeEquals */ static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals) { #if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API return PyObject_RichCompareBool(s1, s2, equals); #else #if PY_MAJOR_VERSION < 3 PyObject* owned_ref = NULL; #endif int s1_is_unicode, s2_is_unicode; if (s1 == s2) { goto return_eq; } s1_is_unicode = PyUnicode_CheckExact(s1); s2_is_unicode = PyUnicode_CheckExact(s2); #if PY_MAJOR_VERSION < 3 if ((s1_is_unicode & (!s2_is_unicode)) && PyString_CheckExact(s2)) { owned_ref = PyUnicode_FromObject(s2); if (unlikely(!owned_ref)) return -1; s2 = owned_ref; s2_is_unicode = 1; } else if ((s2_is_unicode & (!s1_is_unicode)) && PyString_CheckExact(s1)) { owned_ref = PyUnicode_FromObject(s1); if (unlikely(!owned_ref)) return -1; s1 = owned_ref; s1_is_unicode = 1; } else if (((!s2_is_unicode) & (!s1_is_unicode))) { return __Pyx_PyBytes_Equals(s1, s2, equals); } #endif if (s1_is_unicode & s2_is_unicode) { Py_ssize_t length; int kind; void *data1, *data2; if (unlikely(__Pyx_PyUnicode_READY(s1) < 0) || unlikely(__Pyx_PyUnicode_READY(s2) < 0)) return -1; length = __Pyx_PyUnicode_GET_LENGTH(s1); if (length != __Pyx_PyUnicode_GET_LENGTH(s2)) { goto return_ne; } #if CYTHON_USE_UNICODE_INTERNALS { Py_hash_t hash1, hash2; #if CYTHON_PEP393_ENABLED hash1 = ((PyASCIIObject*)s1)->hash; hash2 = ((PyASCIIObject*)s2)->hash; #else hash1 = ((PyUnicodeObject*)s1)->hash; hash2 = ((PyUnicodeObject*)s2)->hash; #endif if (hash1 != hash2 && hash1 != -1 && hash2 != -1) { goto return_ne; } } #endif kind = __Pyx_PyUnicode_KIND(s1); if (kind != __Pyx_PyUnicode_KIND(s2)) { goto return_ne; } data1 = __Pyx_PyUnicode_DATA(s1); data2 = __Pyx_PyUnicode_DATA(s2); if (__Pyx_PyUnicode_READ(kind, data1, 0) != __Pyx_PyUnicode_READ(kind, data2, 0)) { goto return_ne; } else if (length == 1) { goto return_eq; } else { int result = memcmp(data1, data2, (size_t)(length * kind)); #if PY_MAJOR_VERSION < 3 Py_XDECREF(owned_ref); #endif return (equals == Py_EQ) ? (result == 0) : (result != 0); } } else if ((s1 == Py_None) & s2_is_unicode) { goto return_ne; } else if ((s2 == Py_None) & s1_is_unicode) { goto return_ne; } else { int result; PyObject* py_result = PyObject_RichCompare(s1, s2, equals); #if PY_MAJOR_VERSION < 3 Py_XDECREF(owned_ref); #endif if (!py_result) return -1; result = __Pyx_PyObject_IsTrue(py_result); Py_DECREF(py_result); return result; } return_eq: #if PY_MAJOR_VERSION < 3 Py_XDECREF(owned_ref); #endif return (equals == Py_EQ); return_ne: #if PY_MAJOR_VERSION < 3 Py_XDECREF(owned_ref); #endif return (equals == Py_NE); #endif } /* fastcall */ #if CYTHON_METH_FASTCALL static CYTHON_INLINE PyObject * __Pyx_GetKwValue_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues, PyObject *s) { Py_ssize_t i, n = PyTuple_GET_SIZE(kwnames); for (i = 0; i < n; i++) { if (s == PyTuple_GET_ITEM(kwnames, i)) return kwvalues[i]; } for (i = 0; i < n; i++) { int eq = __Pyx_PyUnicode_Equals(s, PyTuple_GET_ITEM(kwnames, i), Py_EQ); if (unlikely(eq != 0)) { if (unlikely(eq < 0)) return NULL; // error return kwvalues[i]; } } return NULL; // not found (no exception set) } #endif /* RaiseDoubleKeywords */ static void __Pyx_RaiseDoubleKeywordsError( const char* func_name, PyObject* kw_name) { PyErr_Format(PyExc_TypeError, #if PY_MAJOR_VERSION >= 3 "%s() got multiple values for keyword argument '%U'", func_name, kw_name); #else "%s() got multiple values for keyword argument '%s'", func_name, PyString_AsString(kw_name)); #endif } /* ParseKeywords */ static int __Pyx_ParseOptionalKeywords( PyObject *kwds, PyObject *const *kwvalues, PyObject **argnames[], PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args, const char* function_name) { PyObject *key = 0, *value = 0; Py_ssize_t pos = 0; PyObject*** name; PyObject*** first_kw_arg = argnames + num_pos_args; int kwds_is_tuple = CYTHON_METH_FASTCALL && likely(PyTuple_Check(kwds)); while (1) { if (kwds_is_tuple) { if (pos >= PyTuple_GET_SIZE(kwds)) break; key = PyTuple_GET_ITEM(kwds, pos); value = kwvalues[pos]; pos++; } else { if (!PyDict_Next(kwds, &pos, &key, &value)) break; } name = first_kw_arg; while (*name && (**name != key)) name++; if (*name) { values[name-argnames] = value; continue; } name = first_kw_arg; #if PY_MAJOR_VERSION < 3 if (likely(PyString_Check(key))) { while (*name) { if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key)) && _PyString_Eq(**name, key)) { values[name-argnames] = value; break; } name++; } if (*name) continue; else { PyObject*** argname = argnames; while (argname != first_kw_arg) { if ((**argname == key) || ( (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key)) && _PyString_Eq(**argname, key))) { goto arg_passed_twice; } argname++; } } } else #endif if (likely(PyUnicode_Check(key))) { while (*name) { int cmp = ( #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 (__Pyx_PyUnicode_GET_LENGTH(**name) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 : #endif PyUnicode_Compare(**name, key) ); if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; if (cmp == 0) { values[name-argnames] = value; break; } name++; } if (*name) continue; else { PyObject*** argname = argnames; while (argname != first_kw_arg) { int cmp = (**argname == key) ? 0 : #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 (__Pyx_PyUnicode_GET_LENGTH(**argname) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 : #endif PyUnicode_Compare(**argname, key); if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; if (cmp == 0) goto arg_passed_twice; argname++; } } } else goto invalid_keyword_type; if (kwds2) { if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad; } else { goto invalid_keyword; } } return 0; arg_passed_twice: __Pyx_RaiseDoubleKeywordsError(function_name, key); goto bad; invalid_keyword_type: PyErr_Format(PyExc_TypeError, "%.200s() keywords must be strings", function_name); goto bad; invalid_keyword: #if PY_MAJOR_VERSION < 3 PyErr_Format(PyExc_TypeError, "%.200s() got an unexpected keyword argument '%.200s'", function_name, PyString_AsString(key)); #else PyErr_Format(PyExc_TypeError, "%s() got an unexpected keyword argument '%U'", function_name, key); #endif bad: return -1; } /* RaiseArgTupleInvalid */ static void __Pyx_RaiseArgtupleInvalid( const char* func_name, int exact, Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found) { Py_ssize_t num_expected; const char *more_or_less; if (num_found < num_min) { num_expected = num_min; more_or_less = "at least"; } else { num_expected = num_max; more_or_less = "at most"; } if (exact) { more_or_less = "exactly"; } PyErr_Format(PyExc_TypeError, "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T "d given)", func_name, more_or_less, num_expected, (num_expected == 1) ? "" : "s", num_found); } /* PyIntCompare */ static CYTHON_INLINE PyObject* __Pyx_PyInt_NeObjC(PyObject *op1, PyObject *op2, long intval, long inplace) { CYTHON_MAYBE_UNUSED_VAR(intval); CYTHON_UNUSED_VAR(inplace); if (op1 == op2) { Py_RETURN_FALSE; } #if PY_MAJOR_VERSION < 3 if (likely(PyInt_CheckExact(op1))) { const long b = intval; long a = PyInt_AS_LONG(op1); if (a != b) Py_RETURN_TRUE; else Py_RETURN_FALSE; } #endif #if CYTHON_USE_PYLONG_INTERNALS if (likely(PyLong_CheckExact(op1))) { int unequal; unsigned long uintval; Py_ssize_t size = Py_SIZE(op1); const digit* digits = ((PyLongObject*)op1)->ob_digit; if (intval == 0) { if (size != 0) Py_RETURN_TRUE; else Py_RETURN_FALSE; } else if (intval < 0) { if (size >= 0) Py_RETURN_TRUE; intval = -intval; size = -size; } else { if (size <= 0) Py_RETURN_TRUE; } uintval = (unsigned long) intval; #if PyLong_SHIFT * 4 < SIZEOF_LONG*8 if (uintval >> (PyLong_SHIFT * 4)) { unequal = (size != 5) || (digits[0] != (uintval & (unsigned long) PyLong_MASK)) | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[3] != ((uintval >> (3 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[4] != ((uintval >> (4 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)); } else #endif #if PyLong_SHIFT * 3 < SIZEOF_LONG*8 if (uintval >> (PyLong_SHIFT * 3)) { unequal = (size != 4) || (digits[0] != (uintval & (unsigned long) PyLong_MASK)) | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[3] != ((uintval >> (3 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)); } else #endif #if PyLong_SHIFT * 2 < SIZEOF_LONG*8 if (uintval >> (PyLong_SHIFT * 2)) { unequal = (size != 3) || (digits[0] != (uintval & (unsigned long) PyLong_MASK)) | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)); } else #endif #if PyLong_SHIFT * 1 < SIZEOF_LONG*8 if (uintval >> (PyLong_SHIFT * 1)) { unequal = (size != 2) || (digits[0] != (uintval & (unsigned long) PyLong_MASK)) | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)); } else #endif unequal = (size != 1) || (((unsigned long) digits[0]) != (uintval & (unsigned long) PyLong_MASK)); if (unequal != 0) Py_RETURN_TRUE; else Py_RETURN_FALSE; } #endif if (PyFloat_CheckExact(op1)) { const long b = intval; #if CYTHON_COMPILING_IN_LIMITED_API double a = __pyx_PyFloat_AsDouble(op1); #else double a = PyFloat_AS_DOUBLE(op1); #endif if ((double)a != (double)b) Py_RETURN_TRUE; else Py_RETURN_FALSE; } return ( PyObject_RichCompare(op1, op2, Py_NE)); } /* PyDictVersioning */ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) { PyObject *dict = Py_TYPE(obj)->tp_dict; return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0; } static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) { PyObject **dictptr = NULL; Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset; if (offset) { #if CYTHON_COMPILING_IN_CPYTHON dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj); #else dictptr = _PyObject_GetDictPtr(obj); #endif } return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0; } static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) { PyObject *dict = Py_TYPE(obj)->tp_dict; if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict))) return 0; return obj_dict_version == __Pyx_get_object_dict_version(obj); } #endif /* GetModuleGlobalName */ #if CYTHON_USE_DICT_VERSIONS static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value) #else static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name) #endif { PyObject *result; #if !CYTHON_AVOID_BORROWED_REFS #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 result = _PyDict_GetItem_KnownHash(__pyx_d, name, ((PyASCIIObject *) name)->hash); __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) if (likely(result)) { return __Pyx_NewRef(result); } else if (unlikely(PyErr_Occurred())) { return NULL; } #elif CYTHON_COMPILING_IN_LIMITED_API if (unlikely(!__pyx_m)) { return NULL; } result = PyObject_GetAttr(__pyx_m, name); if (likely(result)) { return result; } #else result = PyDict_GetItem(__pyx_d, name); __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) if (likely(result)) { return __Pyx_NewRef(result); } #endif #else result = PyObject_GetItem(__pyx_d, name); __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) if (likely(result)) { return __Pyx_NewRef(result); } PyErr_Clear(); #endif return __Pyx_GetBuiltinName(name); } /* PyObjectCall */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { PyObject *result; ternaryfunc call = Py_TYPE(func)->tp_call; if (unlikely(!call)) return PyObject_Call(func, arg, kw); if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) return NULL; result = (*call)(func, arg, kw); Py_LeaveRecursiveCall(); if (unlikely(!result) && unlikely(!PyErr_Occurred())) { PyErr_SetString( PyExc_SystemError, "NULL result without error in PyObject_Call"); } return result; } #endif /* PyIntCompare */ static CYTHON_INLINE PyObject* __Pyx_PyInt_EqObjC(PyObject *op1, PyObject *op2, long intval, long inplace) { CYTHON_MAYBE_UNUSED_VAR(intval); CYTHON_UNUSED_VAR(inplace); if (op1 == op2) { Py_RETURN_TRUE; } #if PY_MAJOR_VERSION < 3 if (likely(PyInt_CheckExact(op1))) { const long b = intval; long a = PyInt_AS_LONG(op1); if (a == b) Py_RETURN_TRUE; else Py_RETURN_FALSE; } #endif #if CYTHON_USE_PYLONG_INTERNALS if (likely(PyLong_CheckExact(op1))) { int unequal; unsigned long uintval; Py_ssize_t size = Py_SIZE(op1); const digit* digits = ((PyLongObject*)op1)->ob_digit; if (intval == 0) { if (size == 0) Py_RETURN_TRUE; else Py_RETURN_FALSE; } else if (intval < 0) { if (size >= 0) Py_RETURN_FALSE; intval = -intval; size = -size; } else { if (size <= 0) Py_RETURN_FALSE; } uintval = (unsigned long) intval; #if PyLong_SHIFT * 4 < SIZEOF_LONG*8 if (uintval >> (PyLong_SHIFT * 4)) { unequal = (size != 5) || (digits[0] != (uintval & (unsigned long) PyLong_MASK)) | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[3] != ((uintval >> (3 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[4] != ((uintval >> (4 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)); } else #endif #if PyLong_SHIFT * 3 < SIZEOF_LONG*8 if (uintval >> (PyLong_SHIFT * 3)) { unequal = (size != 4) || (digits[0] != (uintval & (unsigned long) PyLong_MASK)) | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[3] != ((uintval >> (3 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)); } else #endif #if PyLong_SHIFT * 2 < SIZEOF_LONG*8 if (uintval >> (PyLong_SHIFT * 2)) { unequal = (size != 3) || (digits[0] != (uintval & (unsigned long) PyLong_MASK)) | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)); } else #endif #if PyLong_SHIFT * 1 < SIZEOF_LONG*8 if (uintval >> (PyLong_SHIFT * 1)) { unequal = (size != 2) || (digits[0] != (uintval & (unsigned long) PyLong_MASK)) | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)); } else #endif unequal = (size != 1) || (((unsigned long) digits[0]) != (uintval & (unsigned long) PyLong_MASK)); if (unequal == 0) Py_RETURN_TRUE; else Py_RETURN_FALSE; } #endif if (PyFloat_CheckExact(op1)) { const long b = intval; #if CYTHON_COMPILING_IN_LIMITED_API double a = __pyx_PyFloat_AsDouble(op1); #else double a = PyFloat_AS_DOUBLE(op1); #endif if ((double)a == (double)b) Py_RETURN_TRUE; else Py_RETURN_FALSE; } return ( PyObject_RichCompare(op1, op2, Py_EQ)); } /* GetException */ #if CYTHON_FAST_THREAD_STATE static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) #else static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) #endif { PyObject *local_type, *local_value, *local_tb; #if CYTHON_FAST_THREAD_STATE PyObject *tmp_type, *tmp_value, *tmp_tb; local_type = tstate->curexc_type; local_value = tstate->curexc_value; local_tb = tstate->curexc_traceback; tstate->curexc_type = 0; tstate->curexc_value = 0; tstate->curexc_traceback = 0; #else PyErr_Fetch(&local_type, &local_value, &local_tb); #endif PyErr_NormalizeException(&local_type, &local_value, &local_tb); #if CYTHON_FAST_THREAD_STATE if (unlikely(tstate->curexc_type)) #else if (unlikely(PyErr_Occurred())) #endif goto bad; #if PY_MAJOR_VERSION >= 3 if (local_tb) { if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0)) goto bad; } #endif Py_XINCREF(local_tb); Py_XINCREF(local_type); Py_XINCREF(local_value); *type = local_type; *value = local_value; *tb = local_tb; #if CYTHON_FAST_THREAD_STATE #if CYTHON_USE_EXC_INFO_STACK { _PyErr_StackItem *exc_info = tstate->exc_info; tmp_type = exc_info->exc_type; tmp_value = exc_info->exc_value; tmp_tb = exc_info->exc_traceback; exc_info->exc_type = local_type; exc_info->exc_value = local_value; exc_info->exc_traceback = local_tb; } #else tmp_type = tstate->exc_type; tmp_value = tstate->exc_value; tmp_tb = tstate->exc_traceback; tstate->exc_type = local_type; tstate->exc_value = local_value; tstate->exc_traceback = local_tb; #endif Py_XDECREF(tmp_type); Py_XDECREF(tmp_value); Py_XDECREF(tmp_tb); #else PyErr_SetExcInfo(local_type, local_value, local_tb); #endif return 0; bad: *type = 0; *value = 0; *tb = 0; Py_XDECREF(local_type); Py_XDECREF(local_value); Py_XDECREF(local_tb); return -1; } /* pep479 */ static void __Pyx_Generator_Replace_StopIteration(int in_async_gen) { PyObject *exc, *val, *tb, *cur_exc; __Pyx_PyThreadState_declare #ifdef __Pyx_StopAsyncIteration_USED int is_async_stopiteration = 0; #endif CYTHON_MAYBE_UNUSED_VAR(in_async_gen); cur_exc = PyErr_Occurred(); if (likely(!__Pyx_PyErr_GivenExceptionMatches(cur_exc, PyExc_StopIteration))) { #ifdef __Pyx_StopAsyncIteration_USED if (in_async_gen && unlikely(__Pyx_PyErr_GivenExceptionMatches(cur_exc, __Pyx_PyExc_StopAsyncIteration))) { is_async_stopiteration = 1; } else #endif return; } __Pyx_PyThreadState_assign __Pyx_GetException(&exc, &val, &tb); Py_XDECREF(exc); Py_XDECREF(val); Py_XDECREF(tb); PyErr_SetString(PyExc_RuntimeError, #ifdef __Pyx_StopAsyncIteration_USED is_async_stopiteration ? "async generator raised StopAsyncIteration" : in_async_gen ? "async generator raised StopIteration" : #endif "generator raised StopIteration"); } /* PyFunctionFastCall */ #if CYTHON_FAST_PYCALL && !CYTHON_VECTORCALL static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na, PyObject *globals) { PyFrameObject *f; PyThreadState *tstate = __Pyx_PyThreadState_Current; PyObject **fastlocals; Py_ssize_t i; PyObject *result; assert(globals != NULL); /* XXX Perhaps we should create a specialized PyFrame_New() that doesn't take locals, but does take builtins without sanity checking them. */ assert(tstate != NULL); f = PyFrame_New(tstate, co, globals, NULL); if (f == NULL) { return NULL; } fastlocals = __Pyx_PyFrame_GetLocalsplus(f); for (i = 0; i < na; i++) { Py_INCREF(*args); fastlocals[i] = *args++; } result = PyEval_EvalFrameEx(f,0); ++tstate->recursion_depth; Py_DECREF(f); --tstate->recursion_depth; return result; } static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs) { PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func); PyObject *globals = PyFunction_GET_GLOBALS(func); PyObject *argdefs = PyFunction_GET_DEFAULTS(func); PyObject *closure; #if PY_MAJOR_VERSION >= 3 PyObject *kwdefs; #endif PyObject *kwtuple, **k; PyObject **d; Py_ssize_t nd; Py_ssize_t nk; PyObject *result; assert(kwargs == NULL || PyDict_Check(kwargs)); nk = kwargs ? PyDict_Size(kwargs) : 0; if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) { return NULL; } if ( #if PY_MAJOR_VERSION >= 3 co->co_kwonlyargcount == 0 && #endif likely(kwargs == NULL || nk == 0) && co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE)) { if (argdefs == NULL && co->co_argcount == nargs) { result = __Pyx_PyFunction_FastCallNoKw(co, args, nargs, globals); goto done; } else if (nargs == 0 && argdefs != NULL && co->co_argcount == Py_SIZE(argdefs)) { /* function called with no arguments, but all parameters have a default value: use default values as arguments .*/ args = &PyTuple_GET_ITEM(argdefs, 0); result =__Pyx_PyFunction_FastCallNoKw(co, args, Py_SIZE(argdefs), globals); goto done; } } if (kwargs != NULL) { Py_ssize_t pos, i; kwtuple = PyTuple_New(2 * nk); if (kwtuple == NULL) { result = NULL; goto done; } k = &PyTuple_GET_ITEM(kwtuple, 0); pos = i = 0; while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) { Py_INCREF(k[i]); Py_INCREF(k[i+1]); i += 2; } nk = i / 2; } else { kwtuple = NULL; k = NULL; } closure = PyFunction_GET_CLOSURE(func); #if PY_MAJOR_VERSION >= 3 kwdefs = PyFunction_GET_KW_DEFAULTS(func); #endif if (argdefs != NULL) { d = &PyTuple_GET_ITEM(argdefs, 0); nd = Py_SIZE(argdefs); } else { d = NULL; nd = 0; } #if PY_MAJOR_VERSION >= 3 result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL, args, (int)nargs, k, (int)nk, d, (int)nd, kwdefs, closure); #else result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL, args, (int)nargs, k, (int)nk, d, (int)nd, closure); #endif Py_XDECREF(kwtuple); done: Py_LeaveRecursiveCall(); return result; } #endif /* PyObjectCallMethO */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) { PyObject *self, *result; PyCFunction cfunc; cfunc = PyCFunction_GET_FUNCTION(func); self = PyCFunction_GET_SELF(func); if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) return NULL; result = cfunc(self, arg); Py_LeaveRecursiveCall(); if (unlikely(!result) && unlikely(!PyErr_Occurred())) { PyErr_SetString( PyExc_SystemError, "NULL result without error in PyObject_Call"); } return result; } #endif /* PyObjectFastCall */ static PyObject* __Pyx_PyObject_FastCall_fallback(PyObject *func, PyObject **args, size_t nargs, PyObject *kwargs) { PyObject *argstuple; PyObject *result; size_t i; argstuple = PyTuple_New((Py_ssize_t)nargs); if (unlikely(!argstuple)) return NULL; for (i = 0; i < nargs; i++) { Py_INCREF(args[i]); PyTuple_SET_ITEM(argstuple, (Py_ssize_t)i, args[i]); } result = __Pyx_PyObject_Call(func, argstuple, kwargs); Py_DECREF(argstuple); return result; } static CYTHON_INLINE PyObject* __Pyx_PyObject_FastCallDict(PyObject *func, PyObject **args, size_t _nargs, PyObject *kwargs) { Py_ssize_t nargs = __Pyx_PyVectorcall_NARGS(_nargs); #if CYTHON_COMPILING_IN_CPYTHON if (nargs == 0 && kwargs == NULL) { #ifdef __Pyx_CyFunction_USED if (__Pyx_IsCyOrPyCFunction(func)) #else if (PyCFunction_Check(func)) #endif { if (likely(PyCFunction_GET_FLAGS(func) & METH_NOARGS)) { return __Pyx_PyObject_CallMethO(func, NULL); } } } else if (nargs == 1 && kwargs == NULL) { if (PyCFunction_Check(func)) { if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { return __Pyx_PyObject_CallMethO(func, args[0]); } } } #endif #if PY_VERSION_HEX < 0x030800B1 #if CYTHON_FAST_PYCCALL if (PyCFunction_Check(func)) { if (kwargs) { return _PyCFunction_FastCallDict(func, args, nargs, kwargs); } else { return _PyCFunction_FastCallKeywords(func, args, nargs, NULL); } } #if PY_VERSION_HEX >= 0x030700A1 if (!kwargs && __Pyx_IS_TYPE(func, &PyMethodDescr_Type)) { return _PyMethodDescr_FastCallKeywords(func, args, nargs, NULL); } #endif #endif #if CYTHON_FAST_PYCALL if (PyFunction_Check(func)) { return __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs); } #endif #endif #if CYTHON_VECTORCALL vectorcallfunc f = _PyVectorcall_Function(func); if (f) { return f(func, args, (size_t)nargs, kwargs); } #elif defined(__Pyx_CyFunction_USED) && CYTHON_BACKPORT_VECTORCALL if (__Pyx_CyFunction_CheckExact(func)) { __pyx_vectorcallfunc f = __Pyx_CyFunction_func_vectorcall(func); if (f) return f(func, args, (size_t)nargs, kwargs); } #endif if (nargs == 0) { return __Pyx_PyObject_Call(func, __pyx_empty_tuple, kwargs); } return __Pyx_PyObject_FastCall_fallback(func, args, (size_t)nargs, kwargs); } /* JoinPyUnicode */ static PyObject* __Pyx_PyUnicode_Join(PyObject* value_tuple, Py_ssize_t value_count, Py_ssize_t result_ulength, Py_UCS4 max_char) { #if CYTHON_USE_UNICODE_INTERNALS && CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS PyObject *result_uval; int result_ukind, kind_shift; Py_ssize_t i, char_pos; void *result_udata; CYTHON_MAYBE_UNUSED_VAR(max_char); #if CYTHON_PEP393_ENABLED result_uval = PyUnicode_New(result_ulength, max_char); if (unlikely(!result_uval)) return NULL; result_ukind = (max_char <= 255) ? PyUnicode_1BYTE_KIND : (max_char <= 65535) ? PyUnicode_2BYTE_KIND : PyUnicode_4BYTE_KIND; kind_shift = (result_ukind == PyUnicode_4BYTE_KIND) ? 2 : result_ukind - 1; result_udata = PyUnicode_DATA(result_uval); #else result_uval = PyUnicode_FromUnicode(NULL, result_ulength); if (unlikely(!result_uval)) return NULL; result_ukind = sizeof(Py_UNICODE); kind_shift = (result_ukind == 4) ? 2 : result_ukind - 1; result_udata = PyUnicode_AS_UNICODE(result_uval); #endif assert(kind_shift == 2 || kind_shift == 1 || kind_shift == 0); char_pos = 0; for (i=0; i < value_count; i++) { int ukind; Py_ssize_t ulength; void *udata; PyObject *uval = PyTuple_GET_ITEM(value_tuple, i); if (unlikely(__Pyx_PyUnicode_READY(uval))) goto bad; ulength = __Pyx_PyUnicode_GET_LENGTH(uval); if (unlikely(!ulength)) continue; if (unlikely((PY_SSIZE_T_MAX >> kind_shift) - ulength < char_pos)) goto overflow; ukind = __Pyx_PyUnicode_KIND(uval); udata = __Pyx_PyUnicode_DATA(uval); if (!CYTHON_PEP393_ENABLED || ukind == result_ukind) { memcpy((char *)result_udata + (char_pos << kind_shift), udata, (size_t) (ulength << kind_shift)); } else { #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030300F0 || defined(_PyUnicode_FastCopyCharacters) _PyUnicode_FastCopyCharacters(result_uval, char_pos, uval, 0, ulength); #else Py_ssize_t j; for (j=0; j < ulength; j++) { Py_UCS4 uchar = __Pyx_PyUnicode_READ(ukind, udata, j); __Pyx_PyUnicode_WRITE(result_ukind, result_udata, char_pos+j, uchar); } #endif } char_pos += ulength; } return result_uval; overflow: PyErr_SetString(PyExc_OverflowError, "join() result is too long for a Python string"); bad: Py_DECREF(result_uval); return NULL; #else CYTHON_UNUSED_VAR(max_char); CYTHON_UNUSED_VAR(result_ulength); CYTHON_UNUSED_VAR(value_count); return PyUnicode_Join(__pyx_empty_unicode, value_tuple); #endif } /* SliceObject */ static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice(PyObject* obj, Py_ssize_t cstart, Py_ssize_t cstop, PyObject** _py_start, PyObject** _py_stop, PyObject** _py_slice, int has_cstart, int has_cstop, int wraparound) { __Pyx_TypeName obj_type_name; #if CYTHON_USE_TYPE_SLOTS PyMappingMethods* mp; #if PY_MAJOR_VERSION < 3 PySequenceMethods* ms = Py_TYPE(obj)->tp_as_sequence; if (likely(ms && ms->sq_slice)) { if (!has_cstart) { if (_py_start && (*_py_start != Py_None)) { cstart = __Pyx_PyIndex_AsSsize_t(*_py_start); if ((cstart == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad; } else cstart = 0; } if (!has_cstop) { if (_py_stop && (*_py_stop != Py_None)) { cstop = __Pyx_PyIndex_AsSsize_t(*_py_stop); if ((cstop == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad; } else cstop = PY_SSIZE_T_MAX; } if (wraparound && unlikely((cstart < 0) | (cstop < 0)) && likely(ms->sq_length)) { Py_ssize_t l = ms->sq_length(obj); if (likely(l >= 0)) { if (cstop < 0) { cstop += l; if (cstop < 0) cstop = 0; } if (cstart < 0) { cstart += l; if (cstart < 0) cstart = 0; } } else { if (!PyErr_ExceptionMatches(PyExc_OverflowError)) goto bad; PyErr_Clear(); } } return ms->sq_slice(obj, cstart, cstop); } #else CYTHON_UNUSED_VAR(wraparound); #endif mp = Py_TYPE(obj)->tp_as_mapping; if (likely(mp && mp->mp_subscript)) #else CYTHON_UNUSED_VAR(wraparound); #endif { PyObject* result; PyObject *py_slice, *py_start, *py_stop; if (_py_slice) { py_slice = *_py_slice; } else { PyObject* owned_start = NULL; PyObject* owned_stop = NULL; if (_py_start) { py_start = *_py_start; } else { if (has_cstart) { owned_start = py_start = PyInt_FromSsize_t(cstart); if (unlikely(!py_start)) goto bad; } else py_start = Py_None; } if (_py_stop) { py_stop = *_py_stop; } else { if (has_cstop) { owned_stop = py_stop = PyInt_FromSsize_t(cstop); if (unlikely(!py_stop)) { Py_XDECREF(owned_start); goto bad; } } else py_stop = Py_None; } py_slice = PySlice_New(py_start, py_stop, Py_None); Py_XDECREF(owned_start); Py_XDECREF(owned_stop); if (unlikely(!py_slice)) goto bad; } #if CYTHON_USE_TYPE_SLOTS result = mp->mp_subscript(obj, py_slice); #else result = PyObject_GetItem(obj, py_slice); #endif if (!_py_slice) { Py_DECREF(py_slice); } return result; } obj_type_name = __Pyx_PyType_GetName(Py_TYPE(obj)); PyErr_Format(PyExc_TypeError, "'" __Pyx_FMT_TYPENAME "' object is unsliceable", obj_type_name); __Pyx_DECREF_TypeName(obj_type_name); bad: return NULL; } /* GetTopmostException */ #if CYTHON_USE_EXC_INFO_STACK static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate) { _PyErr_StackItem *exc_info = tstate->exc_info; while ((exc_info->exc_type == NULL || exc_info->exc_type == Py_None) && exc_info->previous_item != NULL) { exc_info = exc_info->previous_item; } return exc_info; } #endif /* SaveResetException */ #if CYTHON_FAST_THREAD_STATE static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { #if CYTHON_USE_EXC_INFO_STACK _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate); *type = exc_info->exc_type; *value = exc_info->exc_value; *tb = exc_info->exc_traceback; #else *type = tstate->exc_type; *value = tstate->exc_value; *tb = tstate->exc_traceback; #endif Py_XINCREF(*type); Py_XINCREF(*value); Py_XINCREF(*tb); } static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { PyObject *tmp_type, *tmp_value, *tmp_tb; #if CYTHON_USE_EXC_INFO_STACK _PyErr_StackItem *exc_info = tstate->exc_info; tmp_type = exc_info->exc_type; tmp_value = exc_info->exc_value; tmp_tb = exc_info->exc_traceback; exc_info->exc_type = type; exc_info->exc_value = value; exc_info->exc_traceback = tb; #else tmp_type = tstate->exc_type; tmp_value = tstate->exc_value; tmp_tb = tstate->exc_traceback; tstate->exc_type = type; tstate->exc_value = value; tstate->exc_traceback = tb; #endif Py_XDECREF(tmp_type); Py_XDECREF(tmp_value); Py_XDECREF(tmp_tb); } #endif /* FastTypeChecks */ #if CYTHON_COMPILING_IN_CPYTHON static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) { while (a) { a = __Pyx_PyType_GetSlot(a, tp_base, PyTypeObject*); if (a == b) return 1; } return b == &PyBaseObject_Type; } static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) { PyObject *mro; if (a == b) return 1; mro = a->tp_mro; if (likely(mro)) { Py_ssize_t i, n; n = PyTuple_GET_SIZE(mro); for (i = 0; i < n; i++) { if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b) return 1; } return 0; } return __Pyx_InBases(a, b); } static CYTHON_INLINE int __Pyx_IsAnySubtype2(PyTypeObject *cls, PyTypeObject *a, PyTypeObject *b) { PyObject *mro; if (cls == a || cls == b) return 1; mro = cls->tp_mro; if (likely(mro)) { Py_ssize_t i, n; n = PyTuple_GET_SIZE(mro); for (i = 0; i < n; i++) { PyObject *base = PyTuple_GET_ITEM(mro, i); if (base == (PyObject *)a || base == (PyObject *)b) return 1; } return 0; } return __Pyx_InBases(cls, a) || __Pyx_InBases(cls, b); } #if PY_MAJOR_VERSION == 2 static int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject* exc_type2) { PyObject *exception, *value, *tb; int res; __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ErrFetch(&exception, &value, &tb); res = exc_type1 ? PyObject_IsSubclass(err, exc_type1) : 0; if (unlikely(res == -1)) { PyErr_WriteUnraisable(err); res = 0; } if (!res) { res = PyObject_IsSubclass(err, exc_type2); if (unlikely(res == -1)) { PyErr_WriteUnraisable(err); res = 0; } } __Pyx_ErrRestore(exception, value, tb); return res; } #else static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) { if (exc_type1) { return __Pyx_IsAnySubtype2((PyTypeObject*)err, (PyTypeObject*)exc_type1, (PyTypeObject*)exc_type2); } else { return __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2); } } #endif static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) { Py_ssize_t i, n; assert(PyExceptionClass_Check(exc_type)); n = PyTuple_GET_SIZE(tuple); #if PY_MAJOR_VERSION >= 3 for (i=0; icurexc_traceback; if (tb != tmp_tb) { Py_INCREF(tb); tstate->curexc_traceback = tb; Py_XDECREF(tmp_tb); } #endif } bad: Py_XDECREF(owned_instance); return; } #endif /* GetItemInt */ static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) { PyObject *r; if (unlikely(!j)) return NULL; r = PyObject_GetItem(o, j); Py_DECREF(j); return r; } static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i, CYTHON_NCP_UNUSED int wraparound, CYTHON_NCP_UNUSED int boundscheck) { #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS Py_ssize_t wrapped_i = i; if (wraparound & unlikely(i < 0)) { wrapped_i += PyList_GET_SIZE(o); } if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyList_GET_SIZE(o)))) { PyObject *r = PyList_GET_ITEM(o, wrapped_i); Py_INCREF(r); return r; } return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); #else return PySequence_GetItem(o, i); #endif } static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i, CYTHON_NCP_UNUSED int wraparound, CYTHON_NCP_UNUSED int boundscheck) { #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS Py_ssize_t wrapped_i = i; if (wraparound & unlikely(i < 0)) { wrapped_i += PyTuple_GET_SIZE(o); } if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyTuple_GET_SIZE(o)))) { PyObject *r = PyTuple_GET_ITEM(o, wrapped_i); Py_INCREF(r); return r; } return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); #else return PySequence_GetItem(o, i); #endif } static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list, CYTHON_NCP_UNUSED int wraparound, CYTHON_NCP_UNUSED int boundscheck) { #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS if (is_list || PyList_CheckExact(o)) { Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyList_GET_SIZE(o); if ((!boundscheck) || (likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o))))) { PyObject *r = PyList_GET_ITEM(o, n); Py_INCREF(r); return r; } } else if (PyTuple_CheckExact(o)) { Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o); if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyTuple_GET_SIZE(o)))) { PyObject *r = PyTuple_GET_ITEM(o, n); Py_INCREF(r); return r; } } else { PyMappingMethods *mm = Py_TYPE(o)->tp_as_mapping; PySequenceMethods *sm = Py_TYPE(o)->tp_as_sequence; if (mm && mm->mp_subscript) { PyObject *r, *key = PyInt_FromSsize_t(i); if (unlikely(!key)) return NULL; r = mm->mp_subscript(o, key); Py_DECREF(key); return r; } if (likely(sm && sm->sq_item)) { if (wraparound && unlikely(i < 0) && likely(sm->sq_length)) { Py_ssize_t l = sm->sq_length(o); if (likely(l >= 0)) { i += l; } else { if (!PyErr_ExceptionMatches(PyExc_OverflowError)) return NULL; PyErr_Clear(); } } return sm->sq_item(o, i); } } #else if (is_list || PySequence_Check(o)) { return PySequence_GetItem(o, i); } #endif return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); } /* RaiseUnexpectedTypeError */ static int __Pyx_RaiseUnexpectedTypeError(const char *expected, PyObject *obj) { __Pyx_TypeName obj_type_name = __Pyx_PyType_GetName(Py_TYPE(obj)); PyErr_Format(PyExc_TypeError, "Expected %s, got " __Pyx_FMT_TYPENAME, expected, obj_type_name); __Pyx_DECREF_TypeName(obj_type_name); return 0; } /* PyIntBinop */ #if !CYTHON_COMPILING_IN_PYPY static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check) { CYTHON_MAYBE_UNUSED_VAR(intval); CYTHON_MAYBE_UNUSED_VAR(inplace); CYTHON_UNUSED_VAR(zerodivision_check); #if PY_MAJOR_VERSION < 3 if (likely(PyInt_CheckExact(op1))) { const long b = intval; long x; long a = PyInt_AS_LONG(op1); x = (long)((unsigned long)a + b); if (likely((x^a) >= 0 || (x^b) >= 0)) return PyInt_FromLong(x); return PyLong_Type.tp_as_number->nb_add(op1, op2); } #endif #if CYTHON_USE_PYLONG_INTERNALS if (likely(PyLong_CheckExact(op1))) { const long b = intval; long a, x; #ifdef HAVE_LONG_LONG const PY_LONG_LONG llb = intval; PY_LONG_LONG lla, llx; #endif const digit* digits = ((PyLongObject*)op1)->ob_digit; const Py_ssize_t size = Py_SIZE(op1); if (unlikely(size == 0)) { return __Pyx_NewRef(op2); } if (likely(__Pyx_sst_abs(size) <= 1)) { a = likely(size) ? digits[0] : 0; if (size == -1) a = -a; } else { switch (size) { case -2: if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) { lla = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case 2: if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) { lla = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case -3: if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) { lla = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case 3: if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) { lla = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case -4: if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) { lla = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case 4: if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) { lla = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; default: return PyLong_Type.tp_as_number->nb_add(op1, op2); } } x = a + b; return PyLong_FromLong(x); #ifdef HAVE_LONG_LONG long_long: llx = lla + llb; return PyLong_FromLongLong(llx); #endif } #endif if (PyFloat_CheckExact(op1)) { const long b = intval; #if CYTHON_COMPILING_IN_LIMITED_API double a = __pyx_PyFloat_AsDouble(op1); #else double a = PyFloat_AS_DOUBLE(op1); #endif double result; PyFPE_START_PROTECT("add", return NULL) result = ((double)a) + (double)b; PyFPE_END_PROTECT(result) return PyFloat_FromDouble(result); } return (inplace ? PyNumber_InPlaceAdd : PyNumber_Add)(op1, op2); } #endif /* PyUnicode_Unicode */ static CYTHON_INLINE PyObject* __Pyx_PyUnicode_Unicode(PyObject *obj) { if (unlikely(obj == Py_None)) obj = __pyx_kp_u_None; return __Pyx_NewRef(obj); } /* PyIntBinop */ #if !CYTHON_COMPILING_IN_PYPY static PyObject* __Pyx_PyInt_TrueDivideObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check) { CYTHON_MAYBE_UNUSED_VAR(intval); CYTHON_MAYBE_UNUSED_VAR(inplace); CYTHON_UNUSED_VAR(zerodivision_check); #if PY_MAJOR_VERSION < 3 if (likely(PyInt_CheckExact(op1))) { const long b = intval; long a = PyInt_AS_LONG(op1); if (8 * sizeof(long) <= 53 || likely(labs(a) <= ((PY_LONG_LONG)1 << 53))) { return PyFloat_FromDouble((double)a / (double)b); } return PyInt_Type.tp_as_number->nb_true_divide(op1, op2); } #endif #if CYTHON_USE_PYLONG_INTERNALS if (likely(PyLong_CheckExact(op1))) { const long b = intval; long a, x; const digit* digits = ((PyLongObject*)op1)->ob_digit; const Py_ssize_t size = Py_SIZE(op1); if (unlikely(size == 0)) { } if (likely(__Pyx_sst_abs(size) <= 1)) { a = likely(size) ? digits[0] : 0; if (size == -1) a = -a; } else { switch (size) { case -2: if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT && 1 * PyLong_SHIFT < 53) { a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; } CYTHON_FALLTHROUGH; case 2: if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT && 1 * PyLong_SHIFT < 53) { a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; } CYTHON_FALLTHROUGH; case -3: if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT && 2 * PyLong_SHIFT < 53) { a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; } CYTHON_FALLTHROUGH; case 3: if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT && 2 * PyLong_SHIFT < 53) { a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; } CYTHON_FALLTHROUGH; case -4: if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT && 3 * PyLong_SHIFT < 53) { a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; } CYTHON_FALLTHROUGH; case 4: if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT && 3 * PyLong_SHIFT < 53) { a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; } CYTHON_FALLTHROUGH; default: return PyLong_Type.tp_as_number->nb_true_divide(op1, op2); } } if ((8 * sizeof(long) <= 53 || likely(labs(a) <= ((PY_LONG_LONG)1 << 53))) || __Pyx_sst_abs(size) <= 52 / PyLong_SHIFT) { return PyFloat_FromDouble((double)a / (double)b); } return PyLong_Type.tp_as_number->nb_true_divide(op1, op2); return PyLong_FromLong(x); } #endif if (PyFloat_CheckExact(op1)) { const long b = intval; #if CYTHON_COMPILING_IN_LIMITED_API double a = __pyx_PyFloat_AsDouble(op1); #else double a = PyFloat_AS_DOUBLE(op1); #endif double result; PyFPE_START_PROTECT("divide", return NULL) result = ((double)a) / (double)b; PyFPE_END_PROTECT(result) return PyFloat_FromDouble(result); } return (inplace ? PyNumber_InPlaceTrueDivide : PyNumber_TrueDivide)(op1, op2); } #endif /* PyObjectFormat */ #if CYTHON_USE_UNICODE_WRITER static PyObject* __Pyx_PyObject_Format(PyObject* obj, PyObject* format_spec) { int ret; _PyUnicodeWriter writer; if (likely(PyFloat_CheckExact(obj))) { #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x03040000 _PyUnicodeWriter_Init(&writer, 0); #else _PyUnicodeWriter_Init(&writer); #endif ret = _PyFloat_FormatAdvancedWriter( &writer, obj, format_spec, 0, PyUnicode_GET_LENGTH(format_spec)); } else if (likely(PyLong_CheckExact(obj))) { #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x03040000 _PyUnicodeWriter_Init(&writer, 0); #else _PyUnicodeWriter_Init(&writer); #endif ret = _PyLong_FormatAdvancedWriter( &writer, obj, format_spec, 0, PyUnicode_GET_LENGTH(format_spec)); } else { return PyObject_Format(obj, format_spec); } if (unlikely(ret == -1)) { _PyUnicodeWriter_Dealloc(&writer); return NULL; } return _PyUnicodeWriter_Finish(&writer); } #endif /* UnicodeConcatInPlace */ # if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3 static int __Pyx_unicode_modifiable(PyObject *unicode) { if (Py_REFCNT(unicode) != 1) return 0; if (!PyUnicode_CheckExact(unicode)) return 0; if (PyUnicode_CHECK_INTERNED(unicode)) return 0; return 1; } static CYTHON_INLINE PyObject *__Pyx_PyUnicode_ConcatInPlaceImpl(PyObject **p_left, PyObject *right #if CYTHON_REFNANNY , void* __pyx_refnanny #endif ) { PyObject *left = *p_left; Py_ssize_t left_len, right_len, new_len; if (unlikely(__Pyx_PyUnicode_READY(left) == -1)) return NULL; if (unlikely(__Pyx_PyUnicode_READY(right) == -1)) return NULL; left_len = PyUnicode_GET_LENGTH(left); if (left_len == 0) { Py_INCREF(right); return right; } right_len = PyUnicode_GET_LENGTH(right); if (right_len == 0) { Py_INCREF(left); return left; } if (unlikely(left_len > PY_SSIZE_T_MAX - right_len)) { PyErr_SetString(PyExc_OverflowError, "strings are too large to concat"); return NULL; } new_len = left_len + right_len; if (__Pyx_unicode_modifiable(left) && PyUnicode_CheckExact(right) && PyUnicode_KIND(right) <= PyUnicode_KIND(left) && !(PyUnicode_IS_ASCII(left) && !PyUnicode_IS_ASCII(right))) { __Pyx_GIVEREF(*p_left); if (unlikely(PyUnicode_Resize(p_left, new_len) != 0)) { __Pyx_GOTREF(*p_left); return NULL; } __Pyx_INCREF(*p_left); _PyUnicode_FastCopyCharacters(*p_left, left_len, right, 0, right_len); return *p_left; } else { return __Pyx_PyUnicode_Concat(left, right); } } #endif /* UnpackUnboundCMethod */ static int __Pyx_TryUnpackUnboundCMethod(__Pyx_CachedCFunction* target) { PyObject *method; method = __Pyx_PyObject_GetAttrStr(target->type, *target->method_name); if (unlikely(!method)) return -1; target->method = method; #if CYTHON_COMPILING_IN_CPYTHON #if PY_MAJOR_VERSION >= 3 if (likely(__Pyx_TypeCheck(method, &PyMethodDescr_Type))) #endif { PyMethodDescrObject *descr = (PyMethodDescrObject*) method; target->func = descr->d_method->ml_meth; target->flag = descr->d_method->ml_flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_STACKLESS); } #endif return 0; } /* CallUnboundCMethod0 */ static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self) { PyObject *args, *result = NULL; if (unlikely(!cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL; #if CYTHON_ASSUME_SAFE_MACROS args = PyTuple_New(1); if (unlikely(!args)) goto bad; Py_INCREF(self); PyTuple_SET_ITEM(args, 0, self); #else args = PyTuple_Pack(1, self); if (unlikely(!args)) goto bad; #endif result = __Pyx_PyObject_Call(cfunc->method, args, NULL); Py_DECREF(args); bad: return result; } /* RaiseClosureNameError */ static CYTHON_INLINE void __Pyx_RaiseClosureNameError(const char *varname) { PyErr_Format(PyExc_NameError, "free variable '%s' referenced before assignment in enclosing scope", varname); } /* PyObjectCallOneArg */ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { PyObject *args[2] = {NULL, arg}; return __Pyx_PyObject_FastCall(func, args+1, 1 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET); } /* PyObjectSetAttrStr */ #if CYTHON_USE_TYPE_SLOTS static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value) { PyTypeObject* tp = Py_TYPE(obj); if (likely(tp->tp_setattro)) return tp->tp_setattro(obj, attr_name, value); #if PY_MAJOR_VERSION < 3 if (likely(tp->tp_setattr)) return tp->tp_setattr(obj, PyString_AS_STRING(attr_name), value); #endif return PyObject_SetAttr(obj, attr_name, value); } #endif /* GetAttr */ static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *o, PyObject *n) { #if CYTHON_USE_TYPE_SLOTS #if PY_MAJOR_VERSION >= 3 if (likely(PyUnicode_Check(n))) #else if (likely(PyString_Check(n))) #endif return __Pyx_PyObject_GetAttrStr(o, n); #endif return PyObject_GetAttr(o, n); } /* HasAttr */ static CYTHON_INLINE int __Pyx_HasAttr(PyObject *o, PyObject *n) { PyObject *r; if (unlikely(!__Pyx_PyBaseString_Check(n))) { PyErr_SetString(PyExc_TypeError, "hasattr(): attribute name must be string"); return -1; } r = __Pyx_GetAttr(o, n); if (!r) { PyErr_Clear(); return 0; } else { Py_DECREF(r); return 1; } } /* PyIntBinop */ #if !CYTHON_COMPILING_IN_PYPY static PyObject* __Pyx_PyInt_MultiplyObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check) { CYTHON_MAYBE_UNUSED_VAR(intval); CYTHON_MAYBE_UNUSED_VAR(inplace); CYTHON_UNUSED_VAR(zerodivision_check); #if PY_MAJOR_VERSION < 3 if (likely(PyInt_CheckExact(op1))) { const long b = intval; long a = PyInt_AS_LONG(op1); #ifdef HAVE_LONG_LONG if (sizeof(PY_LONG_LONG) > sizeof(long)) { PY_LONG_LONG result = (PY_LONG_LONG)a * (PY_LONG_LONG)b; return (result >= LONG_MIN && result <= LONG_MAX) ? PyInt_FromLong((long)result) : PyLong_FromLongLong(result); } #endif #if CYTHON_USE_TYPE_SLOTS return PyInt_Type.tp_as_number->nb_multiply(op1, op2); #else return PyNumber_Multiply(op1, op2); #endif } #endif #if CYTHON_USE_PYLONG_INTERNALS if (likely(PyLong_CheckExact(op1))) { const long b = intval; long a, x; #ifdef HAVE_LONG_LONG const PY_LONG_LONG llb = intval; PY_LONG_LONG lla, llx; #endif const digit* digits = ((PyLongObject*)op1)->ob_digit; const Py_ssize_t size = Py_SIZE(op1); if (unlikely(size == 0)) { return __Pyx_NewRef(op1); } if (likely(__Pyx_sst_abs(size) <= 1)) { a = likely(size) ? digits[0] : 0; if (size == -1) a = -a; } else { switch (size) { case -2: if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT+30) { a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT+30) { lla = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case 2: if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT+30) { a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT+30) { lla = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case -3: if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT+30) { a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT+30) { lla = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case 3: if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT+30) { a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT+30) { lla = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case -4: if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT+30) { a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT+30) { lla = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case 4: if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT+30) { a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT+30) { lla = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; default: return PyLong_Type.tp_as_number->nb_multiply(op1, op2); } } (void)a; (void)b; #ifdef HAVE_LONG_LONG lla = a; goto long_long; #else return PyLong_Type.tp_as_number->nb_multiply(op1, op2); #endif return PyLong_FromLong(x); #ifdef HAVE_LONG_LONG long_long: llx = lla * llb; return PyLong_FromLongLong(llx); #endif } #endif if (PyFloat_CheckExact(op1)) { const long b = intval; #if CYTHON_COMPILING_IN_LIMITED_API double a = __pyx_PyFloat_AsDouble(op1); #else double a = PyFloat_AS_DOUBLE(op1); #endif double result; PyFPE_START_PROTECT("multiply", return NULL) result = ((double)a) * (double)b; PyFPE_END_PROTECT(result) return PyFloat_FromDouble(result); } return (inplace ? PyNumber_InPlaceMultiply : PyNumber_Multiply)(op1, op2); } #endif /* PyFloatBinop */ #if !CYTHON_COMPILING_IN_PYPY static PyObject* __Pyx_PyFloat_TrueDivideObjC(PyObject *op1, PyObject *op2, double floatval, int inplace, int zerodivision_check) { const double b = floatval; double a, result; (void)inplace; (void)zerodivision_check; if (likely(PyFloat_CheckExact(op1))) { #if CYTHON_COMPILING_IN_LIMITED_API a = __pyx_PyFloat_AsDouble(op1); #else a = PyFloat_AS_DOUBLE(op1); #endif } else #if PY_MAJOR_VERSION < 3 if (likely(PyInt_CheckExact(op1))) { a = (double) PyInt_AS_LONG(op1); } else #endif if (likely(PyLong_CheckExact(op1))) { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)op1)->ob_digit; const Py_ssize_t size = Py_SIZE(op1); switch (size) { case 0: a = 0.0; break; case -1: a = -(double) digits[0]; break; case 1: a = (double) digits[0]; break; case -2: case 2: if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT && ((8 * sizeof(unsigned long) < 53) || (1 * PyLong_SHIFT < 53))) { a = (double) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); if ((8 * sizeof(unsigned long) < 53) || (2 * PyLong_SHIFT < 53) || (a < (double) ((PY_LONG_LONG)1 << 53))) { if (size == -2) a = -a; break; } } CYTHON_FALLTHROUGH; case -3: case 3: if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT && ((8 * sizeof(unsigned long) < 53) || (2 * PyLong_SHIFT < 53))) { a = (double) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); if ((8 * sizeof(unsigned long) < 53) || (3 * PyLong_SHIFT < 53) || (a < (double) ((PY_LONG_LONG)1 << 53))) { if (size == -3) a = -a; break; } } CYTHON_FALLTHROUGH; case -4: case 4: if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT && ((8 * sizeof(unsigned long) < 53) || (3 * PyLong_SHIFT < 53))) { a = (double) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); if ((8 * sizeof(unsigned long) < 53) || (4 * PyLong_SHIFT < 53) || (a < (double) ((PY_LONG_LONG)1 << 53))) { if (size == -4) a = -a; break; } } CYTHON_FALLTHROUGH; default: #else { #endif a = PyLong_AsDouble(op1); if (unlikely(a == -1.0 && PyErr_Occurred())) return NULL; } } else { return (inplace ? PyNumber_InPlaceTrueDivide : PyNumber_TrueDivide)(op1, op2); } PyFPE_START_PROTECT("divide", return NULL) result = a / b; PyFPE_END_PROTECT(result) return PyFloat_FromDouble(result); } #endif /* SetItemInt */ static int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v) { int r; if (unlikely(!j)) return -1; r = PyObject_SetItem(o, j, v); Py_DECREF(j); return r; } static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v, int is_list, CYTHON_NCP_UNUSED int wraparound, CYTHON_NCP_UNUSED int boundscheck) { #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS if (is_list || PyList_CheckExact(o)) { Py_ssize_t n = (!wraparound) ? i : ((likely(i >= 0)) ? i : i + PyList_GET_SIZE(o)); if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o)))) { PyObject* old = PyList_GET_ITEM(o, n); Py_INCREF(v); PyList_SET_ITEM(o, n, v); Py_DECREF(old); return 1; } } else { PyMappingMethods *mm = Py_TYPE(o)->tp_as_mapping; PySequenceMethods *sm = Py_TYPE(o)->tp_as_sequence; if (mm && mm->mp_ass_subscript) { int r; PyObject *key = PyInt_FromSsize_t(i); if (unlikely(!key)) return -1; r = mm->mp_ass_subscript(o, key, v); Py_DECREF(key); return r; } if (likely(sm && sm->sq_ass_item)) { if (wraparound && unlikely(i < 0) && likely(sm->sq_length)) { Py_ssize_t l = sm->sq_length(o); if (likely(l >= 0)) { i += l; } else { if (!PyErr_ExceptionMatches(PyExc_OverflowError)) return -1; PyErr_Clear(); } } return sm->sq_ass_item(o, i, v); } } #else #if CYTHON_COMPILING_IN_PYPY if (is_list || (PySequence_Check(o) && !PyDict_Check(o))) #else if (is_list || PySequence_Check(o)) #endif { return PySequence_SetItem(o, i, v); } #endif return __Pyx_SetItemInt_Generic(o, PyInt_FromSsize_t(i), v); } /* pybytes_as_double */ static double __Pyx_SlowPyString_AsDouble(PyObject *obj) { PyObject *float_value; #if PY_MAJOR_VERSION >= 3 float_value = PyFloat_FromString(obj); #else float_value = PyFloat_FromString(obj, 0); #endif if (likely(float_value)) { double value = PyFloat_AS_DOUBLE(float_value); Py_DECREF(float_value); return value; } return (double)-1; } static const char* __Pyx__PyBytes_AsDouble_Copy(const char* start, char* buffer, Py_ssize_t length) { int last_was_punctuation = 1; Py_ssize_t i; for (i=0; i < length; i++) { char chr = start[i]; int is_punctuation = (chr == '_') | (chr == '.') | (chr == 'e') | (chr == 'E'); *buffer = chr; buffer += (chr != '_'); if (unlikely(last_was_punctuation & is_punctuation)) goto parse_failure; last_was_punctuation = is_punctuation; } if (unlikely(last_was_punctuation)) goto parse_failure; *buffer = '\0'; return buffer; parse_failure: return NULL; } static double __Pyx__PyBytes_AsDouble_inf_nan(const char* start, Py_ssize_t length) { int matches = 1; char sign = start[0]; int is_signed = (sign == '+') | (sign == '-'); start += is_signed; length -= is_signed; switch (start[0]) { #ifdef Py_NAN case 'n': case 'N': if (unlikely(length != 3)) goto parse_failure; matches &= (start[1] == 'a' || start[1] == 'A'); matches &= (start[2] == 'n' || start[2] == 'N'); if (unlikely(!matches)) goto parse_failure; return (sign == '-') ? -Py_NAN : Py_NAN; #endif case 'i': case 'I': if (unlikely(length < 3)) goto parse_failure; matches &= (start[1] == 'n' || start[1] == 'N'); matches &= (start[2] == 'f' || start[2] == 'F'); if (likely(length == 3 && matches)) return (sign == '-') ? -Py_HUGE_VAL : Py_HUGE_VAL; if (unlikely(length != 8)) goto parse_failure; matches &= (start[3] == 'i' || start[3] == 'I'); matches &= (start[4] == 'n' || start[4] == 'N'); matches &= (start[5] == 'i' || start[5] == 'I'); matches &= (start[6] == 't' || start[6] == 'T'); matches &= (start[7] == 'y' || start[7] == 'Y'); if (unlikely(!matches)) goto parse_failure; return (sign == '-') ? -Py_HUGE_VAL : Py_HUGE_VAL; case '.': case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': break; default: goto parse_failure; } return 0.0; parse_failure: return -1.0; } static CYTHON_INLINE int __Pyx__PyBytes_AsDouble_IsSpace(char ch) { return (ch == 0x20) | !((ch < 0x9) | (ch > 0xd)); } static CYTHON_UNUSED double __Pyx__PyBytes_AsDouble(PyObject *obj, const char* start, Py_ssize_t length) { double value; Py_ssize_t i, digits; const char *last = start + length; char *end; while (__Pyx__PyBytes_AsDouble_IsSpace(*start)) start++; while (start < last - 1 && __Pyx__PyBytes_AsDouble_IsSpace(last[-1])) last--; length = last - start; if (unlikely(length <= 0)) goto fallback; value = __Pyx__PyBytes_AsDouble_inf_nan(start, length); if (unlikely(value == -1.0)) goto fallback; if (value != 0.0) return value; digits = 0; for (i=0; i < length; digits += start[i++] != '_'); if (likely(digits == length)) { value = PyOS_string_to_double(start, &end, NULL); } else if (digits < 40) { char number[40]; last = __Pyx__PyBytes_AsDouble_Copy(start, number, length); if (unlikely(!last)) goto fallback; value = PyOS_string_to_double(number, &end, NULL); } else { char *number = (char*) PyMem_Malloc((digits + 1) * sizeof(char)); if (unlikely(!number)) goto fallback; last = __Pyx__PyBytes_AsDouble_Copy(start, number, length); if (unlikely(!last)) { PyMem_Free(number); goto fallback; } value = PyOS_string_to_double(number, &end, NULL); PyMem_Free(number); } if (likely(end == last) || (value == (double)-1 && PyErr_Occurred())) { return value; } fallback: return __Pyx_SlowPyString_AsDouble(obj); } /* SwapException */ #if CYTHON_FAST_THREAD_STATE static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { PyObject *tmp_type, *tmp_value, *tmp_tb; #if CYTHON_USE_EXC_INFO_STACK _PyErr_StackItem *exc_info = tstate->exc_info; tmp_type = exc_info->exc_type; tmp_value = exc_info->exc_value; tmp_tb = exc_info->exc_traceback; exc_info->exc_type = *type; exc_info->exc_value = *value; exc_info->exc_traceback = *tb; #else tmp_type = tstate->exc_type; tmp_value = tstate->exc_value; tmp_tb = tstate->exc_traceback; tstate->exc_type = *type; tstate->exc_value = *value; tstate->exc_traceback = *tb; #endif *type = tmp_type; *value = tmp_value; *tb = tmp_tb; } #else static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb) { PyObject *tmp_type, *tmp_value, *tmp_tb; PyErr_GetExcInfo(&tmp_type, &tmp_value, &tmp_tb); PyErr_SetExcInfo(*type, *value, *tb); *type = tmp_type; *value = tmp_value; *tb = tmp_tb; } #endif /* RaiseUnboundLocalError */ static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname) { PyErr_Format(PyExc_UnboundLocalError, "local variable '%s' referenced before assignment", varname); } /* Import */ static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) { PyObject *module = 0; PyObject *empty_dict = 0; PyObject *empty_list = 0; #if PY_MAJOR_VERSION < 3 PyObject *py_import; py_import = __Pyx_PyObject_GetAttrStr(__pyx_b, __pyx_n_s_import); if (unlikely(!py_import)) goto bad; if (!from_list) { empty_list = PyList_New(0); if (unlikely(!empty_list)) goto bad; from_list = empty_list; } #endif empty_dict = PyDict_New(); if (unlikely(!empty_dict)) goto bad; { #if PY_MAJOR_VERSION >= 3 if (level == -1) { if ((1) && (strchr(__Pyx_MODULE_NAME, '.'))) { #if CYTHON_COMPILING_IN_LIMITED_API module = PyImport_ImportModuleLevelObject( name, empty_dict, empty_dict, from_list, 1); #else module = PyImport_ImportModuleLevelObject( name, __pyx_d, empty_dict, from_list, 1); #endif if (unlikely(!module)) { if (unlikely(!PyErr_ExceptionMatches(PyExc_ImportError))) goto bad; PyErr_Clear(); } } level = 0; } #endif if (!module) { #if PY_MAJOR_VERSION < 3 PyObject *py_level = PyInt_FromLong(level); if (unlikely(!py_level)) goto bad; module = PyObject_CallFunctionObjArgs(py_import, name, __pyx_d, empty_dict, from_list, py_level, (PyObject *)NULL); Py_DECREF(py_level); #else #if CYTHON_COMPILING_IN_LIMITED_API module = PyImport_ImportModuleLevelObject( name, empty_dict, empty_dict, from_list, level); #else module = PyImport_ImportModuleLevelObject( name, __pyx_d, empty_dict, from_list, level); #endif #endif } } bad: Py_XDECREF(empty_dict); Py_XDECREF(empty_list); #if PY_MAJOR_VERSION < 3 Py_XDECREF(py_import); #endif return module; } /* ImportDottedModule */ #if PY_MAJOR_VERSION >= 3 static PyObject *__Pyx__ImportDottedModule_Error(PyObject *name, PyObject *parts_tuple, Py_ssize_t count) { PyObject *partial_name = NULL, *slice = NULL, *sep = NULL; if (unlikely(PyErr_Occurred())) { PyErr_Clear(); } if (likely(PyTuple_GET_SIZE(parts_tuple) == count)) { partial_name = name; } else { slice = PySequence_GetSlice(parts_tuple, 0, count); if (unlikely(!slice)) goto bad; sep = PyUnicode_FromStringAndSize(".", 1); if (unlikely(!sep)) goto bad; partial_name = PyUnicode_Join(sep, slice); } PyErr_Format( #if PY_MAJOR_VERSION < 3 PyExc_ImportError, "No module named '%s'", PyString_AS_STRING(partial_name)); #else #if PY_VERSION_HEX >= 0x030600B1 PyExc_ModuleNotFoundError, #else PyExc_ImportError, #endif "No module named '%U'", partial_name); #endif bad: Py_XDECREF(sep); Py_XDECREF(slice); Py_XDECREF(partial_name); return NULL; } #endif #if PY_MAJOR_VERSION >= 3 static PyObject *__Pyx__ImportDottedModule_Lookup(PyObject *name) { PyObject *imported_module; #if PY_VERSION_HEX < 0x030700A1 || (CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM < 0x07030400) PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) return NULL; imported_module = __Pyx_PyDict_GetItemStr(modules, name); Py_XINCREF(imported_module); #else imported_module = PyImport_GetModule(name); #endif return imported_module; } #endif static PyObject *__Pyx__ImportDottedModule(PyObject *name, PyObject *parts_tuple) { #if PY_MAJOR_VERSION < 3 PyObject *module, *from_list, *star = __pyx_n_s__13; CYTHON_UNUSED_VAR(parts_tuple); from_list = PyList_New(1); if (unlikely(!from_list)) return NULL; Py_INCREF(star); PyList_SET_ITEM(from_list, 0, star); module = __Pyx_Import(name, from_list, 0); Py_DECREF(from_list); return module; #else Py_ssize_t i, nparts; PyObject *imported_module; PyObject *module = __Pyx_Import(name, NULL, 0); if (!parts_tuple || unlikely(!module)) return module; imported_module = __Pyx__ImportDottedModule_Lookup(name); if (likely(imported_module)) { Py_DECREF(module); return imported_module; } PyErr_Clear(); nparts = PyTuple_GET_SIZE(parts_tuple); for (i=1; i < nparts && module; i++) { PyObject *part, *submodule; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS part = PyTuple_GET_ITEM(parts_tuple, i); #else part = PySequence_ITEM(parts_tuple, i); #endif submodule = __Pyx_PyObject_GetAttrStrNoError(module, part); #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS) Py_DECREF(part); #endif Py_DECREF(module); module = submodule; } if (likely(module)) return module; return __Pyx__ImportDottedModule_Error(name, parts_tuple, i); #endif } static PyObject *__Pyx_ImportDottedModule(PyObject *name, PyObject *parts_tuple) { #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030400B1 PyObject *module = __Pyx__ImportDottedModule_Lookup(name); if (likely(module)) { PyObject *spec = __Pyx_PyObject_GetAttrStrNoError(module, __pyx_n_s_spec); if (likely(spec)) { PyObject *unsafe = __Pyx_PyObject_GetAttrStrNoError(spec, __pyx_n_s_initializing); if (likely(!unsafe || !__Pyx_PyObject_IsTrue(unsafe))) { Py_DECREF(spec); spec = NULL; } Py_XDECREF(unsafe); } if (likely(!spec)) { PyErr_Clear(); return module; } Py_DECREF(spec); Py_DECREF(module); } else if (PyErr_Occurred()) { PyErr_Clear(); } #endif return __Pyx__ImportDottedModule(name, parts_tuple); } /* RaiseTooManyValuesToUnpack */ static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) { PyErr_Format(PyExc_ValueError, "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected); } /* RaiseNeedMoreValuesToUnpack */ static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) { PyErr_Format(PyExc_ValueError, "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack", index, (index == 1) ? "" : "s"); } /* IterFinish */ static CYTHON_INLINE int __Pyx_IterFinish(void) { #if CYTHON_FAST_THREAD_STATE PyThreadState *tstate = __Pyx_PyThreadState_Current; PyObject* exc_type = tstate->curexc_type; if (unlikely(exc_type)) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) { PyObject *exc_value, *exc_tb; exc_value = tstate->curexc_value; exc_tb = tstate->curexc_traceback; tstate->curexc_type = 0; tstate->curexc_value = 0; tstate->curexc_traceback = 0; Py_DECREF(exc_type); Py_XDECREF(exc_value); Py_XDECREF(exc_tb); return 0; } else { return -1; } } return 0; #else if (unlikely(PyErr_Occurred())) { if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) { PyErr_Clear(); return 0; } else { return -1; } } return 0; #endif } /* UnpackItemEndCheck */ static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) { if (unlikely(retval)) { Py_DECREF(retval); __Pyx_RaiseTooManyValuesError(expected); return -1; } return __Pyx_IterFinish(); } /* ImportFrom */ static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) { PyObject* value = __Pyx_PyObject_GetAttrStr(module, name); if (unlikely(!value) && PyErr_ExceptionMatches(PyExc_AttributeError)) { const char* module_name_str = 0; PyObject* module_name = 0; PyObject* module_dot = 0; PyObject* full_name = 0; PyErr_Clear(); module_name_str = PyModule_GetName(module); if (unlikely(!module_name_str)) { goto modbad; } module_name = PyUnicode_FromString(module_name_str); if (unlikely(!module_name)) { goto modbad; } module_dot = PyUnicode_Concat(module_name, __pyx_kp_u__17); if (unlikely(!module_dot)) { goto modbad; } full_name = PyUnicode_Concat(module_dot, name); if (unlikely(!full_name)) { goto modbad; } #if PY_VERSION_HEX < 0x030700A1 || (CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM < 0x07030400) { PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) goto modbad; value = PyObject_GetItem(modules, full_name); } #else value = PyImport_GetModule(full_name); #endif modbad: Py_XDECREF(full_name); Py_XDECREF(module_dot); Py_XDECREF(module_name); } if (unlikely(!value)) { PyErr_Format(PyExc_ImportError, #if PY_MAJOR_VERSION < 3 "cannot import name %.230s", PyString_AS_STRING(name)); #else "cannot import name %S", name); #endif } return value; } /* IterNext */ static PyObject *__Pyx_PyIter_Next2Default(PyObject* defval) { PyObject* exc_type; __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign exc_type = __Pyx_PyErr_Occurred(); if (unlikely(exc_type)) { if (!defval || unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) return NULL; __Pyx_PyErr_Clear(); Py_INCREF(defval); return defval; } if (defval) { Py_INCREF(defval); return defval; } __Pyx_PyErr_SetNone(PyExc_StopIteration); return NULL; } static void __Pyx_PyIter_Next_ErrorNoIterator(PyObject *iterator) { __Pyx_TypeName iterator_type_name = __Pyx_PyType_GetName(Py_TYPE(iterator)); PyErr_Format(PyExc_TypeError, __Pyx_FMT_TYPENAME " object is not an iterator", iterator_type_name); __Pyx_DECREF_TypeName(iterator_type_name); } static CYTHON_INLINE PyObject *__Pyx_PyIter_Next2(PyObject* iterator, PyObject* defval) { PyObject* next; iternextfunc iternext = Py_TYPE(iterator)->tp_iternext; if (likely(iternext)) { #if CYTHON_USE_TYPE_SLOTS next = iternext(iterator); if (likely(next)) return next; if (unlikely(iternext == &_PyObject_NextNotImplemented)) return NULL; #else next = PyIter_Next(iterator); if (likely(next)) return next; #endif } else if (CYTHON_USE_TYPE_SLOTS || unlikely(!PyIter_Check(iterator))) { __Pyx_PyIter_Next_ErrorNoIterator(iterator); return NULL; } #if !CYTHON_USE_TYPE_SLOTS else { next = PyIter_Next(iterator); if (likely(next)) return next; } #endif return __Pyx_PyIter_Next2Default(defval); } /* CIntToDigits */ static const char DIGIT_PAIRS_10[2*10*10+1] = { "00010203040506070809" "10111213141516171819" "20212223242526272829" "30313233343536373839" "40414243444546474849" "50515253545556575859" "60616263646566676869" "70717273747576777879" "80818283848586878889" "90919293949596979899" }; static const char DIGIT_PAIRS_8[2*8*8+1] = { "0001020304050607" "1011121314151617" "2021222324252627" "3031323334353637" "4041424344454647" "5051525354555657" "6061626364656667" "7071727374757677" }; static const char DIGITS_HEX[2*16+1] = { "0123456789abcdef" "0123456789ABCDEF" }; /* BuildPyUnicode */ static PyObject* __Pyx_PyUnicode_BuildFromAscii(Py_ssize_t ulength, char* chars, int clength, int prepend_sign, char padding_char) { PyObject *uval; Py_ssize_t uoffset = ulength - clength; #if CYTHON_USE_UNICODE_INTERNALS Py_ssize_t i; #if CYTHON_PEP393_ENABLED void *udata; uval = PyUnicode_New(ulength, 127); if (unlikely(!uval)) return NULL; udata = PyUnicode_DATA(uval); #else Py_UNICODE *udata; uval = PyUnicode_FromUnicode(NULL, ulength); if (unlikely(!uval)) return NULL; udata = PyUnicode_AS_UNICODE(uval); #endif if (uoffset > 0) { i = 0; if (prepend_sign) { __Pyx_PyUnicode_WRITE(PyUnicode_1BYTE_KIND, udata, 0, '-'); i++; } for (; i < uoffset; i++) { __Pyx_PyUnicode_WRITE(PyUnicode_1BYTE_KIND, udata, i, padding_char); } } for (i=0; i < clength; i++) { __Pyx_PyUnicode_WRITE(PyUnicode_1BYTE_KIND, udata, uoffset+i, chars[i]); } #else { PyObject *sign = NULL, *padding = NULL; uval = NULL; if (uoffset > 0) { prepend_sign = !!prepend_sign; if (uoffset > prepend_sign) { padding = PyUnicode_FromOrdinal(padding_char); if (likely(padding) && uoffset > prepend_sign + 1) { PyObject *tmp; PyObject *repeat = PyInt_FromSize_t(uoffset - prepend_sign); if (unlikely(!repeat)) goto done_or_error; tmp = PyNumber_Multiply(padding, repeat); Py_DECREF(repeat); Py_DECREF(padding); padding = tmp; } if (unlikely(!padding)) goto done_or_error; } if (prepend_sign) { sign = PyUnicode_FromOrdinal('-'); if (unlikely(!sign)) goto done_or_error; } } uval = PyUnicode_DecodeASCII(chars, clength, NULL); if (likely(uval) && padding) { PyObject *tmp = PyNumber_Add(padding, uval); Py_DECREF(uval); uval = tmp; } if (likely(uval) && sign) { PyObject *tmp = PyNumber_Add(sign, uval); Py_DECREF(uval); uval = tmp; } done_or_error: Py_XDECREF(padding); Py_XDECREF(sign); } #endif return uval; } /* CIntToPyUnicode */ static CYTHON_INLINE PyObject* __Pyx_PyUnicode_From_Py_ssize_t(Py_ssize_t value, Py_ssize_t width, char padding_char, char format_char) { char digits[sizeof(Py_ssize_t)*3+2]; char *dpos, *end = digits + sizeof(Py_ssize_t)*3+2; const char *hex_digits = DIGITS_HEX; Py_ssize_t length, ulength; int prepend_sign, last_one_off; Py_ssize_t remaining; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const Py_ssize_t neg_one = (Py_ssize_t) -1, const_zero = (Py_ssize_t) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (format_char == 'X') { hex_digits += 16; format_char = 'x'; } remaining = value; last_one_off = 0; dpos = end; do { int digit_pos; switch (format_char) { case 'o': digit_pos = abs((int)(remaining % (8*8))); remaining = (Py_ssize_t) (remaining / (8*8)); dpos -= 2; memcpy(dpos, DIGIT_PAIRS_8 + digit_pos * 2, 2); last_one_off = (digit_pos < 8); break; case 'd': digit_pos = abs((int)(remaining % (10*10))); remaining = (Py_ssize_t) (remaining / (10*10)); dpos -= 2; memcpy(dpos, DIGIT_PAIRS_10 + digit_pos * 2, 2); last_one_off = (digit_pos < 10); break; case 'x': *(--dpos) = hex_digits[abs((int)(remaining % 16))]; remaining = (Py_ssize_t) (remaining / 16); break; default: assert(0); break; } } while (unlikely(remaining != 0)); assert(!last_one_off || *dpos == '0'); dpos += last_one_off; length = end - dpos; ulength = length; prepend_sign = 0; if (!is_unsigned && value <= neg_one) { if (padding_char == ' ' || width <= length + 1) { *(--dpos) = '-'; ++length; } else { prepend_sign = 1; } ++ulength; } if (width > ulength) { ulength = width; } if (ulength == 1) { return PyUnicode_FromOrdinal(*dpos); } return __Pyx_PyUnicode_BuildFromAscii(ulength, dpos, (int) length, prepend_sign, padding_char); } /* PyFloatBinop */ #if !CYTHON_COMPILING_IN_PYPY static PyObject* __Pyx_PyFloat_EqObjC(PyObject *op1, PyObject *op2, double floatval, int inplace, int zerodivision_check) { const double b = floatval; double a; (void)inplace; (void)zerodivision_check; if (op1 == op2) { Py_RETURN_TRUE; } if (likely(PyFloat_CheckExact(op1))) { #if CYTHON_COMPILING_IN_LIMITED_API a = __pyx_PyFloat_AsDouble(op1); #else a = PyFloat_AS_DOUBLE(op1); #endif } else #if PY_MAJOR_VERSION < 3 if (likely(PyInt_CheckExact(op1))) { a = (double) PyInt_AS_LONG(op1); } else #endif if (likely(PyLong_CheckExact(op1))) { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)op1)->ob_digit; const Py_ssize_t size = Py_SIZE(op1); switch (size) { case 0: a = 0.0; break; case -1: a = -(double) digits[0]; break; case 1: a = (double) digits[0]; break; case -2: case 2: if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT && ((8 * sizeof(unsigned long) < 53) || (1 * PyLong_SHIFT < 53))) { a = (double) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); if ((8 * sizeof(unsigned long) < 53) || (2 * PyLong_SHIFT < 53) || (a < (double) ((PY_LONG_LONG)1 << 53))) { if (size == -2) a = -a; break; } } CYTHON_FALLTHROUGH; case -3: case 3: if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT && ((8 * sizeof(unsigned long) < 53) || (2 * PyLong_SHIFT < 53))) { a = (double) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); if ((8 * sizeof(unsigned long) < 53) || (3 * PyLong_SHIFT < 53) || (a < (double) ((PY_LONG_LONG)1 << 53))) { if (size == -3) a = -a; break; } } CYTHON_FALLTHROUGH; case -4: case 4: if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT && ((8 * sizeof(unsigned long) < 53) || (3 * PyLong_SHIFT < 53))) { a = (double) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); if ((8 * sizeof(unsigned long) < 53) || (4 * PyLong_SHIFT < 53) || (a < (double) ((PY_LONG_LONG)1 << 53))) { if (size == -4) a = -a; break; } } CYTHON_FALLTHROUGH; default: #else { #endif return ( PyFloat_Type.tp_richcompare(op2, op1, Py_EQ)); } } else { return ( PyObject_RichCompare(op1, op2, Py_EQ)); } if (a == b) { Py_RETURN_TRUE; } else { Py_RETURN_FALSE; } } #endif /* PyObjectCallNoArg */ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) { PyObject *arg = NULL; return __Pyx_PyObject_FastCall(func, (&arg)+1, 0 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET); } /* PyObjectGetMethod */ static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method) { PyObject *attr; #if CYTHON_UNPACK_METHODS && CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_PYTYPE_LOOKUP __Pyx_TypeName type_name; PyTypeObject *tp = Py_TYPE(obj); PyObject *descr; descrgetfunc f = NULL; PyObject **dictptr, *dict; int meth_found = 0; assert (*method == NULL); if (unlikely(tp->tp_getattro != PyObject_GenericGetAttr)) { attr = __Pyx_PyObject_GetAttrStr(obj, name); goto try_unpack; } if (unlikely(tp->tp_dict == NULL) && unlikely(PyType_Ready(tp) < 0)) { return 0; } descr = _PyType_Lookup(tp, name); if (likely(descr != NULL)) { Py_INCREF(descr); #if defined(Py_TPFLAGS_METHOD_DESCRIPTOR) && Py_TPFLAGS_METHOD_DESCRIPTOR if (__Pyx_PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_METHOD_DESCRIPTOR)) #elif PY_MAJOR_VERSION >= 3 #ifdef __Pyx_CyFunction_USED if (likely(PyFunction_Check(descr) || __Pyx_IS_TYPE(descr, &PyMethodDescr_Type) || __Pyx_CyFunction_Check(descr))) #else if (likely(PyFunction_Check(descr) || __Pyx_IS_TYPE(descr, &PyMethodDescr_Type))) #endif #else #ifdef __Pyx_CyFunction_USED if (likely(PyFunction_Check(descr) || __Pyx_CyFunction_Check(descr))) #else if (likely(PyFunction_Check(descr))) #endif #endif { meth_found = 1; } else { f = Py_TYPE(descr)->tp_descr_get; if (f != NULL && PyDescr_IsData(descr)) { attr = f(descr, obj, (PyObject *)Py_TYPE(obj)); Py_DECREF(descr); goto try_unpack; } } } dictptr = _PyObject_GetDictPtr(obj); if (dictptr != NULL && (dict = *dictptr) != NULL) { Py_INCREF(dict); attr = __Pyx_PyDict_GetItemStr(dict, name); if (attr != NULL) { Py_INCREF(attr); Py_DECREF(dict); Py_XDECREF(descr); goto try_unpack; } Py_DECREF(dict); } if (meth_found) { *method = descr; return 1; } if (f != NULL) { attr = f(descr, obj, (PyObject *)Py_TYPE(obj)); Py_DECREF(descr); goto try_unpack; } if (likely(descr != NULL)) { *method = descr; return 0; } type_name = __Pyx_PyType_GetName(tp); PyErr_Format(PyExc_AttributeError, #if PY_MAJOR_VERSION >= 3 "'" __Pyx_FMT_TYPENAME "' object has no attribute '%U'", type_name, name); #else "'" __Pyx_FMT_TYPENAME "' object has no attribute '%.400s'", type_name, PyString_AS_STRING(name)); #endif __Pyx_DECREF_TypeName(type_name); return 0; #else attr = __Pyx_PyObject_GetAttrStr(obj, name); goto try_unpack; #endif try_unpack: #if CYTHON_UNPACK_METHODS if (likely(attr) && PyMethod_Check(attr) && likely(PyMethod_GET_SELF(attr) == obj)) { PyObject *function = PyMethod_GET_FUNCTION(attr); Py_INCREF(function); Py_DECREF(attr); *method = function; return 1; } #endif *method = attr; return 0; } /* PyObjectCallMethod0 */ static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name) { PyObject *method = NULL, *result = NULL; int is_method = __Pyx_PyObject_GetMethod(obj, method_name, &method); if (likely(is_method)) { result = __Pyx_PyObject_CallOneArg(method, obj); Py_DECREF(method); return result; } if (unlikely(!method)) goto bad; result = __Pyx_PyObject_CallNoArg(method); Py_DECREF(method); bad: return result; } /* RaiseNoneIterError */ static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); } /* UnpackTupleError */ static void __Pyx_UnpackTupleError(PyObject *t, Py_ssize_t index) { if (t == Py_None) { __Pyx_RaiseNoneNotIterableError(); } else if (PyTuple_GET_SIZE(t) < index) { __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(t)); } else { __Pyx_RaiseTooManyValuesError(index); } } /* UnpackTuple2 */ static CYTHON_INLINE int __Pyx_unpack_tuple2_exact( PyObject* tuple, PyObject** pvalue1, PyObject** pvalue2, int decref_tuple) { PyObject *value1 = NULL, *value2 = NULL; #if CYTHON_COMPILING_IN_PYPY value1 = PySequence_ITEM(tuple, 0); if (unlikely(!value1)) goto bad; value2 = PySequence_ITEM(tuple, 1); if (unlikely(!value2)) goto bad; #else value1 = PyTuple_GET_ITEM(tuple, 0); Py_INCREF(value1); value2 = PyTuple_GET_ITEM(tuple, 1); Py_INCREF(value2); #endif if (decref_tuple) { Py_DECREF(tuple); } *pvalue1 = value1; *pvalue2 = value2; return 0; #if CYTHON_COMPILING_IN_PYPY bad: Py_XDECREF(value1); Py_XDECREF(value2); if (decref_tuple) { Py_XDECREF(tuple); } return -1; #endif } static int __Pyx_unpack_tuple2_generic(PyObject* tuple, PyObject** pvalue1, PyObject** pvalue2, int has_known_size, int decref_tuple) { Py_ssize_t index; PyObject *value1 = NULL, *value2 = NULL, *iter = NULL; iternextfunc iternext; iter = PyObject_GetIter(tuple); if (unlikely(!iter)) goto bad; if (decref_tuple) { Py_DECREF(tuple); tuple = NULL; } iternext = __Pyx_PyObject_GetIterNextFunc(iter); value1 = iternext(iter); if (unlikely(!value1)) { index = 0; goto unpacking_failed; } value2 = iternext(iter); if (unlikely(!value2)) { index = 1; goto unpacking_failed; } if (!has_known_size && unlikely(__Pyx_IternextUnpackEndCheck(iternext(iter), 2))) goto bad; Py_DECREF(iter); *pvalue1 = value1; *pvalue2 = value2; return 0; unpacking_failed: if (!has_known_size && __Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); bad: Py_XDECREF(iter); Py_XDECREF(value1); Py_XDECREF(value2); if (decref_tuple) { Py_XDECREF(tuple); } return -1; } /* dict_iter */ static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* iterable, int is_dict, PyObject* method_name, Py_ssize_t* p_orig_length, int* p_source_is_dict) { is_dict = is_dict || likely(PyDict_CheckExact(iterable)); *p_source_is_dict = is_dict; if (is_dict) { #if !CYTHON_COMPILING_IN_PYPY *p_orig_length = PyDict_Size(iterable); Py_INCREF(iterable); return iterable; #elif PY_MAJOR_VERSION >= 3 static PyObject *py_items = NULL, *py_keys = NULL, *py_values = NULL; PyObject **pp = NULL; if (method_name) { const char *name = PyUnicode_AsUTF8(method_name); if (strcmp(name, "iteritems") == 0) pp = &py_items; else if (strcmp(name, "iterkeys") == 0) pp = &py_keys; else if (strcmp(name, "itervalues") == 0) pp = &py_values; if (pp) { if (!*pp) { *pp = PyUnicode_FromString(name + 4); if (!*pp) return NULL; } method_name = *pp; } } #endif } *p_orig_length = 0; if (method_name) { PyObject* iter; iterable = __Pyx_PyObject_CallMethod0(iterable, method_name); if (!iterable) return NULL; #if !CYTHON_COMPILING_IN_PYPY if (PyTuple_CheckExact(iterable) || PyList_CheckExact(iterable)) return iterable; #endif iter = PyObject_GetIter(iterable); Py_DECREF(iterable); return iter; } return PyObject_GetIter(iterable); } static CYTHON_INLINE int __Pyx_dict_iter_next( PyObject* iter_obj, CYTHON_NCP_UNUSED Py_ssize_t orig_length, CYTHON_NCP_UNUSED Py_ssize_t* ppos, PyObject** pkey, PyObject** pvalue, PyObject** pitem, int source_is_dict) { PyObject* next_item; #if !CYTHON_COMPILING_IN_PYPY if (source_is_dict) { PyObject *key, *value; if (unlikely(orig_length != PyDict_Size(iter_obj))) { PyErr_SetString(PyExc_RuntimeError, "dictionary changed size during iteration"); return -1; } if (unlikely(!PyDict_Next(iter_obj, ppos, &key, &value))) { return 0; } if (pitem) { PyObject* tuple = PyTuple_New(2); if (unlikely(!tuple)) { return -1; } Py_INCREF(key); Py_INCREF(value); PyTuple_SET_ITEM(tuple, 0, key); PyTuple_SET_ITEM(tuple, 1, value); *pitem = tuple; } else { if (pkey) { Py_INCREF(key); *pkey = key; } if (pvalue) { Py_INCREF(value); *pvalue = value; } } return 1; } else if (PyTuple_CheckExact(iter_obj)) { Py_ssize_t pos = *ppos; if (unlikely(pos >= PyTuple_GET_SIZE(iter_obj))) return 0; *ppos = pos + 1; next_item = PyTuple_GET_ITEM(iter_obj, pos); Py_INCREF(next_item); } else if (PyList_CheckExact(iter_obj)) { Py_ssize_t pos = *ppos; if (unlikely(pos >= PyList_GET_SIZE(iter_obj))) return 0; *ppos = pos + 1; next_item = PyList_GET_ITEM(iter_obj, pos); Py_INCREF(next_item); } else #endif { next_item = PyIter_Next(iter_obj); if (unlikely(!next_item)) { return __Pyx_IterFinish(); } } if (pitem) { *pitem = next_item; } else if (pkey && pvalue) { if (__Pyx_unpack_tuple2(next_item, pkey, pvalue, source_is_dict, source_is_dict, 1)) return -1; } else if (pkey) { *pkey = next_item; } else { *pvalue = next_item; } return 1; } /* PyIntBinop */ #if !CYTHON_COMPILING_IN_PYPY static PyObject* __Pyx_PyInt_SubtractObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check) { CYTHON_MAYBE_UNUSED_VAR(intval); CYTHON_MAYBE_UNUSED_VAR(inplace); CYTHON_UNUSED_VAR(zerodivision_check); #if PY_MAJOR_VERSION < 3 if (likely(PyInt_CheckExact(op1))) { const long b = intval; long x; long a = PyInt_AS_LONG(op1); x = (long)((unsigned long)a - b); if (likely((x^a) >= 0 || (x^~b) >= 0)) return PyInt_FromLong(x); return PyLong_Type.tp_as_number->nb_subtract(op1, op2); } #endif #if CYTHON_USE_PYLONG_INTERNALS if (likely(PyLong_CheckExact(op1))) { const long b = intval; long a, x; #ifdef HAVE_LONG_LONG const PY_LONG_LONG llb = intval; PY_LONG_LONG lla, llx; #endif const digit* digits = ((PyLongObject*)op1)->ob_digit; const Py_ssize_t size = Py_SIZE(op1); if (unlikely(size == 0)) { return PyLong_FromLong(-intval); } if (likely(__Pyx_sst_abs(size) <= 1)) { a = likely(size) ? digits[0] : 0; if (size == -1) a = -a; } else { switch (size) { case -2: if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) { lla = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case 2: if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) { lla = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case -3: if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) { lla = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case 3: if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) { lla = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case -4: if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) { lla = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case 4: if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) { lla = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; default: return PyLong_Type.tp_as_number->nb_subtract(op1, op2); } } x = a - b; return PyLong_FromLong(x); #ifdef HAVE_LONG_LONG long_long: llx = lla - llb; return PyLong_FromLongLong(llx); #endif } #endif if (PyFloat_CheckExact(op1)) { const long b = intval; #if CYTHON_COMPILING_IN_LIMITED_API double a = __pyx_PyFloat_AsDouble(op1); #else double a = PyFloat_AS_DOUBLE(op1); #endif double result; PyFPE_START_PROTECT("subtract", return NULL) result = ((double)a) - (double)b; PyFPE_END_PROTECT(result) return PyFloat_FromDouble(result); } return (inplace ? PyNumber_InPlaceSubtract : PyNumber_Subtract)(op1, op2); } #endif /* PyIntBinop */ #if !CYTHON_COMPILING_IN_PYPY static PyObject* __Pyx_PyInt_SubtractCObj(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check) { CYTHON_MAYBE_UNUSED_VAR(intval); CYTHON_MAYBE_UNUSED_VAR(inplace); CYTHON_UNUSED_VAR(zerodivision_check); #if PY_MAJOR_VERSION < 3 if (likely(PyInt_CheckExact(op2))) { const long a = intval; long x; long b = PyInt_AS_LONG(op2); x = (long)((unsigned long)a - b); if (likely((x^a) >= 0 || (x^~b) >= 0)) return PyInt_FromLong(x); return PyLong_Type.tp_as_number->nb_subtract(op1, op2); } #endif #if CYTHON_USE_PYLONG_INTERNALS if (likely(PyLong_CheckExact(op2))) { const long a = intval; long b, x; #ifdef HAVE_LONG_LONG const PY_LONG_LONG lla = intval; PY_LONG_LONG llb, llx; #endif const digit* digits = ((PyLongObject*)op2)->ob_digit; const Py_ssize_t size = Py_SIZE(op2); if (unlikely(size == 0)) { return __Pyx_NewRef(op1); } if (likely(__Pyx_sst_abs(size) <= 1)) { b = likely(size) ? digits[0] : 0; if (size == -1) b = -b; } else { switch (size) { case -2: if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { b = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) { llb = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case 2: if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { b = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) { llb = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case -3: if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { b = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) { llb = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case 3: if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { b = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) { llb = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case -4: if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { b = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) { llb = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case 4: if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { b = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) { llb = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; default: return PyLong_Type.tp_as_number->nb_subtract(op1, op2); } } x = a - b; return PyLong_FromLong(x); #ifdef HAVE_LONG_LONG long_long: llx = lla - llb; return PyLong_FromLongLong(llx); #endif } #endif if (PyFloat_CheckExact(op2)) { const long a = intval; #if CYTHON_COMPILING_IN_LIMITED_API double b = __pyx_PyFloat_AsDouble(op2); #else double b = PyFloat_AS_DOUBLE(op2); #endif double result; PyFPE_START_PROTECT("subtract", return NULL) result = ((double)a) - (double)b; PyFPE_END_PROTECT(result) return PyFloat_FromDouble(result); } return (inplace ? PyNumber_InPlaceSubtract : PyNumber_Subtract)(op1, op2); } #endif /* FixUpExtensionType */ #if CYTHON_USE_TYPE_SPECS static int __Pyx_fix_up_extension_type_from_spec(PyType_Spec *spec, PyTypeObject *type) { #if PY_VERSION_HEX > 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API (void) spec; (void) type; #else const PyType_Slot *slot = spec->slots; while (slot && slot->slot && slot->slot != Py_tp_members) slot++; if (slot && slot->slot == Py_tp_members) { int changed = 0; #if !(PY_VERSION_HEX <= 0x030900b1 && CYTHON_COMPILING_IN_CPYTHON) const #endif PyMemberDef *memb = (PyMemberDef*) slot->pfunc; while (memb && memb->name) { if (memb->name[0] == '_' && memb->name[1] == '_') { #if PY_VERSION_HEX < 0x030900b1 if (strcmp(memb->name, "__weaklistoffset__") == 0) { assert(memb->type == T_PYSSIZET); assert(memb->flags == READONLY); type->tp_weaklistoffset = memb->offset; changed = 1; } else if (strcmp(memb->name, "__dictoffset__") == 0) { assert(memb->type == T_PYSSIZET); assert(memb->flags == READONLY); type->tp_dictoffset = memb->offset; changed = 1; } #if CYTHON_METH_FASTCALL else if (strcmp(memb->name, "__vectorcalloffset__") == 0) { assert(memb->type == T_PYSSIZET); assert(memb->flags == READONLY); #if PY_VERSION_HEX >= 0x030800b4 type->tp_vectorcall_offset = memb->offset; #else type->tp_print = (printfunc) memb->offset; #endif changed = 1; } #endif #else if ((0)); #endif #if PY_VERSION_HEX <= 0x030900b1 && CYTHON_COMPILING_IN_CPYTHON else if (strcmp(memb->name, "__module__") == 0) { PyObject *descr; assert(memb->type == T_OBJECT); assert(memb->flags == 0 || memb->flags == READONLY); descr = PyDescr_NewMember(type, memb); if (unlikely(!descr)) return -1; if (unlikely(PyDict_SetItem(type->tp_dict, PyDescr_NAME(descr), descr) < 0)) { Py_DECREF(descr); return -1; } Py_DECREF(descr); changed = 1; } #endif } memb++; } if (changed) PyType_Modified(type); } #endif return 0; } #endif /* FetchCommonType */ static PyObject *__Pyx_FetchSharedCythonABIModule(void) { PyObject *abi_module = PyImport_AddModule((char*) __PYX_ABI_MODULE_NAME); if (!abi_module) return NULL; Py_INCREF(abi_module); return abi_module; } static int __Pyx_VerifyCachedType(PyObject *cached_type, const char *name, Py_ssize_t basicsize, Py_ssize_t expected_basicsize) { if (!PyType_Check(cached_type)) { PyErr_Format(PyExc_TypeError, "Shared Cython type %.200s is not a type object", name); return -1; } if (basicsize != expected_basicsize) { PyErr_Format(PyExc_TypeError, "Shared Cython type %.200s has the wrong size, try recompiling", name); return -1; } return 0; } #if !CYTHON_USE_TYPE_SPECS static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type) { PyObject* abi_module; const char* object_name; PyTypeObject *cached_type = NULL; abi_module = __Pyx_FetchSharedCythonABIModule(); if (!abi_module) return NULL; object_name = strrchr(type->tp_name, '.'); object_name = object_name ? object_name+1 : type->tp_name; cached_type = (PyTypeObject*) PyObject_GetAttrString(abi_module, object_name); if (cached_type) { if (__Pyx_VerifyCachedType( (PyObject *)cached_type, object_name, cached_type->tp_basicsize, type->tp_basicsize) < 0) { goto bad; } goto done; } if (!PyErr_ExceptionMatches(PyExc_AttributeError)) goto bad; PyErr_Clear(); if (PyType_Ready(type) < 0) goto bad; if (PyObject_SetAttrString(abi_module, object_name, (PyObject *)type) < 0) goto bad; Py_INCREF(type); cached_type = type; done: Py_DECREF(abi_module); return cached_type; bad: Py_XDECREF(cached_type); cached_type = NULL; goto done; } #else static PyTypeObject *__Pyx_FetchCommonTypeFromSpec(PyObject *module, PyType_Spec *spec, PyObject *bases) { PyObject *abi_module, *cached_type = NULL; const char* object_name = strrchr(spec->name, '.'); object_name = object_name ? object_name+1 : spec->name; abi_module = __Pyx_FetchSharedCythonABIModule(); if (!abi_module) return NULL; cached_type = PyObject_GetAttrString(abi_module, object_name); if (cached_type) { Py_ssize_t basicsize; #if CYTHON_COMPILING_IN_LIMITED_API PyObject *py_basicsize; py_basicsize = PyObject_GetAttrString(cached_type, "__basicsize__"); if (unlikely(!py_basicsize)) goto bad; basicsize = PyLong_AsSsize_t(py_basicsize); Py_DECREF(py_basicsize); py_basicsize = 0; if (unlikely(basicsize == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad; #else basicsize = likely(PyType_Check(cached_type)) ? ((PyTypeObject*) cached_type)->tp_basicsize : -1; #endif if (__Pyx_VerifyCachedType( cached_type, object_name, basicsize, spec->basicsize) < 0) { goto bad; } goto done; } if (!PyErr_ExceptionMatches(PyExc_AttributeError)) goto bad; PyErr_Clear(); (void) module; cached_type = __Pyx_PyType_FromModuleAndSpec(abi_module, spec, bases); if (unlikely(!cached_type)) goto bad; if (unlikely(__Pyx_fix_up_extension_type_from_spec(spec, (PyTypeObject *) cached_type) < 0)) goto bad; if (PyObject_SetAttrString(abi_module, object_name, cached_type) < 0) goto bad; done: Py_DECREF(abi_module); assert(cached_type == NULL || PyType_Check(cached_type)); return (PyTypeObject *) cached_type; bad: Py_XDECREF(cached_type); cached_type = NULL; goto done; } #endif /* PyVectorcallFastCallDict */ #if CYTHON_METH_FASTCALL static PyObject *__Pyx_PyVectorcall_FastCallDict_kw(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw) { PyObject *res = NULL; PyObject *kwnames; PyObject **newargs; PyObject **kwvalues; Py_ssize_t i, pos; size_t j; PyObject *key, *value; unsigned long keys_are_strings; Py_ssize_t nkw = PyDict_GET_SIZE(kw); newargs = (PyObject **)PyMem_Malloc((nargs + (size_t)nkw) * sizeof(args[0])); if (unlikely(newargs == NULL)) { PyErr_NoMemory(); return NULL; } for (j = 0; j < nargs; j++) newargs[j] = args[j]; kwnames = PyTuple_New(nkw); if (unlikely(kwnames == NULL)) { PyMem_Free(newargs); return NULL; } kwvalues = newargs + nargs; pos = i = 0; keys_are_strings = Py_TPFLAGS_UNICODE_SUBCLASS; while (PyDict_Next(kw, &pos, &key, &value)) { keys_are_strings &= Py_TYPE(key)->tp_flags; Py_INCREF(key); Py_INCREF(value); PyTuple_SET_ITEM(kwnames, i, key); kwvalues[i] = value; i++; } if (unlikely(!keys_are_strings)) { PyErr_SetString(PyExc_TypeError, "keywords must be strings"); goto cleanup; } res = vc(func, newargs, nargs, kwnames); cleanup: Py_DECREF(kwnames); for (i = 0; i < nkw; i++) Py_DECREF(kwvalues[i]); PyMem_Free(newargs); return res; } static CYTHON_INLINE PyObject *__Pyx_PyVectorcall_FastCallDict(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw) { if (likely(kw == NULL) || PyDict_GET_SIZE(kw) == 0) { return vc(func, args, nargs, NULL); } return __Pyx_PyVectorcall_FastCallDict_kw(func, vc, args, nargs, kw); } #endif /* CythonFunctionShared */ static CYTHON_INLINE void __Pyx__CyFunction_SetClassObj(__pyx_CyFunctionObject* f, PyObject* classobj) { #if PY_VERSION_HEX < 0x030900B1 __Pyx_Py_XDECREF_SET( __Pyx_CyFunction_GetClassObj(f), ((classobj) ? __Pyx_NewRef(classobj) : NULL)); #else __Pyx_Py_XDECREF_SET( ((PyCMethodObject *) (f))->mm_class, (PyTypeObject*)((classobj) ? __Pyx_NewRef(classobj) : NULL)); #endif } static PyObject * __Pyx_CyFunction_get_doc(__pyx_CyFunctionObject *op, void *closure) { CYTHON_UNUSED_VAR(closure); if (unlikely(op->func_doc == NULL)) { if (((PyCFunctionObject*)op)->m_ml->ml_doc) { #if PY_MAJOR_VERSION >= 3 op->func_doc = PyUnicode_FromString(((PyCFunctionObject*)op)->m_ml->ml_doc); #else op->func_doc = PyString_FromString(((PyCFunctionObject*)op)->m_ml->ml_doc); #endif if (unlikely(op->func_doc == NULL)) return NULL; } else { Py_INCREF(Py_None); return Py_None; } } Py_INCREF(op->func_doc); return op->func_doc; } static int __Pyx_CyFunction_set_doc(__pyx_CyFunctionObject *op, PyObject *value, void *context) { CYTHON_UNUSED_VAR(context); if (value == NULL) { value = Py_None; } Py_INCREF(value); __Pyx_Py_XDECREF_SET(op->func_doc, value); return 0; } static PyObject * __Pyx_CyFunction_get_name(__pyx_CyFunctionObject *op, void *context) { CYTHON_UNUSED_VAR(context); if (unlikely(op->func_name == NULL)) { #if PY_MAJOR_VERSION >= 3 op->func_name = PyUnicode_InternFromString(((PyCFunctionObject*)op)->m_ml->ml_name); #else op->func_name = PyString_InternFromString(((PyCFunctionObject*)op)->m_ml->ml_name); #endif if (unlikely(op->func_name == NULL)) return NULL; } Py_INCREF(op->func_name); return op->func_name; } static int __Pyx_CyFunction_set_name(__pyx_CyFunctionObject *op, PyObject *value, void *context) { CYTHON_UNUSED_VAR(context); #if PY_MAJOR_VERSION >= 3 if (unlikely(value == NULL || !PyUnicode_Check(value))) #else if (unlikely(value == NULL || !PyString_Check(value))) #endif { PyErr_SetString(PyExc_TypeError, "__name__ must be set to a string object"); return -1; } Py_INCREF(value); __Pyx_Py_XDECREF_SET(op->func_name, value); return 0; } static PyObject * __Pyx_CyFunction_get_qualname(__pyx_CyFunctionObject *op, void *context) { CYTHON_UNUSED_VAR(context); Py_INCREF(op->func_qualname); return op->func_qualname; } static int __Pyx_CyFunction_set_qualname(__pyx_CyFunctionObject *op, PyObject *value, void *context) { CYTHON_UNUSED_VAR(context); #if PY_MAJOR_VERSION >= 3 if (unlikely(value == NULL || !PyUnicode_Check(value))) #else if (unlikely(value == NULL || !PyString_Check(value))) #endif { PyErr_SetString(PyExc_TypeError, "__qualname__ must be set to a string object"); return -1; } Py_INCREF(value); __Pyx_Py_XDECREF_SET(op->func_qualname, value); return 0; } static PyObject * __Pyx_CyFunction_get_dict(__pyx_CyFunctionObject *op, void *context) { CYTHON_UNUSED_VAR(context); if (unlikely(op->func_dict == NULL)) { op->func_dict = PyDict_New(); if (unlikely(op->func_dict == NULL)) return NULL; } Py_INCREF(op->func_dict); return op->func_dict; } static int __Pyx_CyFunction_set_dict(__pyx_CyFunctionObject *op, PyObject *value, void *context) { CYTHON_UNUSED_VAR(context); if (unlikely(value == NULL)) { PyErr_SetString(PyExc_TypeError, "function's dictionary may not be deleted"); return -1; } if (unlikely(!PyDict_Check(value))) { PyErr_SetString(PyExc_TypeError, "setting function's dictionary to a non-dict"); return -1; } Py_INCREF(value); __Pyx_Py_XDECREF_SET(op->func_dict, value); return 0; } static PyObject * __Pyx_CyFunction_get_globals(__pyx_CyFunctionObject *op, void *context) { CYTHON_UNUSED_VAR(context); Py_INCREF(op->func_globals); return op->func_globals; } static PyObject * __Pyx_CyFunction_get_closure(__pyx_CyFunctionObject *op, void *context) { CYTHON_UNUSED_VAR(op); CYTHON_UNUSED_VAR(context); Py_INCREF(Py_None); return Py_None; } static PyObject * __Pyx_CyFunction_get_code(__pyx_CyFunctionObject *op, void *context) { PyObject* result = (op->func_code) ? op->func_code : Py_None; CYTHON_UNUSED_VAR(context); Py_INCREF(result); return result; } static int __Pyx_CyFunction_init_defaults(__pyx_CyFunctionObject *op) { int result = 0; PyObject *res = op->defaults_getter((PyObject *) op); if (unlikely(!res)) return -1; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS op->defaults_tuple = PyTuple_GET_ITEM(res, 0); Py_INCREF(op->defaults_tuple); op->defaults_kwdict = PyTuple_GET_ITEM(res, 1); Py_INCREF(op->defaults_kwdict); #else op->defaults_tuple = PySequence_ITEM(res, 0); if (unlikely(!op->defaults_tuple)) result = -1; else { op->defaults_kwdict = PySequence_ITEM(res, 1); if (unlikely(!op->defaults_kwdict)) result = -1; } #endif Py_DECREF(res); return result; } static int __Pyx_CyFunction_set_defaults(__pyx_CyFunctionObject *op, PyObject* value, void *context) { CYTHON_UNUSED_VAR(context); if (!value) { value = Py_None; } else if (unlikely(value != Py_None && !PyTuple_Check(value))) { PyErr_SetString(PyExc_TypeError, "__defaults__ must be set to a tuple object"); return -1; } PyErr_WarnEx(PyExc_RuntimeWarning, "changes to cyfunction.__defaults__ will not " "currently affect the values used in function calls", 1); Py_INCREF(value); __Pyx_Py_XDECREF_SET(op->defaults_tuple, value); return 0; } static PyObject * __Pyx_CyFunction_get_defaults(__pyx_CyFunctionObject *op, void *context) { PyObject* result = op->defaults_tuple; CYTHON_UNUSED_VAR(context); if (unlikely(!result)) { if (op->defaults_getter) { if (unlikely(__Pyx_CyFunction_init_defaults(op) < 0)) return NULL; result = op->defaults_tuple; } else { result = Py_None; } } Py_INCREF(result); return result; } static int __Pyx_CyFunction_set_kwdefaults(__pyx_CyFunctionObject *op, PyObject* value, void *context) { CYTHON_UNUSED_VAR(context); if (!value) { value = Py_None; } else if (unlikely(value != Py_None && !PyDict_Check(value))) { PyErr_SetString(PyExc_TypeError, "__kwdefaults__ must be set to a dict object"); return -1; } PyErr_WarnEx(PyExc_RuntimeWarning, "changes to cyfunction.__kwdefaults__ will not " "currently affect the values used in function calls", 1); Py_INCREF(value); __Pyx_Py_XDECREF_SET(op->defaults_kwdict, value); return 0; } static PyObject * __Pyx_CyFunction_get_kwdefaults(__pyx_CyFunctionObject *op, void *context) { PyObject* result = op->defaults_kwdict; CYTHON_UNUSED_VAR(context); if (unlikely(!result)) { if (op->defaults_getter) { if (unlikely(__Pyx_CyFunction_init_defaults(op) < 0)) return NULL; result = op->defaults_kwdict; } else { result = Py_None; } } Py_INCREF(result); return result; } static int __Pyx_CyFunction_set_annotations(__pyx_CyFunctionObject *op, PyObject* value, void *context) { CYTHON_UNUSED_VAR(context); if (!value || value == Py_None) { value = NULL; } else if (unlikely(!PyDict_Check(value))) { PyErr_SetString(PyExc_TypeError, "__annotations__ must be set to a dict object"); return -1; } Py_XINCREF(value); __Pyx_Py_XDECREF_SET(op->func_annotations, value); return 0; } static PyObject * __Pyx_CyFunction_get_annotations(__pyx_CyFunctionObject *op, void *context) { PyObject* result = op->func_annotations; CYTHON_UNUSED_VAR(context); if (unlikely(!result)) { result = PyDict_New(); if (unlikely(!result)) return NULL; op->func_annotations = result; } Py_INCREF(result); return result; } static PyObject * __Pyx_CyFunction_get_is_coroutine(__pyx_CyFunctionObject *op, void *context) { int is_coroutine; CYTHON_UNUSED_VAR(context); if (op->func_is_coroutine) { return __Pyx_NewRef(op->func_is_coroutine); } is_coroutine = op->flags & __Pyx_CYFUNCTION_COROUTINE; #if PY_VERSION_HEX >= 0x03050000 if (is_coroutine) { PyObject *module, *fromlist, *marker = __pyx_n_s_is_coroutine; fromlist = PyList_New(1); if (unlikely(!fromlist)) return NULL; Py_INCREF(marker); PyList_SET_ITEM(fromlist, 0, marker); module = PyImport_ImportModuleLevelObject(__pyx_n_s_asyncio_coroutines, NULL, NULL, fromlist, 0); Py_DECREF(fromlist); if (unlikely(!module)) goto ignore; op->func_is_coroutine = __Pyx_PyObject_GetAttrStr(module, marker); Py_DECREF(module); if (likely(op->func_is_coroutine)) { return __Pyx_NewRef(op->func_is_coroutine); } ignore: PyErr_Clear(); } #endif op->func_is_coroutine = __Pyx_PyBool_FromLong(is_coroutine); return __Pyx_NewRef(op->func_is_coroutine); } static PyGetSetDef __pyx_CyFunction_getsets[] = { {(char *) "func_doc", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0}, {(char *) "__doc__", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0}, {(char *) "func_name", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0}, {(char *) "__name__", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0}, {(char *) "__qualname__", (getter)__Pyx_CyFunction_get_qualname, (setter)__Pyx_CyFunction_set_qualname, 0, 0}, {(char *) "func_dict", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0}, {(char *) "__dict__", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0}, {(char *) "func_globals", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0}, {(char *) "__globals__", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0}, {(char *) "func_closure", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0}, {(char *) "__closure__", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0}, {(char *) "func_code", (getter)__Pyx_CyFunction_get_code, 0, 0, 0}, {(char *) "__code__", (getter)__Pyx_CyFunction_get_code, 0, 0, 0}, {(char *) "func_defaults", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0}, {(char *) "__defaults__", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0}, {(char *) "__kwdefaults__", (getter)__Pyx_CyFunction_get_kwdefaults, (setter)__Pyx_CyFunction_set_kwdefaults, 0, 0}, {(char *) "__annotations__", (getter)__Pyx_CyFunction_get_annotations, (setter)__Pyx_CyFunction_set_annotations, 0, 0}, {(char *) "_is_coroutine", (getter)__Pyx_CyFunction_get_is_coroutine, 0, 0, 0}, {0, 0, 0, 0, 0} }; static PyMemberDef __pyx_CyFunction_members[] = { {(char *) "__module__", T_OBJECT, offsetof(PyCFunctionObject, m_module), 0, 0}, #if CYTHON_USE_TYPE_SPECS {(char *) "__dictoffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_dict), READONLY, 0}, #if CYTHON_METH_FASTCALL #if CYTHON_BACKPORT_VECTORCALL {(char *) "__vectorcalloffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_vectorcall), READONLY, 0}, #else {(char *) "__vectorcalloffset__", T_PYSSIZET, offsetof(PyCFunctionObject, vectorcall), READONLY, 0}, #endif #endif #if PY_VERSION_HEX < 0x030500A0 {(char *) "__weaklistoffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_weakreflist), READONLY, 0}, #else {(char *) "__weaklistoffset__", T_PYSSIZET, offsetof(PyCFunctionObject, m_weakreflist), READONLY, 0}, #endif #endif {0, 0, 0, 0, 0} }; static PyObject * __Pyx_CyFunction_reduce(__pyx_CyFunctionObject *m, PyObject *args) { CYTHON_UNUSED_VAR(args); #if PY_MAJOR_VERSION >= 3 Py_INCREF(m->func_qualname); return m->func_qualname; #else return PyString_FromString(((PyCFunctionObject*)m)->m_ml->ml_name); #endif } static PyMethodDef __pyx_CyFunction_methods[] = { {"__reduce__", (PyCFunction)__Pyx_CyFunction_reduce, METH_VARARGS, 0}, {0, 0, 0, 0} }; #if PY_VERSION_HEX < 0x030500A0 #define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func_weakreflist) #else #define __Pyx_CyFunction_weakreflist(cyfunc) (((PyCFunctionObject*)cyfunc)->m_weakreflist) #endif static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject *op, PyMethodDef *ml, int flags, PyObject* qualname, PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) { PyCFunctionObject *cf = (PyCFunctionObject*) op; if (unlikely(op == NULL)) return NULL; op->flags = flags; __Pyx_CyFunction_weakreflist(op) = NULL; cf->m_ml = ml; cf->m_self = (PyObject *) op; Py_XINCREF(closure); op->func_closure = closure; Py_XINCREF(module); cf->m_module = module; op->func_dict = NULL; op->func_name = NULL; Py_INCREF(qualname); op->func_qualname = qualname; op->func_doc = NULL; #if PY_VERSION_HEX < 0x030900B1 op->func_classobj = NULL; #else ((PyCMethodObject*)op)->mm_class = NULL; #endif op->func_globals = globals; Py_INCREF(op->func_globals); Py_XINCREF(code); op->func_code = code; op->defaults_pyobjects = 0; op->defaults_size = 0; op->defaults = NULL; op->defaults_tuple = NULL; op->defaults_kwdict = NULL; op->defaults_getter = NULL; op->func_annotations = NULL; op->func_is_coroutine = NULL; #if CYTHON_METH_FASTCALL switch (ml->ml_flags & (METH_VARARGS | METH_FASTCALL | METH_NOARGS | METH_O | METH_KEYWORDS | METH_METHOD)) { case METH_NOARGS: __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_NOARGS; break; case METH_O: __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_O; break; case METH_METHOD | METH_FASTCALL | METH_KEYWORDS: __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD; break; case METH_FASTCALL | METH_KEYWORDS: __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS; break; case METH_VARARGS | METH_KEYWORDS: __Pyx_CyFunction_func_vectorcall(op) = NULL; break; default: PyErr_SetString(PyExc_SystemError, "Bad call flags for CyFunction"); Py_DECREF(op); return NULL; } #endif return (PyObject *) op; } static int __Pyx_CyFunction_clear(__pyx_CyFunctionObject *m) { Py_CLEAR(m->func_closure); Py_CLEAR(((PyCFunctionObject*)m)->m_module); Py_CLEAR(m->func_dict); Py_CLEAR(m->func_name); Py_CLEAR(m->func_qualname); Py_CLEAR(m->func_doc); Py_CLEAR(m->func_globals); Py_CLEAR(m->func_code); #if PY_VERSION_HEX < 0x030900B1 Py_CLEAR(__Pyx_CyFunction_GetClassObj(m)); #else { PyObject *cls = (PyObject*) ((PyCMethodObject *) (m))->mm_class; ((PyCMethodObject *) (m))->mm_class = NULL; Py_XDECREF(cls); } #endif Py_CLEAR(m->defaults_tuple); Py_CLEAR(m->defaults_kwdict); Py_CLEAR(m->func_annotations); Py_CLEAR(m->func_is_coroutine); if (m->defaults) { PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m); int i; for (i = 0; i < m->defaults_pyobjects; i++) Py_XDECREF(pydefaults[i]); PyObject_Free(m->defaults); m->defaults = NULL; } return 0; } static void __Pyx__CyFunction_dealloc(__pyx_CyFunctionObject *m) { if (__Pyx_CyFunction_weakreflist(m) != NULL) PyObject_ClearWeakRefs((PyObject *) m); __Pyx_CyFunction_clear(m); __Pyx_PyHeapTypeObject_GC_Del(m); } static void __Pyx_CyFunction_dealloc(__pyx_CyFunctionObject *m) { PyObject_GC_UnTrack(m); __Pyx__CyFunction_dealloc(m); } static int __Pyx_CyFunction_traverse(__pyx_CyFunctionObject *m, visitproc visit, void *arg) { Py_VISIT(m->func_closure); Py_VISIT(((PyCFunctionObject*)m)->m_module); Py_VISIT(m->func_dict); Py_VISIT(m->func_name); Py_VISIT(m->func_qualname); Py_VISIT(m->func_doc); Py_VISIT(m->func_globals); Py_VISIT(m->func_code); Py_VISIT(__Pyx_CyFunction_GetClassObj(m)); Py_VISIT(m->defaults_tuple); Py_VISIT(m->defaults_kwdict); Py_VISIT(m->func_is_coroutine); if (m->defaults) { PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m); int i; for (i = 0; i < m->defaults_pyobjects; i++) Py_VISIT(pydefaults[i]); } return 0; } static PyObject* __Pyx_CyFunction_repr(__pyx_CyFunctionObject *op) { #if PY_MAJOR_VERSION >= 3 return PyUnicode_FromFormat("", op->func_qualname, (void *)op); #else return PyString_FromFormat("", PyString_AsString(op->func_qualname), (void *)op); #endif } static PyObject * __Pyx_CyFunction_CallMethod(PyObject *func, PyObject *self, PyObject *arg, PyObject *kw) { PyCFunctionObject* f = (PyCFunctionObject*)func; PyCFunction meth = f->m_ml->ml_meth; Py_ssize_t size; switch (f->m_ml->ml_flags & (METH_VARARGS | METH_KEYWORDS | METH_NOARGS | METH_O)) { case METH_VARARGS: if (likely(kw == NULL || PyDict_Size(kw) == 0)) return (*meth)(self, arg); break; case METH_VARARGS | METH_KEYWORDS: return (*(PyCFunctionWithKeywords)(void*)meth)(self, arg, kw); case METH_NOARGS: if (likely(kw == NULL || PyDict_Size(kw) == 0)) { size = PyTuple_GET_SIZE(arg); if (likely(size == 0)) return (*meth)(self, NULL); PyErr_Format(PyExc_TypeError, "%.200s() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)", f->m_ml->ml_name, size); return NULL; } break; case METH_O: if (likely(kw == NULL || PyDict_Size(kw) == 0)) { size = PyTuple_GET_SIZE(arg); if (likely(size == 1)) { PyObject *result, *arg0; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS arg0 = PyTuple_GET_ITEM(arg, 0); #else arg0 = PySequence_ITEM(arg, 0); if (unlikely(!arg0)) return NULL; #endif result = (*meth)(self, arg0); #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS) Py_DECREF(arg0); #endif return result; } PyErr_Format(PyExc_TypeError, "%.200s() takes exactly one argument (%" CYTHON_FORMAT_SSIZE_T "d given)", f->m_ml->ml_name, size); return NULL; } break; default: PyErr_SetString(PyExc_SystemError, "Bad call flags for CyFunction"); return NULL; } PyErr_Format(PyExc_TypeError, "%.200s() takes no keyword arguments", f->m_ml->ml_name); return NULL; } static CYTHON_INLINE PyObject *__Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) { return __Pyx_CyFunction_CallMethod(func, ((PyCFunctionObject*)func)->m_self, arg, kw); } static PyObject *__Pyx_CyFunction_CallAsMethod(PyObject *func, PyObject *args, PyObject *kw) { PyObject *result; __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *) func; #if CYTHON_METH_FASTCALL __pyx_vectorcallfunc vc = __Pyx_CyFunction_func_vectorcall(cyfunc); if (vc) { #if CYTHON_ASSUME_SAFE_MACROS return __Pyx_PyVectorcall_FastCallDict(func, vc, &PyTuple_GET_ITEM(args, 0), (size_t)PyTuple_GET_SIZE(args), kw); #else (void) &__Pyx_PyVectorcall_FastCallDict; return PyVectorcall_Call(func, args, kw); #endif } #endif if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) { Py_ssize_t argc; PyObject *new_args; PyObject *self; argc = PyTuple_GET_SIZE(args); new_args = PyTuple_GetSlice(args, 1, argc); if (unlikely(!new_args)) return NULL; self = PyTuple_GetItem(args, 0); if (unlikely(!self)) { Py_DECREF(new_args); return NULL; } result = __Pyx_CyFunction_CallMethod(func, self, new_args, kw); Py_DECREF(new_args); } else { result = __Pyx_CyFunction_Call(func, args, kw); } return result; } #if CYTHON_METH_FASTCALL static CYTHON_INLINE int __Pyx_CyFunction_Vectorcall_CheckArgs(__pyx_CyFunctionObject *cyfunc, Py_ssize_t nargs, PyObject *kwnames) { int ret = 0; if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) { if (unlikely(nargs < 1)) { PyErr_Format(PyExc_TypeError, "%.200s() needs an argument", ((PyCFunctionObject*)cyfunc)->m_ml->ml_name); return -1; } ret = 1; } if (unlikely(kwnames) && unlikely(PyTuple_GET_SIZE(kwnames))) { PyErr_Format(PyExc_TypeError, "%.200s() takes no keyword arguments", ((PyCFunctionObject*)cyfunc)->m_ml->ml_name); return -1; } return ret; } static PyObject * __Pyx_CyFunction_Vectorcall_NOARGS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames) { __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func; PyMethodDef* def = ((PyCFunctionObject*)cyfunc)->m_ml; #if CYTHON_BACKPORT_VECTORCALL Py_ssize_t nargs = (Py_ssize_t)nargsf; #else Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); #endif PyObject *self; switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, kwnames)) { case 1: self = args[0]; args += 1; nargs -= 1; break; case 0: self = ((PyCFunctionObject*)cyfunc)->m_self; break; default: return NULL; } if (unlikely(nargs != 0)) { PyErr_Format(PyExc_TypeError, "%.200s() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)", def->ml_name, nargs); return NULL; } return def->ml_meth(self, NULL); } static PyObject * __Pyx_CyFunction_Vectorcall_O(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames) { __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func; PyMethodDef* def = ((PyCFunctionObject*)cyfunc)->m_ml; #if CYTHON_BACKPORT_VECTORCALL Py_ssize_t nargs = (Py_ssize_t)nargsf; #else Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); #endif PyObject *self; switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, kwnames)) { case 1: self = args[0]; args += 1; nargs -= 1; break; case 0: self = ((PyCFunctionObject*)cyfunc)->m_self; break; default: return NULL; } if (unlikely(nargs != 1)) { PyErr_Format(PyExc_TypeError, "%.200s() takes exactly one argument (%" CYTHON_FORMAT_SSIZE_T "d given)", def->ml_name, nargs); return NULL; } return def->ml_meth(self, args[0]); } static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames) { __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func; PyMethodDef* def = ((PyCFunctionObject*)cyfunc)->m_ml; #if CYTHON_BACKPORT_VECTORCALL Py_ssize_t nargs = (Py_ssize_t)nargsf; #else Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); #endif PyObject *self; switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, NULL)) { case 1: self = args[0]; args += 1; nargs -= 1; break; case 0: self = ((PyCFunctionObject*)cyfunc)->m_self; break; default: return NULL; } return ((_PyCFunctionFastWithKeywords)(void(*)(void))def->ml_meth)(self, args, nargs, kwnames); } static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames) { __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func; PyMethodDef* def = ((PyCFunctionObject*)cyfunc)->m_ml; PyTypeObject *cls = (PyTypeObject *) __Pyx_CyFunction_GetClassObj(cyfunc); #if CYTHON_BACKPORT_VECTORCALL Py_ssize_t nargs = (Py_ssize_t)nargsf; #else Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); #endif PyObject *self; switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, NULL)) { case 1: self = args[0]; args += 1; nargs -= 1; break; case 0: self = ((PyCFunctionObject*)cyfunc)->m_self; break; default: return NULL; } return ((__Pyx_PyCMethod)(void(*)(void))def->ml_meth)(self, cls, args, nargs, kwnames); } #endif #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_CyFunctionType_slots[] = { {Py_tp_dealloc, (void *)__Pyx_CyFunction_dealloc}, {Py_tp_repr, (void *)__Pyx_CyFunction_repr}, {Py_tp_call, (void *)__Pyx_CyFunction_CallAsMethod}, {Py_tp_traverse, (void *)__Pyx_CyFunction_traverse}, {Py_tp_clear, (void *)__Pyx_CyFunction_clear}, {Py_tp_methods, (void *)__pyx_CyFunction_methods}, {Py_tp_members, (void *)__pyx_CyFunction_members}, {Py_tp_getset, (void *)__pyx_CyFunction_getsets}, {Py_tp_descr_get, (void *)__Pyx_PyMethod_New}, {0, 0}, }; static PyType_Spec __pyx_CyFunctionType_spec = { __PYX_TYPE_MODULE_PREFIX "cython_function_or_method", sizeof(__pyx_CyFunctionObject), 0, #ifdef Py_TPFLAGS_METHOD_DESCRIPTOR Py_TPFLAGS_METHOD_DESCRIPTOR | #endif #if (defined(_Py_TPFLAGS_HAVE_VECTORCALL) && CYTHON_METH_FASTCALL) _Py_TPFLAGS_HAVE_VECTORCALL | #endif Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE, __pyx_CyFunctionType_slots }; #else static PyTypeObject __pyx_CyFunctionType_type = { PyVarObject_HEAD_INIT(0, 0) __PYX_TYPE_MODULE_PREFIX "cython_function_or_method", sizeof(__pyx_CyFunctionObject), 0, (destructor) __Pyx_CyFunction_dealloc, #if !CYTHON_METH_FASTCALL 0, #elif CYTHON_BACKPORT_VECTORCALL (printfunc)offsetof(__pyx_CyFunctionObject, func_vectorcall), #else offsetof(PyCFunctionObject, vectorcall), #endif 0, 0, #if PY_MAJOR_VERSION < 3 0, #else 0, #endif (reprfunc) __Pyx_CyFunction_repr, 0, 0, 0, 0, __Pyx_CyFunction_CallAsMethod, 0, 0, 0, 0, #ifdef Py_TPFLAGS_METHOD_DESCRIPTOR Py_TPFLAGS_METHOD_DESCRIPTOR | #endif #ifdef _Py_TPFLAGS_HAVE_VECTORCALL _Py_TPFLAGS_HAVE_VECTORCALL | #endif Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE, 0, (traverseproc) __Pyx_CyFunction_traverse, (inquiry) __Pyx_CyFunction_clear, 0, #if PY_VERSION_HEX < 0x030500A0 offsetof(__pyx_CyFunctionObject, func_weakreflist), #else offsetof(PyCFunctionObject, m_weakreflist), #endif 0, 0, __pyx_CyFunction_methods, __pyx_CyFunction_members, __pyx_CyFunction_getsets, 0, 0, __Pyx_PyMethod_New, 0, offsetof(__pyx_CyFunctionObject, func_dict), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, #if PY_VERSION_HEX >= 0x030400a1 0, #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 0, #endif }; #endif static int __pyx_CyFunction_init(PyObject *module) { #if CYTHON_USE_TYPE_SPECS __pyx_CyFunctionType = __Pyx_FetchCommonTypeFromSpec(module, &__pyx_CyFunctionType_spec, NULL); #else (void) module; __pyx_CyFunctionType = __Pyx_FetchCommonType(&__pyx_CyFunctionType_type); #endif if (unlikely(__pyx_CyFunctionType == NULL)) { return -1; } return 0; } static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *func, size_t size, int pyobjects) { __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; m->defaults = PyObject_Malloc(size); if (unlikely(!m->defaults)) return PyErr_NoMemory(); memset(m->defaults, 0, size); m->defaults_pyobjects = pyobjects; m->defaults_size = size; return m->defaults; } static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *func, PyObject *tuple) { __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; m->defaults_tuple = tuple; Py_INCREF(tuple); } static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *func, PyObject *dict) { __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; m->defaults_kwdict = dict; Py_INCREF(dict); } static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *func, PyObject *dict) { __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; m->func_annotations = dict; Py_INCREF(dict); } /* CythonFunction */ static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml, int flags, PyObject* qualname, PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) { PyObject *op = __Pyx_CyFunction_Init( PyObject_GC_New(__pyx_CyFunctionObject, __pyx_CyFunctionType), ml, flags, qualname, closure, module, globals, code ); if (likely(op)) { PyObject_GC_Track(op); } return op; } /* PyObjectLookupSpecial */ #if CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS static CYTHON_INLINE PyObject* __Pyx__PyObject_LookupSpecial(PyObject* obj, PyObject* attr_name, int with_error) { PyObject *res; PyTypeObject *tp = Py_TYPE(obj); #if PY_MAJOR_VERSION < 3 if (unlikely(PyInstance_Check(obj))) return with_error ? __Pyx_PyObject_GetAttrStr(obj, attr_name) : __Pyx_PyObject_GetAttrStrNoError(obj, attr_name); #endif res = _PyType_Lookup(tp, attr_name); if (likely(res)) { descrgetfunc f = Py_TYPE(res)->tp_descr_get; if (!f) { Py_INCREF(res); } else { res = f(res, obj, (PyObject *)tp); } } else if (with_error) { PyErr_SetObject(PyExc_AttributeError, attr_name); } return res; } #endif /* ObjectGetItem */ #if CYTHON_USE_TYPE_SLOTS static PyObject *__Pyx_PyObject_GetIndex(PyObject *obj, PyObject *index) { PyObject *runerr; Py_ssize_t key_value; key_value = __Pyx_PyIndex_AsSsize_t(index); if (likely(key_value != -1 || !(runerr = PyErr_Occurred()))) { return __Pyx_GetItemInt_Fast(obj, key_value, 0, 1, 1); } if (PyErr_GivenExceptionMatches(runerr, PyExc_OverflowError)) { __Pyx_TypeName index_type_name = __Pyx_PyType_GetName(Py_TYPE(index)); PyErr_Clear(); PyErr_Format(PyExc_IndexError, "cannot fit '" __Pyx_FMT_TYPENAME "' into an index-sized integer", index_type_name); __Pyx_DECREF_TypeName(index_type_name); } return NULL; } static PyObject *__Pyx_PyObject_GetItem_Slow(PyObject *obj, PyObject *key) { __Pyx_TypeName obj_type_name; if (likely(PyType_Check(obj))) { PyObject *meth = __Pyx_PyObject_GetAttrStrNoError(obj, __pyx_n_s_class_getitem); if (meth) { PyObject *result = __Pyx_PyObject_CallOneArg(meth, key); Py_DECREF(meth); return result; } } obj_type_name = __Pyx_PyType_GetName(Py_TYPE(obj)); PyErr_Format(PyExc_TypeError, "'" __Pyx_FMT_TYPENAME "' object is not subscriptable", obj_type_name); __Pyx_DECREF_TypeName(obj_type_name); return NULL; } static PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject *key) { PyTypeObject *tp = Py_TYPE(obj); PyMappingMethods *mm = tp->tp_as_mapping; PySequenceMethods *sm = tp->tp_as_sequence; if (likely(mm && mm->mp_subscript)) { return mm->mp_subscript(obj, key); } if (likely(sm && sm->sq_item)) { return __Pyx_PyObject_GetIndex(obj, key); } return __Pyx_PyObject_GetItem_Slow(obj, key); } #endif /* ValidateBasesTuple */ #if CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_USE_TYPE_SPECS static int __Pyx_validate_bases_tuple(const char *type_name, Py_ssize_t dictoffset, PyObject *bases) { Py_ssize_t i, n = PyTuple_GET_SIZE(bases); for (i = 1; i < n; i++) { PyObject *b0 = PyTuple_GET_ITEM(bases, i); PyTypeObject *b; #if PY_MAJOR_VERSION < 3 if (PyClass_Check(b0)) { PyErr_Format(PyExc_TypeError, "base class '%.200s' is an old-style class", PyString_AS_STRING(((PyClassObject*)b0)->cl_name)); return -1; } #endif b = (PyTypeObject*) b0; if (!__Pyx_PyType_HasFeature(b, Py_TPFLAGS_HEAPTYPE)) { __Pyx_TypeName b_name = __Pyx_PyType_GetName(b); PyErr_Format(PyExc_TypeError, "base class '" __Pyx_FMT_TYPENAME "' is not a heap type", b_name); __Pyx_DECREF_TypeName(b_name); return -1; } if (dictoffset == 0 && b->tp_dictoffset) { __Pyx_TypeName b_name = __Pyx_PyType_GetName(b); PyErr_Format(PyExc_TypeError, "extension type '%.200s' has no __dict__ slot, " "but base type '" __Pyx_FMT_TYPENAME "' has: " "either add 'cdef dict __dict__' to the extension type " "or add '__slots__ = [...]' to the base type", type_name, b_name); __Pyx_DECREF_TypeName(b_name); return -1; } } return 0; } #endif /* PyType_Ready */ static int __Pyx_PyType_Ready(PyTypeObject *t) { #if CYTHON_USE_TYPE_SPECS || !(CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_LIMITED_API) || defined(PYSTON_MAJOR_VERSION) (void)__Pyx_PyObject_CallMethod0; #if CYTHON_USE_TYPE_SPECS (void)__Pyx_validate_bases_tuple; #endif return PyType_Ready(t); #else int r; PyObject *bases = __Pyx_PyType_GetSlot(t, tp_bases, PyObject*); if (bases && unlikely(__Pyx_validate_bases_tuple(t->tp_name, t->tp_dictoffset, bases) == -1)) return -1; #if PY_VERSION_HEX >= 0x03050000 && !defined(PYSTON_MAJOR_VERSION) { int gc_was_enabled; #if PY_VERSION_HEX >= 0x030A00b1 gc_was_enabled = PyGC_Disable(); (void)__Pyx_PyObject_CallMethod0; #else PyObject *ret, *py_status; PyObject *gc = NULL; #if PY_VERSION_HEX >= 0x030700a1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM+0 >= 0x07030400) gc = PyImport_GetModule(__pyx_kp_u_gc); #endif if (unlikely(!gc)) gc = PyImport_Import(__pyx_kp_u_gc); if (unlikely(!gc)) return -1; py_status = __Pyx_PyObject_CallMethod0(gc, __pyx_kp_u_isenabled); if (unlikely(!py_status)) { Py_DECREF(gc); return -1; } gc_was_enabled = __Pyx_PyObject_IsTrue(py_status); Py_DECREF(py_status); if (gc_was_enabled > 0) { ret = __Pyx_PyObject_CallMethod0(gc, __pyx_kp_u_disable); if (unlikely(!ret)) { Py_DECREF(gc); return -1; } Py_DECREF(ret); } else if (unlikely(gc_was_enabled == -1)) { Py_DECREF(gc); return -1; } #endif t->tp_flags |= Py_TPFLAGS_HEAPTYPE; #else (void)__Pyx_PyObject_CallMethod0; #endif r = PyType_Ready(t); #if PY_VERSION_HEX >= 0x03050000 && !defined(PYSTON_MAJOR_VERSION) t->tp_flags &= ~Py_TPFLAGS_HEAPTYPE; #if PY_VERSION_HEX >= 0x030A00b1 if (gc_was_enabled) PyGC_Enable(); #else if (gc_was_enabled) { PyObject *tp, *v, *tb; PyErr_Fetch(&tp, &v, &tb); ret = __Pyx_PyObject_CallMethod0(gc, __pyx_kp_u_enable); if (likely(ret || r == -1)) { Py_XDECREF(ret); PyErr_Restore(tp, v, tb); } else { Py_XDECREF(tp); Py_XDECREF(v); Py_XDECREF(tb); r = -1; } } Py_DECREF(gc); #endif } #endif return r; #endif } /* PyObject_GenericGetAttrNoDict */ #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 static PyObject *__Pyx_RaiseGenericGetAttributeError(PyTypeObject *tp, PyObject *attr_name) { __Pyx_TypeName type_name = __Pyx_PyType_GetName(tp); PyErr_Format(PyExc_AttributeError, #if PY_MAJOR_VERSION >= 3 "'" __Pyx_FMT_TYPENAME "' object has no attribute '%U'", type_name, attr_name); #else "'" __Pyx_FMT_TYPENAME "' object has no attribute '%.400s'", type_name, PyString_AS_STRING(attr_name)); #endif __Pyx_DECREF_TypeName(type_name); return NULL; } static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name) { PyObject *descr; PyTypeObject *tp = Py_TYPE(obj); if (unlikely(!PyString_Check(attr_name))) { return PyObject_GenericGetAttr(obj, attr_name); } assert(!tp->tp_dictoffset); descr = _PyType_Lookup(tp, attr_name); if (unlikely(!descr)) { return __Pyx_RaiseGenericGetAttributeError(tp, attr_name); } Py_INCREF(descr); #if PY_MAJOR_VERSION < 3 if (likely(PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_HAVE_CLASS))) #endif { descrgetfunc f = Py_TYPE(descr)->tp_descr_get; if (unlikely(f)) { PyObject *res = f(descr, obj, (PyObject *)tp); Py_DECREF(descr); return res; } } return descr; } #endif /* CalculateMetaclass */ static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases) { Py_ssize_t i, nbases = PyTuple_GET_SIZE(bases); for (i=0; i < nbases; i++) { PyTypeObject *tmptype; PyObject *tmp = PyTuple_GET_ITEM(bases, i); tmptype = Py_TYPE(tmp); #if PY_MAJOR_VERSION < 3 if (tmptype == &PyClass_Type) continue; #endif if (!metaclass) { metaclass = tmptype; continue; } if (PyType_IsSubtype(metaclass, tmptype)) continue; if (PyType_IsSubtype(tmptype, metaclass)) { metaclass = tmptype; continue; } PyErr_SetString(PyExc_TypeError, "metaclass conflict: " "the metaclass of a derived class " "must be a (non-strict) subclass " "of the metaclasses of all its bases"); return NULL; } if (!metaclass) { #if PY_MAJOR_VERSION < 3 metaclass = &PyClass_Type; #else metaclass = &PyType_Type; #endif } Py_INCREF((PyObject*) metaclass); return (PyObject*) metaclass; } /* PyObjectCall2Args */ static CYTHON_INLINE PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2) { PyObject *args[3] = {NULL, arg1, arg2}; return __Pyx_PyObject_FastCall(function, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET); } /* Py3ClassCreate */ static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name, PyObject *qualname, PyObject *mkw, PyObject *modname, PyObject *doc) { PyObject *ns; if (metaclass) { PyObject *prep = __Pyx_PyObject_GetAttrStrNoError(metaclass, __pyx_n_s_prepare); if (prep) { PyObject *pargs[3] = {NULL, name, bases}; ns = __Pyx_PyObject_FastCallDict(prep, pargs+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, mkw); Py_DECREF(prep); } else { if (unlikely(PyErr_Occurred())) return NULL; ns = PyDict_New(); } } else { ns = PyDict_New(); } if (unlikely(!ns)) return NULL; if (unlikely(PyObject_SetItem(ns, __pyx_n_s_module_2, modname) < 0)) goto bad; #if PY_VERSION_HEX >= 0x03030000 if (unlikely(PyObject_SetItem(ns, __pyx_n_s_qualname, qualname) < 0)) goto bad; #else CYTHON_MAYBE_UNUSED_VAR(qualname); #endif if (unlikely(doc && PyObject_SetItem(ns, __pyx_n_s_doc, doc) < 0)) goto bad; return ns; bad: Py_DECREF(ns); return NULL; } #if PY_VERSION_HEX < 0x030600A4 && CYTHON_PEP487_INIT_SUBCLASS static int __Pyx_SetNamesPEP487(PyObject *type_obj) { PyTypeObject *type = (PyTypeObject*) type_obj; PyObject *names_to_set, *key, *value, *set_name, *tmp; Py_ssize_t i = 0; #if CYTHON_USE_TYPE_SLOTS names_to_set = PyDict_Copy(type->tp_dict); #else { PyObject *d = PyObject_GetAttr(type_obj, __pyx_n_s_dict); names_to_set = NULL; if (likely(d)) { PyObject *names_to_set = PyDict_New(); int ret = likely(names_to_set) ? PyDict_Update(names_to_set, d) : -1; Py_DECREF(d); if (unlikely(ret < 0)) Py_CLEAR(names_to_set); } } #endif if (unlikely(names_to_set == NULL)) goto bad; while (PyDict_Next(names_to_set, &i, &key, &value)) { set_name = __Pyx_PyObject_LookupSpecialNoError(value, __pyx_n_s_set_name); if (unlikely(set_name != NULL)) { tmp = __Pyx_PyObject_Call2Args(set_name, type_obj, key); Py_DECREF(set_name); if (unlikely(tmp == NULL)) { __Pyx_TypeName value_type_name = __Pyx_PyType_GetName(Py_TYPE(value)); __Pyx_TypeName type_name = __Pyx_PyType_GetName(type); PyErr_Format(PyExc_RuntimeError, #if PY_MAJOR_VERSION >= 3 "Error calling __set_name__ on '" __Pyx_FMT_TYPENAME "' instance %R " "in '" __Pyx_FMT_TYPENAME "'", value_type_name, key, type_name); #else "Error calling __set_name__ on '" __Pyx_FMT_TYPENAME "' instance %.100s in '" __Pyx_FMT_TYPENAME "'", value_type_name, PyString_Check(key) ? PyString_AS_STRING(key) : "?", type_name); #endif goto bad; } else { Py_DECREF(tmp); } } else if (unlikely(PyErr_Occurred())) { goto bad; } } Py_DECREF(names_to_set); return 0; bad: Py_XDECREF(names_to_set); return -1; } static PyObject *__Pyx_InitSubclassPEP487(PyObject *type_obj, PyObject *mkw) { #if CYTHON_USE_TYPE_SLOTS && CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS PyTypeObject *type = (PyTypeObject*) type_obj; PyObject *mro = type->tp_mro; Py_ssize_t i, nbases; if (unlikely(!mro)) goto done; (void) &__Pyx_GetBuiltinName; Py_INCREF(mro); nbases = PyTuple_GET_SIZE(mro); assert(PyTuple_GET_ITEM(mro, 0) == type_obj); for (i = 1; i < nbases-1; i++) { PyObject *base, *dict, *meth; base = PyTuple_GET_ITEM(mro, i); dict = ((PyTypeObject *)base)->tp_dict; meth = __Pyx_PyDict_GetItemStrWithError(dict, __pyx_n_s_init_subclass); if (unlikely(meth)) { descrgetfunc f = Py_TYPE(meth)->tp_descr_get; PyObject *res; Py_INCREF(meth); if (likely(f)) { res = f(meth, NULL, type_obj); Py_DECREF(meth); if (unlikely(!res)) goto bad; meth = res; } res = __Pyx_PyObject_FastCallDict(meth, NULL, 0, mkw); Py_DECREF(meth); if (unlikely(!res)) goto bad; Py_DECREF(res); goto done; } else if (unlikely(PyErr_Occurred())) { goto bad; } } done: Py_XDECREF(mro); return type_obj; bad: Py_XDECREF(mro); Py_DECREF(type_obj); return NULL; #else PyObject *super_type, *super, *func, *res; #if CYTHON_COMPILING_IN_PYPY && !defined(PySuper_Type) super_type = __Pyx_GetBuiltinName(__pyx_n_s_super); #else super_type = (PyObject*) &PySuper_Type; (void) &__Pyx_GetBuiltinName; #endif super = likely(super_type) ? __Pyx_PyObject_Call2Args(super_type, type_obj, type_obj) : NULL; #if CYTHON_COMPILING_IN_PYPY && !defined(PySuper_Type) Py_XDECREF(super_type); #endif if (unlikely(!super)) { Py_CLEAR(type_obj); goto done; } func = __Pyx_PyObject_GetAttrStrNoError(super, __pyx_n_s_init_subclass); Py_DECREF(super); if (likely(!func)) { if (unlikely(PyErr_Occurred())) Py_CLEAR(type_obj); goto done; } res = __Pyx_PyObject_FastCallDict(func, NULL, 0, mkw); Py_DECREF(func); if (unlikely(!res)) Py_CLEAR(type_obj); Py_XDECREF(res); done: return type_obj; #endif } #endif static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases, PyObject *dict, PyObject *mkw, int calculate_metaclass, int allow_py2_metaclass) { PyObject *result; PyObject *owned_metaclass = NULL; PyObject *margs[4] = {NULL, name, bases, dict}; if (allow_py2_metaclass) { owned_metaclass = PyObject_GetItem(dict, __pyx_n_s_metaclass); if (owned_metaclass) { metaclass = owned_metaclass; } else if (likely(PyErr_ExceptionMatches(PyExc_KeyError))) { PyErr_Clear(); } else { return NULL; } } if (calculate_metaclass && (!metaclass || PyType_Check(metaclass))) { metaclass = __Pyx_CalculateMetaclass((PyTypeObject*) metaclass, bases); Py_XDECREF(owned_metaclass); if (unlikely(!metaclass)) return NULL; owned_metaclass = metaclass; } result = __Pyx_PyObject_FastCallDict(metaclass, margs+1, 3 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, #if PY_VERSION_HEX < 0x030600A4 (metaclass == (PyObject*)&PyType_Type) ? NULL : mkw #else mkw #endif ); Py_XDECREF(owned_metaclass); #if PY_VERSION_HEX < 0x030600A4 && CYTHON_PEP487_INIT_SUBCLASS if (likely(result) && likely(PyType_Check(result))) { if (unlikely(__Pyx_SetNamesPEP487(result) < 0)) { Py_CLEAR(result); } else { result = __Pyx_InitSubclassPEP487(result, mkw); } } #else (void) &__Pyx_GetBuiltinName; #endif return result; } /* CLineInTraceback */ #ifndef CYTHON_CLINE_IN_TRACEBACK static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int c_line) { PyObject *use_cline; PyObject *ptype, *pvalue, *ptraceback; #if CYTHON_COMPILING_IN_CPYTHON PyObject **cython_runtime_dict; #endif if (unlikely(!__pyx_cython_runtime)) { return c_line; } __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback); #if CYTHON_COMPILING_IN_CPYTHON cython_runtime_dict = _PyObject_GetDictPtr(__pyx_cython_runtime); if (likely(cython_runtime_dict)) { __PYX_PY_DICT_LOOKUP_IF_MODIFIED( use_cline, *cython_runtime_dict, __Pyx_PyDict_GetItemStr(*cython_runtime_dict, __pyx_n_s_cline_in_traceback)) } else #endif { PyObject *use_cline_obj = __Pyx_PyObject_GetAttrStrNoError(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback); if (use_cline_obj) { use_cline = PyObject_Not(use_cline_obj) ? Py_False : Py_True; Py_DECREF(use_cline_obj); } else { PyErr_Clear(); use_cline = NULL; } } if (!use_cline) { c_line = 0; (void) PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); } else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { c_line = 0; } __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback); return c_line; } #endif /* CodeObjectCache */ #if !CYTHON_COMPILING_IN_LIMITED_API static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) { int start = 0, mid = 0, end = count - 1; if (end >= 0 && code_line > entries[end].code_line) { return count; } while (start < end) { mid = start + (end - start) / 2; if (code_line < entries[mid].code_line) { end = mid; } else if (code_line > entries[mid].code_line) { start = mid + 1; } else { return mid; } } if (code_line <= entries[mid].code_line) { return mid; } else { return mid + 1; } } static PyCodeObject *__pyx_find_code_object(int code_line) { PyCodeObject* code_object; int pos; if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) { return NULL; } pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) { return NULL; } code_object = __pyx_code_cache.entries[pos].code_object; Py_INCREF(code_object); return code_object; } static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { int pos, i; __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries; if (unlikely(!code_line)) { return; } if (unlikely(!entries)) { entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry)); if (likely(entries)) { __pyx_code_cache.entries = entries; __pyx_code_cache.max_count = 64; __pyx_code_cache.count = 1; entries[0].code_line = code_line; entries[0].code_object = code_object; Py_INCREF(code_object); } return; } pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) { PyCodeObject* tmp = entries[pos].code_object; entries[pos].code_object = code_object; Py_DECREF(tmp); return; } if (__pyx_code_cache.count == __pyx_code_cache.max_count) { int new_max = __pyx_code_cache.max_count + 64; entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( __pyx_code_cache.entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry)); if (unlikely(!entries)) { return; } __pyx_code_cache.entries = entries; __pyx_code_cache.max_count = new_max; } for (i=__pyx_code_cache.count; i>pos; i--) { entries[i] = entries[i-1]; } entries[pos].code_line = code_line; entries[pos].code_object = code_object; __pyx_code_cache.count++; Py_INCREF(code_object); } #endif /* AddTraceback */ #include "compile.h" #include "frameobject.h" #include "traceback.h" #if CYTHON_COMPILING_IN_LIMITED_API static void __Pyx_AddTraceback(const char *funcname, int c_line, int py_line, const char *filename) { if (c_line) { (void) __pyx_cfilenm; c_line = __Pyx_CLineForTraceback(__Pyx_PyThreadState_Current, c_line); } _PyTraceback_Add(funcname, filename, c_line ? -c_line : py_line); } #else static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( const char *funcname, int c_line, int py_line, const char *filename) { PyCodeObject *py_code = NULL; PyObject *py_funcname = NULL; #if PY_MAJOR_VERSION < 3 PyObject *py_srcfile = NULL; py_srcfile = PyString_FromString(filename); if (!py_srcfile) goto bad; #endif if (c_line) { #if PY_MAJOR_VERSION < 3 py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); if (!py_funcname) goto bad; #else py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); if (!py_funcname) goto bad; funcname = PyUnicode_AsUTF8(py_funcname); if (!funcname) goto bad; #endif } else { #if PY_MAJOR_VERSION < 3 py_funcname = PyString_FromString(funcname); if (!py_funcname) goto bad; #endif } #if PY_MAJOR_VERSION < 3 py_code = __Pyx_PyCode_New( 0, 0, 0, 0, 0, 0, __pyx_empty_bytes, /*PyObject *code,*/ __pyx_empty_tuple, /*PyObject *consts,*/ __pyx_empty_tuple, /*PyObject *names,*/ __pyx_empty_tuple, /*PyObject *varnames,*/ __pyx_empty_tuple, /*PyObject *freevars,*/ __pyx_empty_tuple, /*PyObject *cellvars,*/ py_srcfile, /*PyObject *filename,*/ py_funcname, /*PyObject *name,*/ py_line, __pyx_empty_bytes /*PyObject *lnotab*/ ); Py_DECREF(py_srcfile); #else py_code = PyCode_NewEmpty(filename, funcname, py_line); #endif Py_XDECREF(py_funcname); // XDECREF since it's only set on Py3 if cline return py_code; bad: Py_XDECREF(py_funcname); #if PY_MAJOR_VERSION < 3 Py_XDECREF(py_srcfile); #endif return NULL; } static void __Pyx_AddTraceback(const char *funcname, int c_line, int py_line, const char *filename) { PyCodeObject *py_code = 0; PyFrameObject *py_frame = 0; PyThreadState *tstate = __Pyx_PyThreadState_Current; if (c_line) { c_line = __Pyx_CLineForTraceback(tstate, c_line); } py_code = __pyx_find_code_object(c_line ? -c_line : py_line); if (!py_code) { py_code = __Pyx_CreateCodeObjectForTraceback( funcname, c_line, py_line, filename); if (!py_code) goto bad; __pyx_insert_code_object(c_line ? -c_line : py_line, py_code); } py_frame = PyFrame_New( tstate, /*PyThreadState *tstate,*/ py_code, /*PyCodeObject *code,*/ __pyx_d, /*PyObject *globals,*/ 0 /*PyObject *locals*/ ); if (!py_frame) goto bad; __Pyx_PyFrame_SetLineNumber(py_frame, py_line); PyTraceBack_Here(py_frame); bad: Py_XDECREF(py_code); Py_XDECREF(py_frame); } #endif /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const long neg_one = (long) -1, const_zero = (long) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(long) < sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(long) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(long) <= sizeof(long)) { return PyInt_FromLong((long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); #endif } } { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; return _PyLong_FromByteArray(bytes, sizeof(long), little, !is_unsigned); } } /* FormatTypeName */ #if CYTHON_COMPILING_IN_LIMITED_API static __Pyx_TypeName __Pyx_PyType_GetName(PyTypeObject* tp) { PyObject *name = __Pyx_PyObject_GetAttrStr((PyObject *)tp, __pyx_n_s_name_2); if (unlikely(name == NULL) || unlikely(!PyUnicode_Check(name))) { PyErr_Clear(); Py_XSETREF(name, __Pyx_NewRef(__pyx_n_s__76)); } return name; } #endif /* CIntFromPyVerify */ #define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\ __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0) #define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\ __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1) #define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\ {\ func_type value = func_value;\ if (sizeof(target_type) < sizeof(func_type)) {\ if (unlikely(value != (func_type) (target_type) value)) {\ func_type zero = 0;\ if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\ return (target_type) -1;\ if (is_unsigned && unlikely(value < zero))\ goto raise_neg_overflow;\ else\ goto raise_overflow;\ }\ }\ return (target_type) value;\ } /* CIntFromPy */ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const long neg_one = (long) -1, const_zero = (long) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if ((sizeof(long) < sizeof(long))) { __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (long) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (long) 0; case 1: __PYX_VERIFY_RETURN_INT(long, digit, digits[0]) case 2: if ((8 * sizeof(long) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(long) >= 2 * PyLong_SHIFT)) { return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); } } break; case 3: if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(long) >= 3 * PyLong_SHIFT)) { return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); } } break; case 4: if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(long) >= 4 * PyLong_SHIFT)) { return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); } } break; } #endif #if CYTHON_COMPILING_IN_CPYTHON if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (long) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if ((sizeof(long) <= sizeof(unsigned long))) { __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG } else if ((sizeof(long) <= sizeof(unsigned PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif } } else { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (long) 0; case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, (sdigit) (-(sdigit)digits[0])) case 1: __PYX_VERIFY_RETURN_INT(long, digit, +digits[0]) case -2: if ((8 * sizeof(long) - 1 > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) { return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case 2: if ((8 * sizeof(long) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) { return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case -3: if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) { return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case 3: if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) { return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case -4: if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(long) - 1 > 4 * PyLong_SHIFT)) { return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case 4: if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(long) - 1 > 4 * PyLong_SHIFT)) { return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; } #endif if ((sizeof(long) <= sizeof(long))) { __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG } else if ((sizeof(long) <= sizeof(PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif } } { #if (CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) && !defined(_PyLong_AsByteArray) PyErr_SetString(PyExc_RuntimeError, "_PyLong_AsByteArray() not available, cannot convert large numbers"); #else long val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; int ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); Py_DECREF(v); if (likely(!ret)) return val; } #endif return (long) -1; } } else { long val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (long) -1; val = __Pyx_PyInt_As_long(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to long"); return (long) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to long"); return (long) -1; } /* CIntFromPy */ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const int neg_one = (int) -1, const_zero = (int) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if ((sizeof(int) < sizeof(long))) { __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (int) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (int) 0; case 1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0]) case 2: if ((8 * sizeof(int) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(int) >= 2 * PyLong_SHIFT)) { return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); } } break; case 3: if ((8 * sizeof(int) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(int) >= 3 * PyLong_SHIFT)) { return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); } } break; case 4: if ((8 * sizeof(int) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(int) >= 4 * PyLong_SHIFT)) { return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); } } break; } #endif #if CYTHON_COMPILING_IN_CPYTHON if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (int) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if ((sizeof(int) <= sizeof(unsigned long))) { __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG } else if ((sizeof(int) <= sizeof(unsigned PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif } } else { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (int) 0; case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0])) case 1: __PYX_VERIFY_RETURN_INT(int, digit, +digits[0]) case -2: if ((8 * sizeof(int) - 1 > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) { return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case 2: if ((8 * sizeof(int) > 1 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) { return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case -3: if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) { return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case 3: if ((8 * sizeof(int) > 2 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) { return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case -4: if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(int) - 1 > 4 * PyLong_SHIFT)) { return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case 4: if ((8 * sizeof(int) > 3 * PyLong_SHIFT)) { if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if ((8 * sizeof(int) - 1 > 4 * PyLong_SHIFT)) { return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; } #endif if ((sizeof(int) <= sizeof(long))) { __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG } else if ((sizeof(int) <= sizeof(PY_LONG_LONG))) { __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif } } { #if (CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) && !defined(_PyLong_AsByteArray) PyErr_SetString(PyExc_RuntimeError, "_PyLong_AsByteArray() not available, cannot convert large numbers"); #else int val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; int ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); Py_DECREF(v); if (likely(!ret)) return val; } #endif return (int) -1; } } else { int val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (int) -1; val = __Pyx_PyInt_As_int(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to int"); return (int) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to int"); return (int) -1; } /* PyObjectCallMethod1 */ static PyObject* __Pyx__PyObject_CallMethod1(PyObject* method, PyObject* arg) { PyObject *result = __Pyx_PyObject_CallOneArg(method, arg); Py_DECREF(method); return result; } static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg) { PyObject *method = NULL, *result; int is_method = __Pyx_PyObject_GetMethod(obj, method_name, &method); if (likely(is_method)) { result = __Pyx_PyObject_Call2Args(method, obj, arg); Py_DECREF(method); return result; } if (unlikely(!method)) return NULL; return __Pyx__PyObject_CallMethod1(method, arg); } /* CoroutineBase */ #include #define __Pyx_Coroutine_Undelegate(gen) Py_CLEAR((gen)->yieldfrom) static int __Pyx_PyGen__FetchStopIterationValue(PyThreadState *__pyx_tstate, PyObject **pvalue) { PyObject *et, *ev, *tb; PyObject *value = NULL; CYTHON_UNUSED_VAR(__pyx_tstate); __Pyx_ErrFetch(&et, &ev, &tb); if (!et) { Py_XDECREF(tb); Py_XDECREF(ev); Py_INCREF(Py_None); *pvalue = Py_None; return 0; } if (likely(et == PyExc_StopIteration)) { if (!ev) { Py_INCREF(Py_None); value = Py_None; } #if PY_VERSION_HEX >= 0x030300A0 else if (likely(__Pyx_IS_TYPE(ev, (PyTypeObject*)PyExc_StopIteration))) { value = ((PyStopIterationObject *)ev)->value; Py_INCREF(value); Py_DECREF(ev); } #endif else if (unlikely(PyTuple_Check(ev))) { if (PyTuple_GET_SIZE(ev) >= 1) { #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS value = PyTuple_GET_ITEM(ev, 0); Py_INCREF(value); #else value = PySequence_ITEM(ev, 0); #endif } else { Py_INCREF(Py_None); value = Py_None; } Py_DECREF(ev); } else if (!__Pyx_TypeCheck(ev, (PyTypeObject*)PyExc_StopIteration)) { value = ev; } if (likely(value)) { Py_XDECREF(tb); Py_DECREF(et); *pvalue = value; return 0; } } else if (!__Pyx_PyErr_GivenExceptionMatches(et, PyExc_StopIteration)) { __Pyx_ErrRestore(et, ev, tb); return -1; } PyErr_NormalizeException(&et, &ev, &tb); if (unlikely(!PyObject_TypeCheck(ev, (PyTypeObject*)PyExc_StopIteration))) { __Pyx_ErrRestore(et, ev, tb); return -1; } Py_XDECREF(tb); Py_DECREF(et); #if PY_VERSION_HEX >= 0x030300A0 value = ((PyStopIterationObject *)ev)->value; Py_INCREF(value); Py_DECREF(ev); #else { PyObject* args = __Pyx_PyObject_GetAttrStr(ev, __pyx_n_s_args); Py_DECREF(ev); if (likely(args)) { value = PySequence_GetItem(args, 0); Py_DECREF(args); } if (unlikely(!value)) { __Pyx_ErrRestore(NULL, NULL, NULL); Py_INCREF(Py_None); value = Py_None; } } #endif *pvalue = value; return 0; } static CYTHON_INLINE void __Pyx_Coroutine_ExceptionClear(__Pyx_ExcInfoStruct *exc_state) { PyObject *t, *v, *tb; t = exc_state->exc_type; v = exc_state->exc_value; tb = exc_state->exc_traceback; exc_state->exc_type = NULL; exc_state->exc_value = NULL; exc_state->exc_traceback = NULL; Py_XDECREF(t); Py_XDECREF(v); Py_XDECREF(tb); } #define __Pyx_Coroutine_AlreadyRunningError(gen) (__Pyx__Coroutine_AlreadyRunningError(gen), (PyObject*)NULL) static void __Pyx__Coroutine_AlreadyRunningError(__pyx_CoroutineObject *gen) { const char *msg; CYTHON_MAYBE_UNUSED_VAR(gen); if ((0)) { #ifdef __Pyx_Coroutine_USED } else if (__Pyx_Coroutine_Check((PyObject*)gen)) { msg = "coroutine already executing"; #endif #ifdef __Pyx_AsyncGen_USED } else if (__Pyx_AsyncGen_CheckExact((PyObject*)gen)) { msg = "async generator already executing"; #endif } else { msg = "generator already executing"; } PyErr_SetString(PyExc_ValueError, msg); } #define __Pyx_Coroutine_NotStartedError(gen) (__Pyx__Coroutine_NotStartedError(gen), (PyObject*)NULL) static void __Pyx__Coroutine_NotStartedError(PyObject *gen) { const char *msg; CYTHON_MAYBE_UNUSED_VAR(gen); if ((0)) { #ifdef __Pyx_Coroutine_USED } else if (__Pyx_Coroutine_Check(gen)) { msg = "can't send non-None value to a just-started coroutine"; #endif #ifdef __Pyx_AsyncGen_USED } else if (__Pyx_AsyncGen_CheckExact(gen)) { msg = "can't send non-None value to a just-started async generator"; #endif } else { msg = "can't send non-None value to a just-started generator"; } PyErr_SetString(PyExc_TypeError, msg); } #define __Pyx_Coroutine_AlreadyTerminatedError(gen, value, closing) (__Pyx__Coroutine_AlreadyTerminatedError(gen, value, closing), (PyObject*)NULL) static void __Pyx__Coroutine_AlreadyTerminatedError(PyObject *gen, PyObject *value, int closing) { CYTHON_MAYBE_UNUSED_VAR(gen); CYTHON_MAYBE_UNUSED_VAR(closing); #ifdef __Pyx_Coroutine_USED if (!closing && __Pyx_Coroutine_Check(gen)) { PyErr_SetString(PyExc_RuntimeError, "cannot reuse already awaited coroutine"); } else #endif if (value) { #ifdef __Pyx_AsyncGen_USED if (__Pyx_AsyncGen_CheckExact(gen)) PyErr_SetNone(__Pyx_PyExc_StopAsyncIteration); else #endif PyErr_SetNone(PyExc_StopIteration); } } static PyObject *__Pyx_Coroutine_SendEx(__pyx_CoroutineObject *self, PyObject *value, int closing) { __Pyx_PyThreadState_declare PyThreadState *tstate; __Pyx_ExcInfoStruct *exc_state; PyObject *retval; assert(!self->is_running); if (unlikely(self->resume_label == 0)) { if (unlikely(value && value != Py_None)) { return __Pyx_Coroutine_NotStartedError((PyObject*)self); } } if (unlikely(self->resume_label == -1)) { return __Pyx_Coroutine_AlreadyTerminatedError((PyObject*)self, value, closing); } #if CYTHON_FAST_THREAD_STATE __Pyx_PyThreadState_assign tstate = __pyx_tstate; #else tstate = __Pyx_PyThreadState_Current; #endif exc_state = &self->gi_exc_state; if (exc_state->exc_type) { #if CYTHON_COMPILING_IN_PYPY #else if (exc_state->exc_traceback) { PyTracebackObject *tb = (PyTracebackObject *) exc_state->exc_traceback; PyFrameObject *f = tb->tb_frame; assert(f->f_back == NULL); #if PY_VERSION_HEX >= 0x030B00A1 f->f_back = PyThreadState_GetFrame(tstate); #else Py_XINCREF(tstate->frame); f->f_back = tstate->frame; #endif } #endif } #if CYTHON_USE_EXC_INFO_STACK exc_state->previous_item = tstate->exc_info; tstate->exc_info = exc_state; #else if (exc_state->exc_type) { __Pyx_ExceptionSwap(&exc_state->exc_type, &exc_state->exc_value, &exc_state->exc_traceback); } else { __Pyx_Coroutine_ExceptionClear(exc_state); __Pyx_ExceptionSave(&exc_state->exc_type, &exc_state->exc_value, &exc_state->exc_traceback); } #endif self->is_running = 1; retval = self->body(self, tstate, value); self->is_running = 0; #if CYTHON_USE_EXC_INFO_STACK exc_state = &self->gi_exc_state; tstate->exc_info = exc_state->previous_item; exc_state->previous_item = NULL; __Pyx_Coroutine_ResetFrameBackpointer(exc_state); #endif return retval; } static CYTHON_INLINE void __Pyx_Coroutine_ResetFrameBackpointer(__Pyx_ExcInfoStruct *exc_state) { PyObject *exc_tb = exc_state->exc_traceback; if (likely(exc_tb)) { #if CYTHON_COMPILING_IN_PYPY #else PyTracebackObject *tb = (PyTracebackObject *) exc_tb; PyFrameObject *f = tb->tb_frame; Py_CLEAR(f->f_back); #endif } } static CYTHON_INLINE PyObject *__Pyx_Coroutine_MethodReturn(PyObject* gen, PyObject *retval) { CYTHON_MAYBE_UNUSED_VAR(gen); if (unlikely(!retval)) { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign if (!__Pyx_PyErr_Occurred()) { PyObject *exc = PyExc_StopIteration; #ifdef __Pyx_AsyncGen_USED if (__Pyx_AsyncGen_CheckExact(gen)) exc = __Pyx_PyExc_StopAsyncIteration; #endif __Pyx_PyErr_SetNone(exc); } } return retval; } #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03030000 && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3) static CYTHON_INLINE PyObject *__Pyx_PyGen_Send(PyGenObject *gen, PyObject *arg) { #if PY_VERSION_HEX <= 0x030A00A1 return _PyGen_Send(gen, arg); #else PyObject *result; if (PyIter_Send((PyObject*)gen, arg ? arg : Py_None, &result) == PYGEN_RETURN) { if (PyAsyncGen_CheckExact(gen)) { assert(result == Py_None); PyErr_SetNone(PyExc_StopAsyncIteration); } else if (result == Py_None) { PyErr_SetNone(PyExc_StopIteration); } else { _PyGen_SetStopIterationValue(result); } Py_CLEAR(result); } return result; #endif } #endif static CYTHON_INLINE PyObject *__Pyx_Coroutine_FinishDelegation(__pyx_CoroutineObject *gen) { PyObject *ret; PyObject *val = NULL; __Pyx_Coroutine_Undelegate(gen); __Pyx_PyGen__FetchStopIterationValue(__Pyx_PyThreadState_Current, &val); ret = __Pyx_Coroutine_SendEx(gen, val, 0); Py_XDECREF(val); return ret; } static PyObject *__Pyx_Coroutine_Send(PyObject *self, PyObject *value) { PyObject *retval; __pyx_CoroutineObject *gen = (__pyx_CoroutineObject*) self; PyObject *yf = gen->yieldfrom; if (unlikely(gen->is_running)) return __Pyx_Coroutine_AlreadyRunningError(gen); if (yf) { PyObject *ret; gen->is_running = 1; #ifdef __Pyx_Generator_USED if (__Pyx_Generator_CheckExact(yf)) { ret = __Pyx_Coroutine_Send(yf, value); } else #endif #ifdef __Pyx_Coroutine_USED if (__Pyx_Coroutine_Check(yf)) { ret = __Pyx_Coroutine_Send(yf, value); } else #endif #ifdef __Pyx_AsyncGen_USED if (__pyx_PyAsyncGenASend_CheckExact(yf)) { ret = __Pyx_async_gen_asend_send(yf, value); } else #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03030000 && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3) if (PyGen_CheckExact(yf)) { ret = __Pyx_PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value); } else #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03050000 && defined(PyCoro_CheckExact) && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3) if (PyCoro_CheckExact(yf)) { ret = __Pyx_PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value); } else #endif { if (value == Py_None) ret = __Pyx_PyObject_GetIterNextFunc(yf)(yf); else ret = __Pyx_PyObject_CallMethod1(yf, __pyx_n_s_send, value); } gen->is_running = 0; if (likely(ret)) { return ret; } retval = __Pyx_Coroutine_FinishDelegation(gen); } else { retval = __Pyx_Coroutine_SendEx(gen, value, 0); } return __Pyx_Coroutine_MethodReturn(self, retval); } static int __Pyx_Coroutine_CloseIter(__pyx_CoroutineObject *gen, PyObject *yf) { PyObject *retval = NULL; int err = 0; #ifdef __Pyx_Generator_USED if (__Pyx_Generator_CheckExact(yf)) { retval = __Pyx_Coroutine_Close(yf); if (!retval) return -1; } else #endif #ifdef __Pyx_Coroutine_USED if (__Pyx_Coroutine_Check(yf)) { retval = __Pyx_Coroutine_Close(yf); if (!retval) return -1; } else if (__Pyx_CoroutineAwait_CheckExact(yf)) { retval = __Pyx_CoroutineAwait_Close((__pyx_CoroutineAwaitObject*)yf, NULL); if (!retval) return -1; } else #endif #ifdef __Pyx_AsyncGen_USED if (__pyx_PyAsyncGenASend_CheckExact(yf)) { retval = __Pyx_async_gen_asend_close(yf, NULL); } else if (__pyx_PyAsyncGenAThrow_CheckExact(yf)) { retval = __Pyx_async_gen_athrow_close(yf, NULL); } else #endif { PyObject *meth; gen->is_running = 1; meth = __Pyx_PyObject_GetAttrStrNoError(yf, __pyx_n_s_close); if (unlikely(!meth)) { if (unlikely(PyErr_Occurred())) { PyErr_WriteUnraisable(yf); } } else { retval = __Pyx_PyObject_CallNoArg(meth); Py_DECREF(meth); if (unlikely(!retval)) err = -1; } gen->is_running = 0; } Py_XDECREF(retval); return err; } static PyObject *__Pyx_Generator_Next(PyObject *self) { __pyx_CoroutineObject *gen = (__pyx_CoroutineObject*) self; PyObject *yf = gen->yieldfrom; if (unlikely(gen->is_running)) return __Pyx_Coroutine_AlreadyRunningError(gen); if (yf) { PyObject *ret; gen->is_running = 1; #ifdef __Pyx_Generator_USED if (__Pyx_Generator_CheckExact(yf)) { ret = __Pyx_Generator_Next(yf); } else #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03030000 && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3) if (PyGen_CheckExact(yf)) { ret = __Pyx_PyGen_Send((PyGenObject*)yf, NULL); } else #endif #ifdef __Pyx_Coroutine_USED if (__Pyx_Coroutine_Check(yf)) { ret = __Pyx_Coroutine_Send(yf, Py_None); } else #endif ret = __Pyx_PyObject_GetIterNextFunc(yf)(yf); gen->is_running = 0; if (likely(ret)) { return ret; } return __Pyx_Coroutine_FinishDelegation(gen); } return __Pyx_Coroutine_SendEx(gen, Py_None, 0); } static PyObject *__Pyx_Coroutine_Close_Method(PyObject *self, PyObject *arg) { CYTHON_UNUSED_VAR(arg); return __Pyx_Coroutine_Close(self); } static PyObject *__Pyx_Coroutine_Close(PyObject *self) { __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self; PyObject *retval, *raised_exception; PyObject *yf = gen->yieldfrom; int err = 0; if (unlikely(gen->is_running)) return __Pyx_Coroutine_AlreadyRunningError(gen); if (yf) { Py_INCREF(yf); err = __Pyx_Coroutine_CloseIter(gen, yf); __Pyx_Coroutine_Undelegate(gen); Py_DECREF(yf); } if (err == 0) PyErr_SetNone(PyExc_GeneratorExit); retval = __Pyx_Coroutine_SendEx(gen, NULL, 1); if (unlikely(retval)) { const char *msg; Py_DECREF(retval); if ((0)) { #ifdef __Pyx_Coroutine_USED } else if (__Pyx_Coroutine_Check(self)) { msg = "coroutine ignored GeneratorExit"; #endif #ifdef __Pyx_AsyncGen_USED } else if (__Pyx_AsyncGen_CheckExact(self)) { #if PY_VERSION_HEX < 0x03060000 msg = "async generator ignored GeneratorExit - might require Python 3.6+ finalisation (PEP 525)"; #else msg = "async generator ignored GeneratorExit"; #endif #endif } else { msg = "generator ignored GeneratorExit"; } PyErr_SetString(PyExc_RuntimeError, msg); return NULL; } raised_exception = PyErr_Occurred(); if (likely(!raised_exception || __Pyx_PyErr_GivenExceptionMatches2(raised_exception, PyExc_GeneratorExit, PyExc_StopIteration))) { if (raised_exception) PyErr_Clear(); Py_INCREF(Py_None); return Py_None; } return NULL; } static PyObject *__Pyx__Coroutine_Throw(PyObject *self, PyObject *typ, PyObject *val, PyObject *tb, PyObject *args, int close_on_genexit) { __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self; PyObject *yf = gen->yieldfrom; if (unlikely(gen->is_running)) return __Pyx_Coroutine_AlreadyRunningError(gen); if (yf) { PyObject *ret; Py_INCREF(yf); if (__Pyx_PyErr_GivenExceptionMatches(typ, PyExc_GeneratorExit) && close_on_genexit) { int err = __Pyx_Coroutine_CloseIter(gen, yf); Py_DECREF(yf); __Pyx_Coroutine_Undelegate(gen); if (err < 0) return __Pyx_Coroutine_MethodReturn(self, __Pyx_Coroutine_SendEx(gen, NULL, 0)); goto throw_here; } gen->is_running = 1; if (0 #ifdef __Pyx_Generator_USED || __Pyx_Generator_CheckExact(yf) #endif #ifdef __Pyx_Coroutine_USED || __Pyx_Coroutine_Check(yf) #endif ) { ret = __Pyx__Coroutine_Throw(yf, typ, val, tb, args, close_on_genexit); #ifdef __Pyx_Coroutine_USED } else if (__Pyx_CoroutineAwait_CheckExact(yf)) { ret = __Pyx__Coroutine_Throw(((__pyx_CoroutineAwaitObject*)yf)->coroutine, typ, val, tb, args, close_on_genexit); #endif } else { PyObject *meth = __Pyx_PyObject_GetAttrStrNoError(yf, __pyx_n_s_throw); if (unlikely(!meth)) { Py_DECREF(yf); if (unlikely(PyErr_Occurred())) { gen->is_running = 0; return NULL; } __Pyx_Coroutine_Undelegate(gen); gen->is_running = 0; goto throw_here; } if (likely(args)) { ret = __Pyx_PyObject_Call(meth, args, NULL); } else { PyObject *cargs[4] = {NULL, typ, val, tb}; ret = __Pyx_PyObject_FastCall(meth, cargs+1, 3 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET); } Py_DECREF(meth); } gen->is_running = 0; Py_DECREF(yf); if (!ret) { ret = __Pyx_Coroutine_FinishDelegation(gen); } return __Pyx_Coroutine_MethodReturn(self, ret); } throw_here: __Pyx_Raise(typ, val, tb, NULL); return __Pyx_Coroutine_MethodReturn(self, __Pyx_Coroutine_SendEx(gen, NULL, 0)); } static PyObject *__Pyx_Coroutine_Throw(PyObject *self, PyObject *args) { PyObject *typ; PyObject *val = NULL; PyObject *tb = NULL; if (unlikely(!PyArg_UnpackTuple(args, (char *)"throw", 1, 3, &typ, &val, &tb))) return NULL; return __Pyx__Coroutine_Throw(self, typ, val, tb, args, 1); } static CYTHON_INLINE int __Pyx_Coroutine_traverse_excstate(__Pyx_ExcInfoStruct *exc_state, visitproc visit, void *arg) { Py_VISIT(exc_state->exc_type); Py_VISIT(exc_state->exc_value); Py_VISIT(exc_state->exc_traceback); return 0; } static int __Pyx_Coroutine_traverse(__pyx_CoroutineObject *gen, visitproc visit, void *arg) { Py_VISIT(gen->closure); Py_VISIT(gen->classobj); Py_VISIT(gen->yieldfrom); return __Pyx_Coroutine_traverse_excstate(&gen->gi_exc_state, visit, arg); } static int __Pyx_Coroutine_clear(PyObject *self) { __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self; Py_CLEAR(gen->closure); Py_CLEAR(gen->classobj); Py_CLEAR(gen->yieldfrom); __Pyx_Coroutine_ExceptionClear(&gen->gi_exc_state); #ifdef __Pyx_AsyncGen_USED if (__Pyx_AsyncGen_CheckExact(self)) { Py_CLEAR(((__pyx_PyAsyncGenObject*)gen)->ag_finalizer); } #endif Py_CLEAR(gen->gi_code); Py_CLEAR(gen->gi_frame); Py_CLEAR(gen->gi_name); Py_CLEAR(gen->gi_qualname); Py_CLEAR(gen->gi_modulename); return 0; } static void __Pyx_Coroutine_dealloc(PyObject *self) { __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self; PyObject_GC_UnTrack(gen); if (gen->gi_weakreflist != NULL) PyObject_ClearWeakRefs(self); if (gen->resume_label >= 0) { PyObject_GC_Track(self); #if PY_VERSION_HEX >= 0x030400a1 && CYTHON_USE_TP_FINALIZE if (unlikely(PyObject_CallFinalizerFromDealloc(self))) #else Py_TYPE(gen)->tp_del(self); if (unlikely(Py_REFCNT(self) > 0)) #endif { return; } PyObject_GC_UnTrack(self); } #ifdef __Pyx_AsyncGen_USED if (__Pyx_AsyncGen_CheckExact(self)) { /* We have to handle this case for asynchronous generators right here, because this code has to be between UNTRACK and GC_Del. */ Py_CLEAR(((__pyx_PyAsyncGenObject*)self)->ag_finalizer); } #endif __Pyx_Coroutine_clear(self); __Pyx_PyHeapTypeObject_GC_Del(gen); } static void __Pyx_Coroutine_del(PyObject *self) { PyObject *error_type, *error_value, *error_traceback; __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self; __Pyx_PyThreadState_declare if (gen->resume_label < 0) { return; } #if !CYTHON_USE_TP_FINALIZE assert(self->ob_refcnt == 0); __Pyx_SET_REFCNT(self, 1); #endif __Pyx_PyThreadState_assign __Pyx_ErrFetch(&error_type, &error_value, &error_traceback); #ifdef __Pyx_AsyncGen_USED if (__Pyx_AsyncGen_CheckExact(self)) { __pyx_PyAsyncGenObject *agen = (__pyx_PyAsyncGenObject*)self; PyObject *finalizer = agen->ag_finalizer; if (finalizer && !agen->ag_closed) { PyObject *res = __Pyx_PyObject_CallOneArg(finalizer, self); if (unlikely(!res)) { PyErr_WriteUnraisable(self); } else { Py_DECREF(res); } __Pyx_ErrRestore(error_type, error_value, error_traceback); return; } } #endif if (unlikely(gen->resume_label == 0 && !error_value)) { #ifdef __Pyx_Coroutine_USED #ifdef __Pyx_Generator_USED if (!__Pyx_Generator_CheckExact(self)) #endif { PyObject_GC_UnTrack(self); #if PY_MAJOR_VERSION >= 3 || defined(PyErr_WarnFormat) if (unlikely(PyErr_WarnFormat(PyExc_RuntimeWarning, 1, "coroutine '%.50S' was never awaited", gen->gi_qualname) < 0)) PyErr_WriteUnraisable(self); #else {PyObject *msg; char *cmsg; #if CYTHON_COMPILING_IN_PYPY msg = NULL; cmsg = (char*) "coroutine was never awaited"; #else char *cname; PyObject *qualname; qualname = gen->gi_qualname; cname = PyString_AS_STRING(qualname); msg = PyString_FromFormat("coroutine '%.50s' was never awaited", cname); if (unlikely(!msg)) { PyErr_Clear(); cmsg = (char*) "coroutine was never awaited"; } else { cmsg = PyString_AS_STRING(msg); } #endif if (unlikely(PyErr_WarnEx(PyExc_RuntimeWarning, cmsg, 1) < 0)) PyErr_WriteUnraisable(self); Py_XDECREF(msg);} #endif PyObject_GC_Track(self); } #endif } else { PyObject *res = __Pyx_Coroutine_Close(self); if (unlikely(!res)) { if (PyErr_Occurred()) PyErr_WriteUnraisable(self); } else { Py_DECREF(res); } } __Pyx_ErrRestore(error_type, error_value, error_traceback); #if !CYTHON_USE_TP_FINALIZE assert(Py_REFCNT(self) > 0); if (likely(--self->ob_refcnt == 0)) { return; } { Py_ssize_t refcnt = Py_REFCNT(self); _Py_NewReference(self); __Pyx_SET_REFCNT(self, refcnt); } #if CYTHON_COMPILING_IN_CPYTHON assert(PyType_IS_GC(Py_TYPE(self)) && _Py_AS_GC(self)->gc.gc_refs != _PyGC_REFS_UNTRACKED); _Py_DEC_REFTOTAL; #endif #ifdef COUNT_ALLOCS --Py_TYPE(self)->tp_frees; --Py_TYPE(self)->tp_allocs; #endif #endif } static PyObject * __Pyx_Coroutine_get_name(__pyx_CoroutineObject *self, void *context) { PyObject *name = self->gi_name; CYTHON_UNUSED_VAR(context); if (unlikely(!name)) name = Py_None; Py_INCREF(name); return name; } static int __Pyx_Coroutine_set_name(__pyx_CoroutineObject *self, PyObject *value, void *context) { CYTHON_UNUSED_VAR(context); #if PY_MAJOR_VERSION >= 3 if (unlikely(value == NULL || !PyUnicode_Check(value))) #else if (unlikely(value == NULL || !PyString_Check(value))) #endif { PyErr_SetString(PyExc_TypeError, "__name__ must be set to a string object"); return -1; } Py_INCREF(value); __Pyx_Py_XDECREF_SET(self->gi_name, value); return 0; } static PyObject * __Pyx_Coroutine_get_qualname(__pyx_CoroutineObject *self, void *context) { PyObject *name = self->gi_qualname; CYTHON_UNUSED_VAR(context); if (unlikely(!name)) name = Py_None; Py_INCREF(name); return name; } static int __Pyx_Coroutine_set_qualname(__pyx_CoroutineObject *self, PyObject *value, void *context) { CYTHON_UNUSED_VAR(context); #if PY_MAJOR_VERSION >= 3 if (unlikely(value == NULL || !PyUnicode_Check(value))) #else if (unlikely(value == NULL || !PyString_Check(value))) #endif { PyErr_SetString(PyExc_TypeError, "__qualname__ must be set to a string object"); return -1; } Py_INCREF(value); __Pyx_Py_XDECREF_SET(self->gi_qualname, value); return 0; } static PyObject * __Pyx_Coroutine_get_frame(__pyx_CoroutineObject *self, void *context) { PyObject *frame = self->gi_frame; CYTHON_UNUSED_VAR(context); if (!frame) { if (unlikely(!self->gi_code)) { Py_RETURN_NONE; } frame = (PyObject *) PyFrame_New( PyThreadState_Get(), /*PyThreadState *tstate,*/ (PyCodeObject*) self->gi_code, /*PyCodeObject *code,*/ __pyx_d, /*PyObject *globals,*/ 0 /*PyObject *locals*/ ); if (unlikely(!frame)) return NULL; self->gi_frame = frame; } Py_INCREF(frame); return frame; } static __pyx_CoroutineObject *__Pyx__Coroutine_New( PyTypeObject* type, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure, PyObject *name, PyObject *qualname, PyObject *module_name) { __pyx_CoroutineObject *gen = PyObject_GC_New(__pyx_CoroutineObject, type); if (unlikely(!gen)) return NULL; return __Pyx__Coroutine_NewInit(gen, body, code, closure, name, qualname, module_name); } static __pyx_CoroutineObject *__Pyx__Coroutine_NewInit( __pyx_CoroutineObject *gen, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure, PyObject *name, PyObject *qualname, PyObject *module_name) { gen->body = body; gen->closure = closure; Py_XINCREF(closure); gen->is_running = 0; gen->resume_label = 0; gen->classobj = NULL; gen->yieldfrom = NULL; gen->gi_exc_state.exc_type = NULL; gen->gi_exc_state.exc_value = NULL; gen->gi_exc_state.exc_traceback = NULL; #if CYTHON_USE_EXC_INFO_STACK gen->gi_exc_state.previous_item = NULL; #endif gen->gi_weakreflist = NULL; Py_XINCREF(qualname); gen->gi_qualname = qualname; Py_XINCREF(name); gen->gi_name = name; Py_XINCREF(module_name); gen->gi_modulename = module_name; Py_XINCREF(code); gen->gi_code = code; gen->gi_frame = NULL; PyObject_GC_Track(gen); return gen; } /* PatchModuleWithCoroutine */ static PyObject* __Pyx_Coroutine_patch_module(PyObject* module, const char* py_code) { #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) int result; PyObject *globals, *result_obj; globals = PyDict_New(); if (unlikely(!globals)) goto ignore; result = PyDict_SetItemString(globals, "_cython_coroutine_type", #ifdef __Pyx_Coroutine_USED (PyObject*)__pyx_CoroutineType); #else Py_None); #endif if (unlikely(result < 0)) goto ignore; result = PyDict_SetItemString(globals, "_cython_generator_type", #ifdef __Pyx_Generator_USED (PyObject*)__pyx_GeneratorType); #else Py_None); #endif if (unlikely(result < 0)) goto ignore; if (unlikely(PyDict_SetItemString(globals, "_module", module) < 0)) goto ignore; if (unlikely(PyDict_SetItemString(globals, "__builtins__", __pyx_b) < 0)) goto ignore; result_obj = PyRun_String(py_code, Py_file_input, globals, globals); if (unlikely(!result_obj)) goto ignore; Py_DECREF(result_obj); Py_DECREF(globals); return module; ignore: Py_XDECREF(globals); PyErr_WriteUnraisable(module); if (unlikely(PyErr_WarnEx(PyExc_RuntimeWarning, "Cython module failed to patch module with custom type", 1) < 0)) { Py_DECREF(module); module = NULL; } #else py_code++; #endif return module; } /* PatchGeneratorABC */ #ifndef CYTHON_REGISTER_ABCS #define CYTHON_REGISTER_ABCS 1 #endif #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) static PyObject* __Pyx_patch_abc_module(PyObject *module); static PyObject* __Pyx_patch_abc_module(PyObject *module) { module = __Pyx_Coroutine_patch_module( module, "" "if _cython_generator_type is not None:\n" " try: Generator = _module.Generator\n" " except AttributeError: pass\n" " else: Generator.register(_cython_generator_type)\n" "if _cython_coroutine_type is not None:\n" " try: Coroutine = _module.Coroutine\n" " except AttributeError: pass\n" " else: Coroutine.register(_cython_coroutine_type)\n" ); return module; } #endif static int __Pyx_patch_abc(void) { #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) static int abc_patched = 0; if (CYTHON_REGISTER_ABCS && !abc_patched) { PyObject *module; module = PyImport_ImportModule((PY_MAJOR_VERSION >= 3) ? "collections.abc" : "collections"); if (unlikely(!module)) { PyErr_WriteUnraisable(NULL); if (unlikely(PyErr_WarnEx(PyExc_RuntimeWarning, ((PY_MAJOR_VERSION >= 3) ? "Cython module failed to register with collections.abc module" : "Cython module failed to register with collections module"), 1) < 0)) { return -1; } } else { module = __Pyx_patch_abc_module(module); abc_patched = 1; if (unlikely(!module)) return -1; Py_DECREF(module); } module = PyImport_ImportModule("backports_abc"); if (module) { module = __Pyx_patch_abc_module(module); Py_XDECREF(module); } if (!module) { PyErr_Clear(); } } #else if ((0)) __Pyx_Coroutine_patch_module(NULL, NULL); #endif return 0; } /* Generator */ static PyMethodDef __pyx_Generator_methods[] = { {"send", (PyCFunction) __Pyx_Coroutine_Send, METH_O, (char*) PyDoc_STR("send(arg) -> send 'arg' into generator,\nreturn next yielded value or raise StopIteration.")}, {"throw", (PyCFunction) __Pyx_Coroutine_Throw, METH_VARARGS, (char*) PyDoc_STR("throw(typ[,val[,tb]]) -> raise exception in generator,\nreturn next yielded value or raise StopIteration.")}, {"close", (PyCFunction) __Pyx_Coroutine_Close_Method, METH_NOARGS, (char*) PyDoc_STR("close() -> raise GeneratorExit inside generator.")}, {0, 0, 0, 0} }; static PyMemberDef __pyx_Generator_memberlist[] = { {(char *) "gi_running", T_BOOL, offsetof(__pyx_CoroutineObject, is_running), READONLY, NULL}, {(char*) "gi_yieldfrom", T_OBJECT, offsetof(__pyx_CoroutineObject, yieldfrom), READONLY, (char*) PyDoc_STR("object being iterated by 'yield from', or None")}, {(char*) "gi_code", T_OBJECT, offsetof(__pyx_CoroutineObject, gi_code), READONLY, NULL}, {(char *) "__module__", T_OBJECT, offsetof(__pyx_CoroutineObject, gi_modulename), 0, 0}, #if CYTHON_USE_TYPE_SPECS {(char *) "__weaklistoffset__", T_PYSSIZET, offsetof(__pyx_CoroutineObject, gi_weakreflist), READONLY, 0}, #endif {0, 0, 0, 0, 0} }; static PyGetSetDef __pyx_Generator_getsets[] = { {(char *) "__name__", (getter)__Pyx_Coroutine_get_name, (setter)__Pyx_Coroutine_set_name, (char*) PyDoc_STR("name of the generator"), 0}, {(char *) "__qualname__", (getter)__Pyx_Coroutine_get_qualname, (setter)__Pyx_Coroutine_set_qualname, (char*) PyDoc_STR("qualified name of the generator"), 0}, {(char *) "gi_frame", (getter)__Pyx_Coroutine_get_frame, NULL, (char*) PyDoc_STR("Frame of the generator"), 0}, {0, 0, 0, 0, 0} }; #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_GeneratorType_slots[] = { {Py_tp_dealloc, (void *)__Pyx_Coroutine_dealloc}, {Py_tp_traverse, (void *)__Pyx_Coroutine_traverse}, {Py_tp_iter, (void *)PyObject_SelfIter}, {Py_tp_iternext, (void *)__Pyx_Generator_Next}, {Py_tp_methods, (void *)__pyx_Generator_methods}, {Py_tp_members, (void *)__pyx_Generator_memberlist}, {Py_tp_getset, (void *)__pyx_Generator_getsets}, {Py_tp_getattro, (void *) __Pyx_PyObject_GenericGetAttrNoDict}, #if CYTHON_USE_TP_FINALIZE {Py_tp_finalize, (void *)__Pyx_Coroutine_del}, #endif {0, 0}, }; static PyType_Spec __pyx_GeneratorType_spec = { __PYX_TYPE_MODULE_PREFIX "generator", sizeof(__pyx_CoroutineObject), 0, Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_HAVE_FINALIZE, __pyx_GeneratorType_slots }; #else static PyTypeObject __pyx_GeneratorType_type = { PyVarObject_HEAD_INIT(0, 0) __PYX_TYPE_MODULE_PREFIX "generator", sizeof(__pyx_CoroutineObject), 0, (destructor) __Pyx_Coroutine_dealloc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_HAVE_FINALIZE, 0, (traverseproc) __Pyx_Coroutine_traverse, 0, 0, offsetof(__pyx_CoroutineObject, gi_weakreflist), 0, (iternextfunc) __Pyx_Generator_Next, __pyx_Generator_methods, __pyx_Generator_memberlist, __pyx_Generator_getsets, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, #if CYTHON_USE_TP_FINALIZE 0, #else __Pyx_Coroutine_del, #endif 0, #if CYTHON_USE_TP_FINALIZE __Pyx_Coroutine_del, #elif PY_VERSION_HEX >= 0x030400a1 0, #endif #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) 0, #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 0, #endif }; #endif static int __pyx_Generator_init(PyObject *module) { #if CYTHON_USE_TYPE_SPECS __pyx_GeneratorType = __Pyx_FetchCommonTypeFromSpec(module, &__pyx_GeneratorType_spec, NULL); #else (void) module; __pyx_GeneratorType_type.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; __pyx_GeneratorType_type.tp_iter = PyObject_SelfIter; __pyx_GeneratorType = __Pyx_FetchCommonType(&__pyx_GeneratorType_type); #endif if (unlikely(!__pyx_GeneratorType)) { return -1; } return 0; } /* CheckBinaryVersion */ static int __Pyx_check_binary_version(void) { char ctversion[4], rtversion[4]; PyOS_snprintf(ctversion, 4, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION); PyOS_snprintf(rtversion, 4, "%s", Py_GetVersion()); if (ctversion[0] != rtversion[0] || ctversion[2] != rtversion[2]) { char message[200]; PyOS_snprintf(message, sizeof(message), "compile time version %s of module '%.100s' " "does not match runtime version %s", ctversion, __Pyx_MODULE_NAME, rtversion); return PyErr_WarnEx(NULL, message, 1); } return 0; } /* InitStrings */ #if PY_MAJOR_VERSION >= 3 static int __Pyx_InitString(__Pyx_StringTabEntry t, PyObject **str) { if (t.is_unicode | t.is_str) { if (t.intern) { *str = PyUnicode_InternFromString(t.s); } else if (t.encoding) { *str = PyUnicode_Decode(t.s, t.n - 1, t.encoding, NULL); } else { *str = PyUnicode_FromStringAndSize(t.s, t.n - 1); } } else { *str = PyBytes_FromStringAndSize(t.s, t.n - 1); } if (!*str) return -1; if (PyObject_Hash(*str) == -1) return -1; return 0; } #endif #if !CYTHON_COMPILING_IN_LIMITED_API static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) { while (t->p) { #if PY_MAJOR_VERSION >= 3 __Pyx_InitString(*t, t->p); #else if (t->is_unicode) { *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL); } else if (t->intern) { *t->p = PyString_InternFromString(t->s); } else { *t->p = PyString_FromStringAndSize(t->s, t->n - 1); } if (!*t->p) return -1; if (PyObject_Hash(*t->p) == -1) return -1; #endif ++t; } return 0; } #endif static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) { return __Pyx_PyUnicode_FromStringAndSize(c_str, (Py_ssize_t)strlen(c_str)); } static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject* o) { Py_ssize_t ignore; return __Pyx_PyObject_AsStringAndSize(o, &ignore); } #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT #if !CYTHON_PEP393_ENABLED static const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) { char* defenc_c; PyObject* defenc = _PyUnicode_AsDefaultEncodedString(o, NULL); if (!defenc) return NULL; defenc_c = PyBytes_AS_STRING(defenc); #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII { char* end = defenc_c + PyBytes_GET_SIZE(defenc); char* c; for (c = defenc_c; c < end; c++) { if ((unsigned char) (*c) >= 128) { PyUnicode_AsASCIIString(o); return NULL; } } } #endif *length = PyBytes_GET_SIZE(defenc); return defenc_c; } #else static CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) { if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL; #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII if (likely(PyUnicode_IS_ASCII(o))) { *length = PyUnicode_GET_LENGTH(o); return PyUnicode_AsUTF8(o); } else { PyUnicode_AsASCIIString(o); return NULL; } #else return PyUnicode_AsUTF8AndSize(o, length); #endif } #endif #endif static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) { #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT if ( #if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII __Pyx_sys_getdefaultencoding_not_ascii && #endif PyUnicode_Check(o)) { return __Pyx_PyUnicode_AsStringAndSize(o, length); } else #endif #if (!CYTHON_COMPILING_IN_PYPY && !CYTHON_COMPILING_IN_LIMITED_API) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE)) if (PyByteArray_Check(o)) { *length = PyByteArray_GET_SIZE(o); return PyByteArray_AS_STRING(o); } else #endif { char* result; int r = PyBytes_AsStringAndSize(o, &result, length); if (unlikely(r < 0)) { return NULL; } else { return result; } } } static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) { int is_true = x == Py_True; if (is_true | (x == Py_False) | (x == Py_None)) return is_true; else return PyObject_IsTrue(x); } static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject* x) { int retval; if (unlikely(!x)) return -1; retval = __Pyx_PyObject_IsTrue(x); Py_DECREF(x); return retval; } static PyObject* __Pyx_PyNumber_IntOrLongWrongResultType(PyObject* result, const char* type_name) { __Pyx_TypeName result_type_name = __Pyx_PyType_GetName(Py_TYPE(result)); #if PY_MAJOR_VERSION >= 3 if (PyLong_Check(result)) { if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1, "__int__ returned non-int (type " __Pyx_FMT_TYPENAME "). " "The ability to return an instance of a strict subclass of int is deprecated, " "and may be removed in a future version of Python.", result_type_name)) { __Pyx_DECREF_TypeName(result_type_name); Py_DECREF(result); return NULL; } __Pyx_DECREF_TypeName(result_type_name); return result; } #endif PyErr_Format(PyExc_TypeError, "__%.4s__ returned non-%.4s (type " __Pyx_FMT_TYPENAME ")", type_name, type_name, result_type_name); __Pyx_DECREF_TypeName(result_type_name); Py_DECREF(result); return NULL; } static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x) { #if CYTHON_USE_TYPE_SLOTS PyNumberMethods *m; #endif const char *name = NULL; PyObject *res = NULL; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x) || PyLong_Check(x))) #else if (likely(PyLong_Check(x))) #endif return __Pyx_NewRef(x); #if CYTHON_USE_TYPE_SLOTS m = Py_TYPE(x)->tp_as_number; #if PY_MAJOR_VERSION < 3 if (m && m->nb_int) { name = "int"; res = m->nb_int(x); } else if (m && m->nb_long) { name = "long"; res = m->nb_long(x); } #else if (likely(m && m->nb_int)) { name = "int"; res = m->nb_int(x); } #endif #else if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) { res = PyNumber_Int(x); } #endif if (likely(res)) { #if PY_MAJOR_VERSION < 3 if (unlikely(!PyInt_Check(res) && !PyLong_Check(res))) { #else if (unlikely(!PyLong_CheckExact(res))) { #endif return __Pyx_PyNumber_IntOrLongWrongResultType(res, name); } } else if (!PyErr_Occurred()) { PyErr_SetString(PyExc_TypeError, "an integer is required"); } return res; } static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { Py_ssize_t ival; PyObject *x; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_CheckExact(b))) { if (sizeof(Py_ssize_t) >= sizeof(long)) return PyInt_AS_LONG(b); else return PyInt_AsSsize_t(b); } #endif if (likely(PyLong_CheckExact(b))) { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)b)->ob_digit; const Py_ssize_t size = Py_SIZE(b); if (likely(__Pyx_sst_abs(size) <= 1)) { ival = likely(size) ? digits[0] : 0; if (size == -1) ival = -ival; return ival; } else { switch (size) { case 2: if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) { return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case -2: if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) { return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case 3: if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) { return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case -3: if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) { return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case 4: if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) { return (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case -4: if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) { return -(Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; } } #endif return PyLong_AsSsize_t(b); } x = PyNumber_Index(b); if (!x) return -1; ival = PyInt_AsSsize_t(x); Py_DECREF(x); return ival; } static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) { if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) { return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o); #if PY_MAJOR_VERSION < 3 } else if (likely(PyInt_CheckExact(o))) { return PyInt_AS_LONG(o); #endif } else { Py_ssize_t ival; PyObject *x; x = PyNumber_Index(o); if (!x) return -1; ival = PyInt_AsLong(x); Py_DECREF(x); return ival; } } static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); } static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) { return PyInt_FromSize_t(ival); } /* #### Code section: utility_code_pragmas_end ### */ #if _MSV_VER #pragma warning( pop ) #endif /* #### Code section: end ### */ #endif /* Py_PYTHON_H */