小编zyx*_*xue的帖子

为什么 TypedDict 调用 update 方法时 mypy 没有通过

例子:

from typing import TypedDict

class MyType(TypedDict):
    a: int
    b: int

t = MyType(a=1, b=2)

t.update(b=3)
Run Code Online (Sandbox Code Playgroud)

mypy toy.py抱怨

toy.py:9:1: error: Unexpected keyword argument "b" for "update" of "TypedDict"
Found 1 error in 1 file (checked 1 source file)
Run Code Online (Sandbox Code Playgroud)

python type-hinting mypy

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

为什么GridSearchCV在scikit-learn中产生了如此多的线程

这是pstree我当前运行的GridSearch 的输出,我很想知道正在进行什么过程,还有一些我无法解释的东西.

 ??bash???perl???20*[bash???python???5*[python???31*[{python}]]]
 ?      ?                          ??11*[{python}]]
 ?      ??tee
 ??bash???pstree
Run Code Online (Sandbox Code Playgroud)

我删除了无关的东西.粗括号意味着线程.

  • perl的出现是因为我曾经parallel -j 20开始我的python工作.如您所见,20*确实显示有20个过程.
  • bash每个蟒过程的前处理是由于与水蟒虚拟环境的活化source activate venv.
  • 在每个python进程中,还有另外5个python进程(5*)生成.这是因为我指定n_jobs=5GridSearchCV.

我的理解在此结束.

问题:任何人都可以解释为什么还有另外11个python线程(11*[{python}])以及网格搜索,并且31*[{python}]在5个网格搜索作业中每个都会产生31个python线程()?

更新:添加了调用代码GridSearchCV

Cs = 10 ** np.arange(-2, 2, 0.1)
skf = StratifiedKFold(n_splits=10, shuffle=True, random_state=0)
clf = LogisticRegression()
gs = GridSearchCV(
    clf,
    param_grid={'C': Cs, 'penalty': ['l1'],
                'tol': [1e-10], 'solver': ['liblinear']},
    cv=skf,
    scoring='neg_log_loss',
    n_jobs=5,
    verbose=1,
    refit=True)
gs.fit(Xs, ys)
Run Code Online (Sandbox Code Playgroud)

更新(2017-09-27):

我在gist上包含了一个 …

python multithreading scikit-learn grid-search

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

读取文件时为什么会收到“分区值:[空行]”日志消息?

我正在使用Spark SQL读取csv,我也收到很多这样的消息:

...some.csv, range: 20971520-24311915, partition values: [empty row]
Run Code Online (Sandbox Code Playgroud)

为什么说它是空行?分区真的是空的吗?

apache-spark apache-spark-sql

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

`protoc` 和 `python -m grpc_tools.protoc` 之间的区别

要编译 Python 的 proto 文件,我可以

protoc -I=.--python_out=$DST_DIR sommem.proto
Run Code Online (Sandbox Code Playgroud)

基于https://developers.google.com/protocol-buffers/docs/pythontutorial

或者

python -m grpc_tools.protoc -I. --python_out=. --grpc_python_out=. some.proto
Run Code Online (Sandbox Code Playgroud)

基于https://grpc.io/docs/languages/python/basics/#generate-client-and-server-code

protoc我想知道和之间有什么区别python -m grpc_tools.protoc,更推荐使用哪一个来生成 python*_pb2.py[i]文件?

顺便说一句,它看起来protoc不支持--grpc_python_out

grpc grpc-python

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

patch.multiple 是否可以作为装饰器与 pytest 一起使用

我采用test_tmp.pyhttps://docs.python.org/3/library/unittest.mock.html#patch-multiple

from unittest.mock import DEFAULT, MagicMock, patch

thing = object()
other = object()

@patch.multiple('__main__', thing=DEFAULT, other=DEFAULT)
def test_function(thing, other):
    print(f'thing={thing}')
    print(f'other={other}')
    assert isinstance(thing, MagicMock)
    assert isinstance(other, MagicMock)

test_function()
Run Code Online (Sandbox Code Playgroud)

它与 python 一起运行

python test_tmp.py
thing=<MagicMock name='thing' id='4355085552'>
other=<MagicMock name='other' id='4355243312'>
Run Code Online (Sandbox Code Playgroud)

但它不适用于 pytest 并出现类似错误

pytest test_tmp.py
============================================================================================================= test session starts =============================================================================================================
platform darwin -- Python 3.8.2, pytest-5.4.3, py-1.9.0, pluggy-0.13.1
rootdir: /private/tmp
collected 0 items / 1 error

=================================================================================================================== ERRORS ====================================================================================================================
________________________________________________________________________________________________________ ERROR collecting test_tmp.py _________________________________________________________________________________________________________
test_tmp.py:13: in <module>
    test_function() …
Run Code Online (Sandbox Code Playgroud)

python pytest python-mock

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

vscode 启动的许多 rg 命令消耗了 99% 的 CPU

我正在一个非常大的 github 存储库中工作,假设它的结构是这样的

\n
project-root\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 project-1\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 subproject-a\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 subproject-others\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 project-2\n    \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 subproject-b\n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 subproject-others\n
Run Code Online (Sandbox Code Playgroud)\n

有很多项目,每个项目又包含很多子项目。我正在研究其中一个子项目(例如subproject-a)。当我在子项目(它是一个 python 子项目)中打开 vscode 时,我注意到它启动了许多rg如下命令,并且我的 CPU 使用率超过 99%。我想知道这些 rg 命令是关于什么的?他们只是在子项目中搜索内容,还是在包含数万个文件的整个 git 存储库中搜索内容?为什么他们要消耗这么多资源?请问我怎样才能避免这种情况?

