将 tf.distribute 策略与 tf.keras 模型子类化结合使用

2024-01-29

我目前有一个 tf.keras 模型子类,但无法使用 GPU 分发策略,尽管 Tensorflow 网站上声明我可能收到一个错误,告诉我相反的情况。

我发现的一种解决方案是将模型包装在 tf.keras.models.Model 中,但这导致ValueError: We currently do not support distribution strategy with a `Sequential` model that is created without `input_shape`/`input_dim` set in its first layer or a subclassed model.这对我来说是无法解决的,因为我的输入形状是(无,无),因为输入是一组形状不同的序列,并且我没有将它们定义为相同的形状。

有没有办法解决这个问题或将 tf.distribute 与模型子类一起使用?

nlupy_1     |   File "/app/src/main/python/mosaix/serve/api/__init__.py", line 201, in main
nlupy_1     |     init_state()
nlupy_1     |   File "/app/src/main/python/mosaix/serve/api/__init__.py", line 135, in init_state
nlupy_1     |     network_dict[key] = ParsingPipeline(pipeline_params, 'predict', path)
nlupy_1     |   File "/app/src/main/python/mosaix/learn/pipelines/pipelines.py", line 130, in __init__
nlupy_1     |     self.build()
nlupy_1     |   File "/app/src/main/python/mosaix/learn/pipelines/pipelines.py", line 173, in build
nlupy_1     |     self._load_model()
nlupy_1     |   File "/app/src/main/python/mosaix/learn/pipelines/base_pipeline.py", line 38, in wrapped
nlupy_1     |     return func(*args, **kwargs)
nlupy_1     |   File "/app/src/main/python/mosaix/learn/pipelines/base_pipeline.py", line 169, in _load_model
nlupy_1     |     self.model_inference(warm_up_query, warm_up_annotated)
nlupy_1     |   File "/app/src/main/python/mosaix/learn/pipelines/pipelines.py", line 186, in model_inference
nlupy_1     |     return self._model_inference((raw, annotated))
nlupy_1     |   File "/app/src/main/python/mosaix/learn/pipelines/pipelines.py", line 198, in _model_inference
nlupy_1     |     bio_logits, intent_logits = self.model.predict(inputs)
nlupy_1     |   File "/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/keras/engine/training.py", line 909, in predict
nlupy_1     |     use_multiprocessing=use_multiprocessing)
nlupy_1     |   File "/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/keras/engine/training_distributed.py", line 760, in predict
nlupy_1     |     callbacks=callbacks)
nlupy_1     |   File "/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/keras/engine/training_arrays.py", line 189, in model_iteration
nlupy_1     |     f = _make_execution_function(model, mode)
nlupy_1     |   File "/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/keras/engine/training_arrays.py", line 564, in _make_execution_function
nlupy_1     |     return distributed_training_utils._make_execution_function(model, mode)
nlupy_1     |   File "/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/keras/distribute/distributed_training_utils.py", line 842, in _make_execution_function
nlupy_1     |     return _make_execution_function_with_cloning(model, mode)
nlupy_1     |   File "/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/keras/distribute/distributed_training_utils.py", line 935, in _make_execution_function_with_cloning
nlupy_1     |     _make_replicated_models_with_cloning(model, mode)
nlupy_1     |   File "/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/keras/distribute/distributed_training_utils.py", line 915, in _make_replicated_models_with_cloning
nlupy_1     |     _build_distributed_network(model, strategy, mode)
nlupy_1     |   File "/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/keras/distribute/distributed_training_utils.py", line 783, in _build_distributed_network
nlupy_1     |     args=(model, mode, inputs, targets))
nlupy_1     |   File "/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/distribute/distribute_lib.py", line 1787, in call_for_each_replica
nlupy_1     |     return self._call_for_each_replica(fn, args, kwargs)
nlupy_1     |   File "/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/distribute/parameter_server_strategy.py", line 442, in _call_for_each_replica
nlupy_1     |     self._container_strategy(), self._device_map, fn, args, kwargs)
nlupy_1     |   File "/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/distribute/mirrored_strategy.py", line 196, in _call_for_each_replica
nlupy_1     |     coord.join(threads)
nlupy_1     |   File "/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/training/coordinator.py", line 389, in join
nlupy_1     |     six.reraise(*self._exc_info_to_raise)
nlupy_1     |   File "/usr/local/lib/python3.6/dist-packages/six.py", line 693, in reraise
nlupy_1     |     raise value
nlupy_1     |   File "/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/training/coordinator.py", line 297, in stop_on_exception
nlupy_1     |     yield
nlupy_1     |   File "/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/distribute/mirrored_strategy.py", line 879, in run
nlupy_1     |     self.main_result = self.main_fn(*self.main_args, **self.main_kwargs)
nlupy_1     |   File "/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/keras/distribute/distributed_training_utils.py", line 743, in _build_network_on_replica
nlupy_1     |     model, input_tensors=inputs, layer_fn=models.share_weights)
nlupy_1     |   File "/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/keras/models.py", line 165, in _clone_functional_model
nlupy_1     |     raise ValueError('Expected `model` argument '
nlupy_1     | ValueError: Expected `model` argument to be a functional `Model` instance, but got a subclass model instead.
nlupy_1     | 

None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 tf.distribute 策略与 tf.keras 模型子类化结合使用 的相关文章

随机推荐

  • Java win32 库/api

    是否有合适的 Java win32 库 例如 显示当前进程 查找进程占用的端口号等 或者像 WMI 库之类的东西 看一下JNA https github com twall jna 这是与本机代码通信的 100 纯 java 方式 他们有一
  • 如何抑制 Delphi DataSnap 错误消息对话框?

    我们在 Windows 2003 Server 上运行 DataSnap Delphi 2009 应用程序 DataSnap 客户端和服务器位于同一台计算机上 通过 Borland Socketserver 使用 DCOM 客户端运行后台批
  • 为什么将 Avro 与 Kafka 结合使用 - 如何处理 POJO

    我有一个 Spring 应用程序 它是我的 kafka 生产者 我想知道为什么 avro 是最好的选择 我读到了它以及它提供的所有内容 但为什么我不能序列化我用 jackson 自己创建的 POJO 并将其发送到 kafka 我这样说是因为
  • Amazon MWS Feed API 更新订单状态时出现问题

    我正在使用 amazon mws feed api 来更新我网站上的订单状态 当我打电话给提交供稿api 提交成功 但是 当我打电话给获取Feed提交结果 它返回给我一个错误 指出
  • 使用 UITextView 和 NSMutableAttributedString 对齐文本

    我正在尝试为一个合理的文本UITextView with NSMutableAttributedString the NSMutableAttributedString是由不同的NSAttributedString因为我需要粗体和常规字体
  • 什么是 Chocolatey“安装”包?

    关于审查巧克力包装 https chocolatey org packages可用时 我遇到了一些有两个 或有时更多 显然用于同一产品的软件包 乍一看无法区分 例如 有自动热键包 然后还有一个自动热键 install 在这里查看 Choco
  • 为什么 JavaScript 中 (([]===[])+/-/)[1] = 'a' 和 (1+{})[(1<<1)+1] = 'b' ?

    最近我发现了一个有趣的网站 其中展示了 Javascript 混淆器 http bl ocks org jasonsperske 5400283 http bl ocks org jasonsperske 5400283 例如 1 give
  • 为什么从文件中读取 1 个字节比读取 2、3、4、... 字节慢 20 倍?

    我一直试图理解之间的权衡read and seek 对于小的 跳跃 读取不需要的数据比使用跳过它更快seek 在计时不同的读取 查找块大小以找到临界点时 我遇到了一个奇怪的现象 read 1 大约慢20倍read 2 read 3 等 对于
  • 更改表设置标识列

    我有一个 sybase 表 测试 其中包含以下列 MyIdentity numberic 9 0 Name User 桌子上写满了很多记录 我想将身份列更改为身份 当前表中的 MyIdentity 没有重复值 我如何更改表并将 MyIden
  • TensorFlow:训练for循环中的每次迭代速度较慢[重复]

    这个问题在这里已经有答案了 我正在 TensorFlow 中训练一个标准的 简单的多层感知器 ANN 它具有三个隐藏层 我添加了一个文本进度条 这样我就可以观察迭代各个纪元的进度 我发现每次迭代的处理时间在前几个时期之后会增加 这是一个示例
  • 在过滤器 SQLAlchemy 中进行日期时间比较

    我对 SQLAlchemy 中的过滤有点困惑 我目前正在尝试过滤掉超过 10 周的条目 所以我有 current time datetime datetime utcnow potential session query Subject f
  • SAS HashTable 中由 hashexp 指定的表大小到底是多少?

    我想对 SAS 哈希表中存储桶的定义进行一些澄清 问题正是关于hashexp范围 根据 SAS DOC 的说法 hashexp is 哈希对象的内表大小 其中哈希表的大小为2n HASHEXP 的值用作 2 的指数来创建哈希表大小 例如 H
  • Xamarin Studio 5.9.7(内部版本 9)和 Xamarin.iOS 9.0.1.18 中的代码设计错误

    我已将 Xamarin Studio 升级到 beta 通道中的最新版本 当我尝试运行该应用程序时 出现以下错误 Signing application codesign v force sign hex entitlements User
  • IE 9 上等待异步脚本超时

    我正在尝试在 Internet Explorer 9 上运行一些测试 使用 Protractor 每个包含 driver executeScript 的测试都会给出错误 等待异步脚本超时 警告 服务器未提供任何堆栈跟踪信息 其他测试效果很好
  • 为什么 TypeError 上的 JSON.stringify 返回一个空对象[重复]

    这个问题在这里已经有答案了 我正在使用节点 4 2 并且捕获错误并在其上使用 JSON stringify 对于大多数对象来说 这都可以正常工作 但是当抛出 TypeError callback is not a function 时 它会
  • QT:隐藏 QML 调试警告

    QML 调试已启用 仅在安全环境中使用此功能 我实际上正在为 QtCreator 项目开发 Python 测试软件 该项目需要使用 QML 调试 python 软件正在运行构建的项目并测试其功能 我想实际上隐藏该消息而不禁用 QML 调试
  • 蓝牙设备发现错误

    我尝试使用以下代码来发现蓝牙设备 import java io BufferedReader import java io IOException import java io InputStreamReader import java u
  • ElasticSearch 和 Nest 过滤不起作用

    我运行一个查询 返回 10 个结果 我的文档中有一个名为 Type 的属性 对于某些记录 此属性的值为空字符串 对于其他一些记录 该属性的值为 AudioAlbum 或 AudioRington 我想做两件事 1 从搜索结果中排除其 Typ
  • SwiftUI 中的 Alert + ProgressView(活动指示器)

    Is there any way to add Activity View Indicator into SwiftUI Alert somewhere I m just curious because I haven t found an
  • 将 tf.distribute 策略与 tf.keras 模型子类化结合使用

    我目前有一个 tf keras 模型子类 但无法使用 GPU 分发策略 尽管 Tensorflow 网站上声明我可能收到一个错误 告诉我相反的情况 我发现的一种解决方案是将模型包装在 tf keras models Model 中 但这导致