如何使用TensorFlow实现自定义层?


TensorFlow可以通过创建一个类并定义一个构建层的函数以及另一个通过传递输入来调用矩阵乘法的函数来实现自定义层。

阅读更多: 什么是TensorFlow以及Keras如何与TensorFlow一起创建神经网络?

包含至少一层卷积层的神经网络被称为卷积神经网络。我们可以使用卷积神经网络构建学习模型。

图像分类迁移学习背后的直觉是,如果一个模型在一个大型且通用的数据集上进行训练,那么这个模型可以有效地作为视觉世界的通用模型。它已经学习了特征图,这意味着用户不必从头开始训练大型数据集上的大型模型。

TensorFlow Hub是一个包含预训练TensorFlow模型的存储库。TensorFlow可用于微调学习模型。我们将了解如何使用来自TensorFlow Hub的模型与tf.keras,使用来自TensorFlow Hub的图像分类模型。完成此操作后,可以执行迁移学习来微调自定义图像类的模型。这是通过使用预训练的分类器模型来获取图像并预测它是做什么的。这可以在无需任何训练的情况下完成。

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

示例

print("Implementing custom layers")
class MyDenseLayer(tf.keras.layers.Layer):
   def __init__(self, num_outputs):
      super(MyDenseLayer, self).__init__()
      self.num_outputs = num_outputs
   def build(self, input_shape):
      self.kernel = self.add_weight("kernel",
      shape=[int(input_shape[-1]),
      self.num_outputs])
def call(self, input):
return tf.matmul(input, self.kernel)

代码来源 −https://tensorflowcn.cn/tutorials/customization/custom_layers

输出

Implementing custom layers

解释

  • 实现了自定义层。
  • 这是通过创建一个类并将其扩展到“tf.keras.layer”来完成的。
  • __init__有助于执行所有输入无关的初始化。
  • build方法可用于了解输入张量的形状并完成初始化过程。
  • call方法有助于正向计算。

更新于: 2021年2月25日

浏览量:173

启动您的职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.