gpt4 book ai didi

python - 什么是符号张量,为什么它们会抛出 "use ` steps_per_epoch` argument“错误?

转载 作者:太空宇宙 更新时间:2023-11-03 20:32:17 26 4
gpt4 key购买 nike

注意:我已经解决了我的问题,但我发布这个问题是为了防止其他人也有这个问题,而且我不明白我是如何解决它的。

我正在使用 Tensorflow 后端在 Keras 中构建命名实体分类器(序列标记模型)。当我尝试拟合模型时,出现此错误(令人惊讶的是,仅返回 4 个 Google 结果):

"If your data is in the form of symbolic tensors, you should specify the `steps_per_epoch` argument (instead of the batch_size argument, because symbolic tensors are expected to produce batches of input data)."

This stackoverflow post讨论了这个问题,有人向运算符(operator)建议:

one of your data tensors that is being used by Fit() is a symbolic tensor. The one hot label function returns a symbolic tensor. Try something like:

label_onehot = tf.Session().run(K.one_hot(label, 5))

然后我继续阅读this (not related) site :

The Wolfram System also has powerful algorithms to manipulate algebraic combinations of expressions representing [...] arrays. These expressions are called symbolic arrays or symbolic tensors.

这两个来源让我认为符号数组(至少在 TensorFlow 中)可能更像是尚未评估的函数数组,而不是实际值。

所以,使用%whos要查看我的所有变量,我看到我的 XY数据是张量(而不是数组,就像我通常在模型中使用的那样)。数据/信息列对它们有相当复杂的描述,但是一旦解决了我的问题,我就丢失了它,并且我不知道如何返回到出现错误的状态。

无论如何,我知道我通过更改数据预处理解决了问题,以便 Xy数据(即 X_trainy_train )的类型为 <class 'numpy.ndarray'> X_train 的尺寸(发送数量,最大长度)和 (num_sents, max len, 1) 对于 y_train (1 是必需的,因为我的最后一层需要 3D 输入)。现在模型运行良好。但我仍然想知道,这些符号张量是什么以及如何/为什么使用每个时期的步骤而不是批量大小应该有帮助?我最初也尝试过,但没有成功。

最佳答案

这可以通过使用张量的 eval() 或 numpy() 函数来解决。

检查: How can I convert a tensor into a numpy array in TensorFlow?

关于python - 什么是符号张量,为什么它们会抛出 "use ` steps_per_epoch` argument“错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57417690/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com