- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
终端中的 MacOS high sierra,MBP 2016。
我按照这里的指示操作: https://github.com/tensorflow/models/tree/master/research/syntaxnet./configure 的所有选项都选择为默认值(并仔细检查所有 python 目录。)。在此之前,所有步骤都已干净地完成:
bazel test ...
# On Mac, run the following:
bazel test --linkopt=-headerpad_max_install_names \
dragnn/... syntaxnet/... util/utf8/...
我假设我应该运行后一行(“bazel test --linkopt”等)。但有趣的是,无论哪种方式,我都得到了相同的结果。
这会抛出大约 10 个错误,每个错误都是相同类型的“试图改变一个卡住的对象”,并得出结论,测试未运行,加载包 dragnn/protos 时出错,并且无法开始构建。
这是错误的一般形式:
syntaxnet>> bazel test --linkopt=-headerpad_max_install_names dragnn/... syntaxnet/... util/utf8/...
.
ERROR: /Users/XXX/Desktop/NLP/syntaxnet/models/research/syntaxnet/dragnn/protos/BUILD:35:1: Traceback (most recent call last): File "/Users/XXX/Desktop/NLP/syntaxnet/models/research/syntaxnet/dragnn/protos/BUILD", line 35 tf_proto_library_py(name = "data_py_pb2", srcs = ["dat..."]) File "/Users/XXX/Desktop/NLP/syntaxnet/models/research/syntaxnet/syntaxnet/syntaxnet.bzl", line 53, in tf_proto_library_py py_proto_library(name = name, srcs = srcs, srcs_versi...", <5 more arguments>) File "/private/var/tmp/_bazel_XXX/f74e5a21c3ad09aeb110d9de15110035/external/protobuf_archive/protobuf.bzl", line 374, in py_proto_library py_libs += [default_runtime] trying to mutate a frozen object ERROR: package contains errors: dragnn/protos
... [各种 'name = "...pb2"' 文件的相同错误] ...
INFO: Elapsed time: 0.709s FAILED: Build did NOT complete successfully (17 packages loaded) ERROR: Couldn't start the build. Unable to run tests
知道这是怎么回事吗?谢谢。
最佳答案
此错误表明 py_proto_library
规则实现中存在错误。
tf_proto_library_py
在 syntaxnet.bzl
中定义.它是 py_proto_library
的包装器,由 tf_workspace
定义宏的protobuf_archive
规则。
“protobuf_archive”下载 Protobuf 3.3.0,其中包含 //:protobuf.bzl
和错误的 py_proto_library
规则实现:在第 374 行,它试图改变一个不可变对象(immutable对象) py_libs
。
确保您使用最新的 Bazel 版本,目前是 0.8.1。
如果问题仍然存在,那么:
我建议提交错误:
py_proto_library
规则tf_workspace
中的 Protobuf 版本,以及//research/syntaxnet
中更新他们的 TF 子模块引用到错误修复版本。作为一种解决方法,也许您可以修补 protobuf.bzl
。
补丁是改变这些行:
373 if default_runtime and not default_runtime in py_libs + deps:
374 py_libs += [default_runtime]
375
376 native.py_library(
377 name=name,
378 srcs=outs+py_extra_srcs,
379 deps=py_libs+deps,
380 imports=includes,
381 **kargs)
对这些:
373 if default_runtime and not default_runtime in py_libs + deps:
374 py_libs2 = py_libs + [default_runtime]
375 else:
376 py_libs2 = py_libs
377
378 native.py_library(
379 name=name,
380 srcs=outs+py_extra_srcs,
381 deps=py_libs2+deps,
382 imports=includes,
383 **kargs)
免责声明:这是一个“盲”修复;没试过能不能用。
关于python - tensorflow : "trying to mutate a frozen object",巴泽尔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47688252/
我是一名优秀的程序员,十分优秀!