def create_filter_descriptor(arr, format=cudnn.CUDNN_TENSOR_NCHW): desc = Descriptor(cudnn.createFilterDescriptor(), cudnn.destroyFilterDescriptor) data_type = get_data_type(arr.dtype) if arr.ndim == 4: cudnn.setFilter4dDescriptor_v4(desc.value, data_type, format, *arr.shape) else: c_shape = _to_ctypes_array(arr.shape) cudnn.setFilterNdDescriptor_v4(desc.value, data_type, format, arr.ndim, c_shape.data) return desc
def create_filter_descriptor(arr, format=cudnn.CUDNN_TENSOR_NCHW): desc = Descriptor(cudnn.createFilterDescriptor(), cudnn.destroyFilterDescriptor) data_type = get_data_type(arr.dtype) if _cudnn_version >= 4000: if arr.ndim == 4: cudnn.setFilter4dDescriptor_v4(desc.value, data_type, format, *arr.shape) else: c_shape = _to_ctypes_array(arr.shape) cudnn.setFilterNdDescriptor_v4(desc.value, data_type, format, arr.ndim, c_shape.data) else: if arr.ndim == 4: cudnn.setFilter4dDescriptor_v3(desc.value, data_type, *arr.shape) else: c_shape = _to_ctypes_array(arr.shape) cudnn.setFilterNdDescriptor_v3(desc.value, data_type, arr.ndim, c_shape.data) return desc