问题标签 [tensorflow2.x]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
16 回答
228170 浏览

python - 如何防止 tensorflow 分配整个 GPU 内存?

我在一个计算资源共享的环境中工作,也就是说,我们有几台服务器机器,每台机器都配备了一些 Nvidia Titan X GPU。

对于中小型模型,Titan X 的 12 GB 通常足以让 2-3 人在同一个 GPU 上同时运行训练。如果模型足够小,以至于单个模型不能充分利用 GPU 的所有计算单元,那么与一个接一个地运行训练过程相比,这实际上会导致加速。即使在并发访问 GPU 确实会减慢个人训练时间的情况下,让多个用户同时在 GPU 上训练的灵活性仍然很好。

TensorFlow 的问题在于,默认情况下,它会在启动时分配全部可用的 GPU 内存。即使对于一个小型的两层神经网络,我看到所有 12 GB 的 GPU 内存都用完了。

有没有办法让 TensorFlow 只分配 4 GB 的 GPU 内存,如果知道这对于给定模型来说已经足够了吗?

0 投票
2 回答
8276 浏览

python-3.x - 在 TensorFlow 中获取数据集的长度

我想完全洗牌我的整个数据集,但shuffle()需要提取一些样本,并且tf.Size()不适用于tf.data.Dataset.

我怎样才能正确洗牌?

0 投票
4 回答
23223 浏览

python - 在 jupyter 中找不到 Tensorboard 作为魔术功能

我想使用最新的 tensorflow 2.0.0a0 在 jupyter 中运行 tensorboard。使用 tensorboard 版本 1.13.1 和 python 3.6。

使用

... %tensorboard --logdir {logs_base_dir}

我得到错误:

UsageError: Line magic function %tensorboard not found

你知道问题可能是什么吗?似乎所有版本都是最新的,并且命令似乎也正确。

谢谢

0 投票
1 回答
2374 浏览

keras - keras.tokenize.text_to_sequences 和词嵌入有什么区别

和之间tokenize.fit_on_text的区别?tokenize.text_to_sequenceword embeddings

尝试在各种平台上搜索,但没有得到合适的答案。

0 投票
1 回答
4809 浏览

tensorflow - 以相同的顺序改组两个张量

如上。我尝试了那些无济于事:

我曾经连接它们并进行改组,然后取消连接/解包。但现在我处于(a)是 4D 秩张量而(b)是 1D 的情况,所以,没有办法连接。

我还尝试将种子参数提供给 shuffle 方法,以便它重现相同的 shuffle 并且我使用它两次 => 失败。还尝试用随机打乱的数字范围对自己进行改组,但 TF 在花式索引和东西 ==> 失败时不如 numpy 灵活。

我现在正在做的是,将所有内容转换回 numpy 然后使用 sklearn 中的 shuffle 然后通过重铸回到张量。这纯粹是愚蠢的方式。这应该发生在图表内。

0 投票
1 回答
1483 浏览

tensorflow - GPU 上的 Tensorflow 比 CPU 上慢

使用带有 Tensorflow 后端的 Keras,我正在尝试训练 LSTM 网络,在 GPU 上运行它比在 CPU 上运行它需要更长的时间。

我正在使用 fit_generator 函数训练 LSTM 网络。每个 epoch 需要 CPU ~250 秒,而 GPU 每个 epoch 需要 ~900 秒。我的 GPU 环境中的包包括

我的 Cuda 编译工具是 9.1.85 版本,我的 CUDA 和驱动程序版本是

当我插入这行代码时

我在终端中看到以下内容

因此,Tensorflow 似乎正在使用 GPU。

当我分析代码时,在 GPU 上这是前 10 行

在 CPU 上,这是前 10 行

这是我的代码。

我希望在使用 GPU 进行训练时显着加快速度。我怎样才能解决这个问题?有人可以帮助我了解导致减速的原因吗?谢谢你。

0 投票
3 回答
8016 浏览

tensorflow - Tensorflow 2.0 不能使用 GPU,cuDNN 出了什么问题?: 获取卷积算法失败。这可能是因为 cuDNN 未能初始化

