【问题标题】:Tensorflow example works fine on colab, but gives nan while running on jupyter labTensorflow 示例在 colab 上运行良好,但在 jupyter lab 上运行时给出了 nan
【发布时间】:2021-03-21 14:17:20
【问题描述】:

使用 tensorflow 的 colab 示例教程后:基本回归:预测燃油效率,可在此处找到:https://www.tensorflow.org/tutorials/keras/regression
我一直在尝试通过 anaconda 在 jupyter notebook 上运行这个示例,以便也能够离线运行它。
可以在链接上找到的代码在 google colab 上运行良好,但是当我尝试在 jupyter notebook 上运行它时,我得到了一个 nan 的向量。

  1. 在 google colab 上运行产生:
    Running the example on google colab
  2. 在 jupyter 上运行产生:
    Running the example on jupyter lab

构建顺序模型的代码:[问题可能来自哪里]

horsepower_model = tf.keras.Sequential([
    horsepower_normalizer,
    layers.Dense(units=1)
])

horsepower_model.summary()

其余代码可以在我上面附加的这个链接中找到:
https://www.tensorflow.org/tutorials/keras/regression

模型必须做什么:
该模型从数据集中获取 2 个数组:MPG 和马力,并且即将使用单变量线性回归来预测马力中的 MPG。
因此,该模型引入了一个形状为 1 的 Dense 层,从这里可以看出:

layers.Dense(units=1)

模型的输出应该是 MPG 的值,基于马力值。
然后我们将能够将它与我们从数据集中获得的真实 MPG 的值进行比较。

提前谢谢你。

编辑:我上传我的笔记本:
https://www.udrop.com/Jk3/Horsepower.ipynb

【问题讨论】:

  • 在第一张图片中,normalization_1 层的输出形状为(None, 1),而在第二张图片中为(None, 314)。请包含两个示例的输入形状的代码。
  • 我使用的代码是您可以在下面的链接中找到的代码:tensorflow.org/tutorials/keras/regression 我已保存此代码并尝试通过 anaconda 在我的 jupyter 实验室上运行它。 colab 和 jupyter 中的代码相同。我不明白为什么 normalization_1 层的输出形状不同。感谢您尝试帮助我。

标签: python tensorflow google-colaboratory jupyter-lab


【解决方案1】:

为每个马力值加上一组额外的括号可以解决我的问题:

horsepower = np.array([[h] for h in train_features['Horsepower']])

【讨论】:

    【解决方案2】:

    我看到您在其中使用了不同的模型。 在 Colab 中,您使用的模型只有 5 参数 而在 Notebook 中,您使用的是具有 944 参数的密集模型。

    先尝试在笔记本上运行参数较少的模型 要么 尝试在两者上运行相同的模型。(可能复杂模型没有完全训练。)

    编辑 1: 我创建了一个 jupyter notebook 并尝试了代码。 在我的系统中它运行良好,尝试在您的系统中运行这个 jupyter notebook。 Jupyter Notebook .如果它有效,那么您的代码中可能存在一些语法错误。

    编辑 2: 更新张量流:

    pip install --ignore-installed --upgrade tensorflow
    

    使用此命令或适用于您的版本的任何其他命令。

    【讨论】:

    • 这正是我的想法。但是我在 colab 和 jupyter 中制作模型的方式是相同的。这就是为什么我不明白为什么它应该在 colab 而不是在 jupyter 中工作的原因。没有理由说明 colab 和 jupyter notebook 中的参数数量不应该完全相同。
    • 你能分享模型细节吗,因为这里有点不清楚模型到底在做什么
    • 当然,刚刚编辑。感谢您的帮助。
    • 我在答案中分享我的笔记本。我正在编辑答案,请检查并告诉我。
    • 是的,你是对的。这可能是原因。上传的时候告诉我。另外,你能给我的答案打勾吗,它有助于构建回购。
    猜你喜欢
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-25
    相关资源
    最近更新 更多