小编Chr*_*sso的帖子

为什么"_"并不总是在交互式shell中给我最后的结果

通常我_用来访问Python交互式shell中的最后一个结果.特别是为了快速将变量分配给结果,我认为以后可能会很重要.

我最近发现的是,如果我_在for循环中使用as作为一个值,我不能再用它_来引用最后的结果了.

例:

>>> for _ in range(10):
...   pass
...
>>> 120
120
>>> a=_
>>> a
9
>>> _
9
>>> del _ # Now I can use _ to reference the last result again
>>> 120
120
>>> a=_
>>> a
120
Run Code Online (Sandbox Code Playgroud)

如果我使用空白for循环,那么_在我删除它之前不能被认为是最后的结果,然后它可以工作.

如果我列出理解虽然它似乎仍然工作正常:

>>> [1 for _ in range(10)]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
>>> 120
120
>>> a=_
>>> a
120    
Run Code Online (Sandbox Code Playgroud)

所以我猜我的问题是为什么?为什么会这样?为什么它 …

python python-3.x

9
推荐指数
1
解决办法
208
查看次数

如何提取量化模型的权重以在硬件上使用?

编辑:附加一些代码以帮助生成类似的结果(附加在末尾)

我有一个非常小的模型,其架构[2, 3, 6]中的隐藏层使用 ReLU,它是用于多类分类的 softmax 激活。离线训练并静态量化到 qint8。我现在想做的是提取权重,以便我可以通过矩阵乘法/加法在其他硬件上使用它们。我遇到的问题是它似乎没有按预期运行。以 state_dict() 的 GraphModule 输出为例:

OrderedDict([('input_layer_input_scale_0', tensor(0.0039)),
             ('input_layer_input_zero_point_0', tensor(0)),
             ('input_layer.scale', tensor(0.0297)),
             ('input_layer.zero_point', tensor(0)),
             ('input_layer._packed_params.dtype', torch.qint8),
             ('input_layer._packed_params._packed_params',
              (tensor([[-0.1180,  0.1180],
                       [-0.2949, -0.5308],
                       [-3.3029, -7.5496]], size=(3, 2), dtype=torch.qint8,
                      quantization_scheme=torch.per_tensor_affine, scale=0.05898105353116989,
                      zero_point=0),
               Parameter containing:
               tensor([-0.4747, -0.3563,  7.7603], requires_grad=True))),
             ('out.scale', tensor(1.5963)),
             ('out.zero_point', tensor(243)),
             ('out._packed_params.dtype', torch.qint8),
             ('out._packed_params._packed_params',
              (tensor([[  0.4365,   0.4365, -55.4356],
                       [  0.4365,   0.0000,   1.3095],
                       [  0.4365,   0.0000, -13.9680],
                       [  0.4365,  -0.4365,   4.3650],
                       [  0.4365,   0.4365,  -3.0555],
                       [  0.4365,   0.0000,  -1.3095],
                       [  0.4365,   0.0000,   3.0555]], size=(7, 3), …
Run Code Online (Sandbox Code Playgroud)

python quantization deep-learning tensorflow pytorch

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

Cython 之间的差异,使用 Python.h 扩展 C/C++ 等

现在我有一个图像处理算法,在 Python 中大约有 100 行左右。使用numpy,PIL和大约需要 500 毫秒scipy。我希望让它更快,并且由于实际算法到目前为止似乎已经非常优化,我想知道是否使用不同的方法,例如Cython会改善时间。我相信我可以做几件不同的事情:

  1. 使用 Cython将 C 库的相关部分公开给 Python。
  2. 使用 Ctypes只用 C 编写所有内容,但仍然使用纯 Python(根本不倾向于这个)
  3. 在 C/C++ 中创建一个扩展模块,然后导入它并调用函数。我不确定我是否能够使用numpy这种方式。
  4. 创建一个 DLL并让 Python 加载它。这不会使用numpy或那些模块,但仍然非常有效。

我只是在这里寻找速度,而不是担心实施的难度。在这种情况下,是否有更好的选择,它们都是一样的,还是值得做?

python ctypes cython python-extensions

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

为什么当我使用“ is”而不是“ ==”时np.all返回错误的值?

因此,我在代码中找到了一个错误,可以复制以下内容。基本上我需要检查中的所有元素np.ndarray是否都不为0。

>>> a = np.ones((3,3))
>>> np.all(a == 0) == False
True
Run Code Online (Sandbox Code Playgroud)

好的,里面的所有值a都不为零。我知道我还可以做的np.all((a == 0) == False),而不是明确要求进行比较,以0,但我并没有在第一,这让我意识到有比较时的差异is,以==False情况。

>>> np.all(a == 0) is False
False
Run Code Online (Sandbox Code Playgroud)

我知道is应该比较如果对象指向相同的对象。但这是否意味着我返回的两个值False实际上并不指向相同的值False?我可能只是在想这个...

python numpy

3
推荐指数
1
解决办法
53
查看次数

如何在使用FXML设计的JavaFX中创建内部弹出窗口

我有一个FXML文件,我用它来允许用户输入请求.现在我只是把它放在一个新的阶段并且做到了Stage.show().我不希望它出现在一个新窗口中,表现得更像一个ContextMenu.

看看ContextMenu课程,似乎我不能根据FXML文件设置内容.有没有办法用ContextMenu或者Popup或其他一些我不知道的类来做到这一点?

javafx javafx-2 fxml javafx-8

1
推荐指数
1
解决办法
6137
查看次数

如何在C++ 11之前模拟trailing-return-type中的decltype?

如果我在C++ 11中有这样的话:

#include <iostream>

template <typename T1, typename T2>
auto add(T1 t1, T2 t2) -> decltype(t1 + t2)
{
    decltype(t1 + t2) val = t1 + t2;
    return val;
}

int main()
{
    double a = 12.5;
    int b = 4;
    std::cout << add(a, b) << std::endl; // prints 16.5
}
Run Code Online (Sandbox Code Playgroud)

我可以返回一个可以由编译器自动确定的类型.

由于我是C++的新手并且目前需要在C++ 98中实现类似的东西,有谁知道我会怎么做?

c++ c++11 c++98

0
推荐指数
1
解决办法
310
查看次数

将 MP4 转换为 WAV

我正在用 Java 创建一个小型音频播放器,可以很好地播放某些格式(例如 WAV)。我发现这是因为javax.sound不支持MP4。但根据我所读到的内容,从 MP4 转换为 WAV 是无损的,所以我相信这应该不会那么困难。我知道有很多第三方库可以做到这一点,但我对下载一个应该相当简单的东西不感兴趣。我研究了每个 ISO 的具体情况,试图了解数据是如何存储的,以便能够创建一个 ISO BufferedReader,并BufferedWritter查看是否可以手动转换它,但我无法找到我正在寻找的信息。在纯 Java 1.7.0 中执行此操作的方法是什么(我知道 JavaFX 有一个 MediaPlayer,但不幸的是我无法使用 1.8.0)。

或者如果有人知道我可以在哪里找到组成 MP4 和 WAV 的每个特定容器信息(例如标头大小/信息、数据、ACK/NACK 等)。

java audio audio-streaming audio-converter

0
推荐指数
1
解决办法
2538
查看次数

访问具有多个线程的只读字典

我有一个列表,大号和大字典,d包含键,ķ其中k是在一个特定密钥ķ.D [k]包含确定结果列表所需的一些信息.现在,我通过在每个值搜索ķ如果信息存在的价值给我,我追加k以大号.这是迭代的方式,但我希望我可以通过多线程加快速度.字典永远不会有更新.实现这个目标的好方法是什么?

python multithreading python-multithreading python-3.x

0
推荐指数
1
解决办法
625
查看次数