我正在尝试理解和调试我的代码。我尝试使用在 GPU 上在 tf2.0/tf.keras 下开发的 CNN 模型进行预测,但得到了那些错误消息。有人可以帮我解决吗?

这是我的环境配置

和日志文件,

编码

0 投票
2 回答
4341 浏览

python - 自定义 TensorFlow Keras 优化器

假设我想编写一个符合tf.kerasAPI 的自定义优化器类(使用 TensorFlow 版本>=2.0)。我对记录在案的方法与在实现中所做的事情感到困惑。

tf.keras.optimizers.Optimizer 状态的文档,

但是,当前的tf.keras.optimizers.Optimizer实现没有定义resource_apply_dense方法,但它确实定义了一个私有的_resource_apply_dense方法 stub。同样,没有resource_apply_sparseorcreate_slots方法,但有一个_resource_apply_sparse方法存根和一个_create_slots方法调用

在官方tf.keras.optimizers.Optimizer子类中(以使用tf.keras.optimizers.Adam为例),有_resource_apply_dense, _resource_apply_sparse, 和_create_slots方法,没有前导下划线就没有这些方法。

在稍微不那么官方的子类中有类似的前导下划线方法tf.keras.optimizers.Optimizer(例如,tfa.optimizers.MovingAverage来自 TensorFlow Addons:_resource_apply_dense、、、_resource_apply_sparse_create_slots

另一个让我困惑的点是,一些 TensorFlow Addons 优化器覆盖了该apply_gradients方法(例如,tfa.optimizers.MovingAverage),而tf.keras.optimizers优化器没有。

此外,我注意到方法调用apply_gradients的方法,但基类没有方法。因此,如果子类不覆盖,则似乎必须在优化器子类中定义方法。tf.keras.optimizers.Optimizer_create_slotstf.keras.optimizers.Optimizer_create_slots_create_slotsapply_gradients


问题

子类 a 的正确方法是tf.keras.optimizers.Optimizer什么?具体来说,

  1. tf.keras.optimizers.Optimizer顶部列出的文档是否只是意味着覆盖他们提到的方法的前导下划线版本(例如,_resource_apply_dense而不是resource_apply_dense)?如果是这样,是否有任何 API 保证这些看起来私有的方法在未来版本的 TensorFlow 中不会改变它们的行为?这些方法的签名是什么?
  2. apply_gradients除了方法之外,什么时候会覆盖_apply_resource_[dense|sparse]

编辑。在 GitHub 上打开的问题:#36449

0 投票
1 回答
5020 浏览

python - Tensorflow 2.0.0:AttributeError:“TensorSliceDataset”对象没有属性“as_numpy_iterator”

我正在tf.data.Dataset使用as_numpy_iterator. tensorflow 2.0.0根据官方文档https://www.tensorflow.org/api_docs/python/tf/data/Dataset?version=stable#as_numpy_iterator,此功能允许直接检查 tensorflow 数据集的内容。但是当我尝试给定的例子时:

出现错误:AttributeError: 'TensorSliceDataset' object has no attribute 'as_numpy_iteractor'。我想知道这个方法是否只是新添加的,超出了 tensorflow 2.0.0 的支持。如果是这样,是否可以将数据集内容检查为as_numpy_iterator()

0 投票
0 回答
437 浏览

python - 标签 { serve } 的 SavedModel 加载;状态:失败:无效参数:在 MakeCallable() 之前未使用图形创建会话

在使用 python 3.7 处理 tensorflow 服务时,出现上述错误。tensorflow 模型得到了正确的训练,但是当我尝试将模型信息添加到 tensorflow 模型服务器的配置文件中时,我收到了上述错误。

保存模型的代码如下:

将训练好的模型添加到配置文件的代码:

我使用的python包版本是:python = 3.7.5 tensorflow = '2.0.0-rc0' tensorflow_model_server = TensorFlow ModelServer: 2.1.0-rc1+dev.sha.d83512c TensorFlow Library: 2.1.0

运行 tensorflow 模型服务器的命令:tensorflow_model_server --port=9000 --model_config_file="/home/swapnil/models.conf"