如何使用 Python 中的 Tensorflow 返回层实例的构造函数参数?


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

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

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

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

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

import tensorflow
from tensorflow import keras

Keras 函数式 API 有助于创建比使用顺序 API 创建的模型更灵活的模型。函数式 API 可以处理具有非线性拓扑的模型,可以共享层并处理多个输入和输出。深度学习模型通常是一个包含多个层的无环有向图 (DAG)。函数式 API 有助于构建层的图形。

我们使用 Google Colaboratory 来运行以下代码。Google Colab 或 Colaboratory 有助于通过浏览器运行 Python 代码,并且无需任何配置即可免费访问 GPU(图形处理单元)。Colaboratory 是建立在 Jupyter Notebook 之上的。以下是使用 Python 返回层实例的构造函数参数的代码片段:

示例

class CustomDense(layers.Layer):
   def __init__(self, units=32):
      super(CustomDense, self).__init__()
      self.units = units
   def build(self, input_shape):
      self.w = self.add_weight(
         shape=(input_shape[-1], self.units),
         initializer="random_normal",
         trainable=True,
      )
      self.b = self.add_weight(
         shape=(self.units,), initializer="random_normal", trainable=True
      )
   def call(self, inputs):
      return tf.matmul(inputs, self.w) + self.b
   def get_config(self):
      return {"units": self.units}
inputs = keras.Input((4,))
outputs = CustomDense(10)(inputs)

model = keras.Model(inputs, outputs)
print("The below function returns constructor arguments for the instance of the layer")
config = model.get_config()

new_model = keras.Model.from_config(config, custom_objects={"CustomDense": CustomDense})

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

输出

The below function returns constructor arguments for the instance of the layer

解释

  • 创建了一个名为“CustomDense”的类,用于向模型添加权重。

  • 定义了另一个名为“get_config”的函数,该函数返回每一层实例的构造函数参数。

  • 定义了模型的输入层。

  • 接下来,定义模型并调用函数。

更新于: 2021年1月18日

78 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告