小编Fra*_*ter的帖子

如何禁用python警告

我正在处理代码,并使用warnings库抛出了很多(对我而言)无用的警告.阅读(/扫描)文档我只发现了一种禁用单个函数警告的方法.但我不想改变这么多的代码.

可能有旗帜python -no-warning foo.py吗?

你会推荐什么?

python suppress-warnings

350
推荐指数
11
解决办法
49万
查看次数

外部作用域中定义的阴影名称有多糟糕?

我刚刚切换到Pycharm,我很高兴它提供了所有警告和提示,以改进我的代码.除了这个我不明白的:

This inspection detects shadowing names defined in outer scopes.

我知道从外部作用域访问变量是不好的做法但是遮蔽外部作用域的问题是什么?

这是一个例子,Pycharm给了我警告信息:

data = [4, 5, 6]

def print_data(data): # <-- Warning: "Shadows 'data' from outer scope
    print data

print_data(data)
Run Code Online (Sandbox Code Playgroud)

python coding-style pycharm

185
推荐指数
6
解决办法
11万
查看次数

每个程序员应该了解的内存?

我想知道Ulrich Drepper 从2007年开始对每个程序员应该知道的内容有多少仍然有效.另外,我找不到比1.0更新的版本或勘误表.

optimization x86 memory-management cpu-architecture micro-optimization

145
推荐指数
3
解决办法
2万
查看次数

如何从命令行获取nvidia驱动程序版本?

为了调试CUDA代码和检查兼容性,我需要找出我安装的GPU的nvidia驱动程序版本.我找到了如何获得cuda版本?但这对我没有帮助.

linux cuda driver

92
推荐指数
6
解决办法
15万
查看次数

IPython的神奇%粘贴是如何工作的?

我想将已经缩进的Python代码/整个函数和类复制到IPython中.每次我尝试缩进都搞砸了,我得到以下错误信息:

IndentationError: unindent does not match any outer indentation level (<ipython-input-23-354f8c8be51b>, line 12)

If you want to paste code into IPython, try the %paste and %cpaste magic functions.

python ipython

91
推荐指数
4
解决办法
6万
查看次数

所有这些OpenCV Python接口有什么不同?

我应该使用哪些主要差异?

python opencv

85
推荐指数
1
解决办法
5万
查看次数

将2d numpy数组转换为列表列表

我使用外部模块(libsvm),它不支持numpy数组,只支持元组,列表和dicts.但是我的数据是2d numpy数组.我怎样才能将它转换为pythonic方式,又称没有循环.

>>> import numpy
>>> array = numpy.ones((2,4))
>>> data_list = list(array)
>>> data_list
[array([ 1.,  1.,  1.,  1.]), array([ 1.,  1.,  1.,  1.])]

>>> type(data_list[0])
<type 'numpy.ndarray'>  # <= what I don't want

# non pythonic way using for loop
>>> newdata=list()
>>> for line in data_list:
...     line = list(line)
...     newdata.append(line)
>>> type(newdata[0])
<type 'list'>  # <= what I want
Run Code Online (Sandbox Code Playgroud)

python arrays numpy list multidimensional-array

74
推荐指数
1
解决办法
7万
查看次数

Argparse:检查是否已传递任何参数

当没有给出参数时,我的脚本应该启动演示模式.我试过这个:

args = parser.parse_args()
if len(args) == 0:
    run_demo()
else:
    # evaluate args
Run Code Online (Sandbox Code Playgroud)

这给*** TypeError: object of type 'Namespace' has no len()作为args是没有列表.

我怎样才能达到我想要的目标?

python command-line-arguments argparse

46
推荐指数
5
解决办法
4万
查看次数

取消引用类型惩罚指针将破坏严格别名规则

我使用以下代码来从文件中读取数据,作为更大程序的一部分.

double data_read(FILE *stream,int code) {
        char data[8];
        switch(code) {
        case 0x08:
            return (unsigned char)fgetc(stream);
        case 0x09:
            return (signed char)fgetc(stream);
        case 0x0b:
            data[1] = fgetc(stream);
            data[0] = fgetc(stream);
            return *(short*)data;
        case 0x0c:
            for(int i=3;i>=0;i--)
                data[i] = fgetc(stream);
            return *(int*)data;
        case 0x0d:
            for(int i=3;i>=0;i--)
                data[i] = fgetc(stream);
            return *(float*)data;
        case 0x0e:
            for(int i=7;i>=0;i--)
                data[i] = fgetc(stream);
            return *(double*)data;
        }
        die("data read failed");
        return 1;
    }
Run Code Online (Sandbox Code Playgroud)

现在我被告知使用-O2,我得到以下gcc警告: warning: dereferencing type-punned pointer will break strict-aliasing rules

谷歌我找到了两个正交的答案:

VS

c optimization gcc pointers strict-aliasing

45
推荐指数
4
解决办法
8万
查看次数

关于全球和本地工作规模的问题

通过NVIDIA论坛搜索,我发现了这些问题,我也感兴趣,但在过去四天左右没有人回答过这些问题.你能帮我吗?

原论坛帖子

深入研究OpenCL阅读教程有些事情对我来说还不清楚.以下是关于本地和全球工作规模的问题集.

  1. 必须global_work_size小于CL_DEVICE_MAX_WORK_ITEM_SIZES?在我的机器上CL_DEVICE_MAX_WORK_ITEM_SIZES= 512,512,64.

  2. 是否CL_KERNEL_WORK_GROUP_SIZE推荐work_group_size使用内核?

    1. 或者这work_group_size是GPU允许的唯一?在我的机器上CL_KERNEL_WORK_GROUP_SIZE= 512
  3. 我是否需要分成工作组,或者我只能有一个,但没有指定local_work_size

    1. 当我只有一个工作组时,我需要注意什么?
  4. 什么CL_DEVICE_MAX_WORK_GROUP_SIZE意思?在我的机器上CL_DEVICE_MAX_WORK_GROUP_SIZE= 512,512,64

    1. 这是否意味着,我可以拥有一个与工作组一样大的工作组CL_DEVICE_MAX_WORK_ITEM_SIZES
  5. global_work_size要的除数CL_DEVICE_MAX_WORK_ITEM_SIZES?在我的代码global_work_size= 20.

opencl

45
推荐指数
1
解决办法
5万
查看次数