\n
\n

/Applications/Visual Studio Code.app/Contents/Resources/app/node_modules.asar.unpacked/vscode-ripgrep/bin/rg --files --hidden --case-sensitive -g **/*.go/** -g **/*.go -g !**/.git -g !**/.svn -g !**/.hg -g !**/CVS -g !**/.DS_Store -g !**/.classpath -g !**/.factorypath -g !**/.project -g !**/.settings -g !**/node_modules -g !**/bower_components -g !**/*.code-search --no-ignore-parent --follow --quiet --no-config --no-ignore-global

\n
\n

python git visual-studio-code ripgrep

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

gsutil上的ResumableUploadAbortException

使用时我一直看到以下错误 gsutil

ResumableUploadAbortException: Upload complete with 6275 additional bytes left in stream
Run Code Online (Sandbox Code Playgroud)

命令很简单,就像

gsutil cp -r <source_path> gs://<target-bucket>/<target_path>
Run Code Online (Sandbox Code Playgroud)

里面有大约80个文件<source_path>.里面也有嵌套文件夹<source_path>.更改gsutil cpgsutil -m cp不有所作为.当我在python脚本中运行它和许多其他代码时,这个错误是可重现的.但是,当我在bash中单独运行命令时,它似乎没有任何问题.所以我想知道什么可能是ResumableUploadAbortException的原因,好吗?

调试输出的尾部 gsutil -D -m cp

total_bytes_transferred: 794750002
Total bytes copied=794750002, total elapsed time=7.932 secs (95.55 MiBps)
DEBUG: Exception stack trace:
    Traceback (most recent call last):
      File "/usr/lib/google-cloud-sdk/platform/gsutil/gslib/__main__.py", line 565, in _RunNamedCommandAndHandleExceptions
        parallel_operations, perf_trace_token=perf_trace_token)
      File "/usr/lib/google-cloud-sdk/platform/gsutil/gslib/command_runner.py", line 280, in RunNamedCommand
        return_code = command_inst.RunCommand()
      File "/usr/lib/google-cloud-sdk/platform/gsutil/gslib/commands/cp.py", line 998, in RunCommand
        self.op_failure_count, plural_str, …
Run Code Online (Sandbox Code Playgroud)

google-cloud-storage gsutil

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

如何在Cloud Dataproc中调整工作节点大小后更新spark配置

我有一个DataProc Spark集群.最初,主节点和2个工作节点的类型为n1-standard-4(4个vCPU,15.0 GB内存),然后我通过Web控制台将它们全部调整为n1-highmem-8(8个vCPU,52 GB内存).

我注意到两个工作节点没有被完全使用.特别是,第一个工作节点上只有2个执行程序,第二个工作节点上只有1个执行程序

spark.executor.cores 2
spark.executor.memory 4655m
Run Code Online (Sandbox Code Playgroud)

/usr/lib/spark/conf/spark-defaults.conf.我想spark.dynamicAllocation.enabled true,执行器的数量会自动增加.

此外,Web控制台的DataProc页面上的信息也不会自动更新.似乎DataProc仍然认为所有节点都是n1-standard-4.

我的问题是

  1. 为什么第一个工作节点上的执行器多于第二个?
  2. 为什么没有更多的执行器添加到每个节点?
  3. 理想情况下,如果火花配置需要更新,我希望整个群集得到充分利用,如何?

google-compute-engine apache-spark google-cloud-platform google-cloud-dataproc

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

在 PyTorch 中实现 Luong Attention

我正在尝试实施Luong 等人中描述的注意力2015 年在 PyTorch 中,但我无法让它工作。下面是我的代码,我现在只对“一般”关注案例感兴趣。我想知道我是否遗漏了任何明显的错误。它运行,但似乎没有学习。

class AttnDecoderRNN(nn.Module):
    def __init__(self, hidden_size, output_size, dropout_p=0.1):
        super(AttnDecoderRNN, self).__init__()
        self.hidden_size = hidden_size
        self.output_size = output_size
        self.dropout_p = dropout_p

        self.embedding = nn.Embedding(
            num_embeddings=self.output_size,
            embedding_dim=self.hidden_size
        )
        self.dropout = nn.Dropout(self.dropout_p)
        self.gru = nn.GRU(self.hidden_size, self.hidden_size)
        self.attn = nn.Linear(self.hidden_size, self.hidden_size)
        # hc: [hidden, context]
        self.Whc = nn.Linear(self.hidden_size * 2, self.hidden_size)
        # s: softmax
        self.Ws = nn.Linear(self.hidden_size, self.output_size)

    def forward(self, input, hidden, encoder_outputs):
        embedded = self.embedding(input).view(1, 1, -1)
        embedded = self.dropout(embedded)

        gru_out, hidden = self.gru(embedded, hidden) …
Run Code Online (Sandbox Code Playgroud)

attention-model pytorch seq2seq

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

如何找到 vscode 到底使用的是哪个 isort

https://code.visualstudio.com/docs/python/editing#_sort-imports

我已经设定

    "[python]": {
        "editor.codeActionsOnSave": {
            "source.organizeImports": true
        }
    },
Run Code Online (Sandbox Code Playgroud)

在 vscode 中,看起来选择了正确的 python 解释器,但它没有按预期生成排序的导入。我怀疑 vscode 使用了错误的 isort,我怎样才能找出 vscode 到底使用的是哪个 isort?

python visual-studio-code isort

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