如何使用 Keras 创建一个模型,其中模型的输入形状事先指定?


Tensorflow 是 Google 提供的一个机器学习框架。它是一个开源框架,与 Python 结合使用以实现算法、深度学习应用程序等等。它用于研究和生产目的。

Keras 是作为 ONEIROS(开放式神经电子智能机器人操作系统)项目研究的一部分开发的。Keras 是一个深度学习 API,是用 Python 编写的。它是一个高级 API,具有高效的界面,有助于解决机器学习问题。

它运行在 Tensorflow 框架之上。它旨在帮助快速进行实验。它提供了开发和封装机器学习解决方案所必需的基本抽象和构建块。

它具有高度可扩展性并具有跨平台功能。这意味着 Keras 可以运行在 TPU 或 GPU 集群上。Keras 模型也可以导出到 Web 浏览器或手机上运行。

Keras 已经存在于 Tensorflow 软件包中。可以使用以下代码行访问它。

import tensorflow
from tensorflow import keras

我们使用 Google Colaboratory 来运行以下代码。Google Colab 或 Colaboratory 帮助在浏览器上运行 Python 代码,无需任何配置,并且可以免费访问 GPU(图形处理单元)。Colaboratory 建立在 Jupyter Notebook 之上。以下是代码片段:

示例

print("Three dense layers are being created")
layer = layers.Dense(3)
print("The weights associated with the layers are")
print(layer.weights)

print("The created layers is called on test data")
x = tf.ones((2, 3))
y = layer(x)
print("Now, the weights are : ")
print(layer.weights)

代码来源:https://tensorflowcn.cn/guide/keras/sequential_model

输出

Three dense layers are being created
The weights associated with the layers are
[]
The created layers is called on test data
Now, the weights are :
[<tf.Variable 'dense_11/kernel:0' shape=(3, 3) dtype=float32, numpy=
array([[-0.9901273 , -0.70897937, -0.44804883],
   [ 0.6849613 , 0.5198808 , 0.48534775],
   [-0.07876515, -0.73648643, 0.44018626]], dtype=float32)>, <tf.Variable 'dense_11/bias:0'
shape=(3,) dtype=float32, numpy=array([0., 0., 0.], dtype=float32)>]

解释

  • Keras 模型中的所有层都需要知道输入的形状,以便能够创建最佳权重。

  • 最初,当创建层时,它没有任何与之关联的权重。

  • 因此,当它第一次在输入上被调用时,它会创建权重。

  • 这是因为权重取决于输入的形状。

  • 这些层是按顺序创建的。

  • 这在测试数据上调用。

  • 与这个新模型相关的权重显示在控制台上。

更新于: 2021年1月18日

92 次浏览

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告