Tensorflow如何用于获取图层中的变量?
Tensorflow是Google提供的一种机器学习框架。它是一个开放源代码框架,可与Python结合使用,以实现算法,深度学习应用程序等等。它用于研究和生产目的。
它具有优化技术,可帮助快速执行复杂的数学运算。
这是因为它使用了NumPy和多维数组。这些多维数组也称为“张量”。该框架支持使用深度神经网络。它具有高度的可扩展性,并附带许多流行的数据集。它使用GPU计算并自动进行资源管理。它带有大量的机器学习库,并且得到了良好的支持和记录。该框架具有运行深度神经网络模型,对其进行训练以及创建可预测各个数据集相关特征的应用程序的能力。
可以使用下面的代码行在Windows上安装'tensorflow'软件包-
pip install tensorflow
Tensor是TensorFlow中使用的数据结构。它有助于连接流程图中的边缘。该流程图称为“数据流程图”。张量不过是多维数组或列表。
Keras在希腊语中的意思是“号角”。Keras被开发为ONEIROS(开放式神经电子智能机器人操作系统)项目研究的一部分。Keras是使用Python编写的深度学习API。它是一个高级API,具有可帮助解决机器学习问题的高效接口。
它在Tensorflow框架之上运行。它旨在帮助快速进行实验。它提供了在开发和封装机器学习解决方案中必不可少的基本抽象和构建块。
它具有高度的可扩展性,并具有跨平台功能。这意味着Keras可以在TPU或GPU集群上运行。Keras模型也可以导出为在Web浏览器或手机中运行。
Keras已经存在于Tensorflow软件包中。可以使用下面的代码行进行访问。
import tensorflow from tensorflow import keras
我们将使用KerasSequentialAPI,它有助于构建用于与简单的层堆栈配合使用的顺序模型,其中每一层都具有一个输入张量和一个输出张量。
包含至少一层的神经网络称为卷积层。卷积神经网络通常由以下提到的层的某种组合组成-
卷积层
汇聚层
致密层
卷积神经网络已用于为特定类型的问题(例如图像识别)产生出色的结果。
我们正在使用Google合作实验室来运行以下代码。GoogleColab或Colaboratory可以帮助通过浏览器运行Python代码,并且需要零配置和对GPU(图形处理单元)的免费访问。合作已建立在JupyterNotebook的基础上。
用于图像分类的转移学习背后的直觉是,如果在大型通用数据集上训练模型,则该模型可以有效地用作视觉世界的通用模型。它将学习到功能图,这意味着用户不必通过在大型数据集上训练大型模型而从头开始。
TensorFlowHub是一个包含预训练过的TensorFlow模型的存储库。
我们将了解如何将TensorFlowHub中的模型与tf.keras一起使用,如何使用TensorFlowHub中的图像分类模型。
完成此操作后,可以执行传递学习来微调用于自定义图像类别的模型。这是通过使用预训练的分类器模型来拍摄图像并预测其图像来完成的。
无需任何培训即可完成此操作。
示例
print("The variables in a layer") print(layer.variables) print("Variables can be accessed through nice accessors") print(layer.kernel, layer.bias)
代码信用-https://www.tensorflow.org/tutorials/customization/custom_layers
输出结果
The variables in a layer [<tf.Variable 'dense_5/kernel:0' shape=(5, 10) dtype=float32, numpy= array([[-0.05103415, -0.6048388 , -0.09445673, 0.00147319, 0.5958504 , 0.03832638, -0.4617405 , 0.22488767, -0.521616 , -0.4939174 ], [ 0.2143982 , -0.42745167, -0.19899327, 0.011585 , 0.39148778, -0.5193864 , 0.11133379, 0.07244939, -0.42842603, -0.07152319], [ 0.09674573, 0.08572572, -0.44079286, -0.10669523, 0.1977045 , 0.04525411, 0.41716915, 0.2611121 , -0.1167441 , -0.26781783], [ 0.38834113, -0.5396006 , -0.33349523, -0.5882891 , -0.2575687 , -0.33869067, 0.56990904, 0.3368895 , 0.6290985 , -0.31278375], [-0.40759754, 0.18778783, 0.11296159, 0.35683256, -0.16895893, -0.55790913, 0.5088188 , -0.06520861, -0.24566567, -0.15854272]], dtype=float32)>, <tf.Variable 'dense_5/bias:0' shape=(10,) dtype=float32, numpy=array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32)>] Variables can be accessed through nice accessors <tf.Variable 'dense_5/kernel:0' shape=(5, 10) dtype=float32, numpy= array([[-0.05103415, -0.6048388 , -0.09445673, 0.00147319, 0.5958504 , 0.03832638, -0.4617405 , 0.22488767, -0.521616 , -0.4939174 ], [ 0.2143982 , -0.42745167, -0.19899327, 0.011585 , 0.39148778, -0.5193864 , 0.11133379, 0.07244939, -0.42842603, -0.07152319], [ 0.09674573, 0.08572572, -0.44079286, -0.10669523, 0.1977045 , 0.04525411, 0.41716915, 0.2611121 , -0.1167441 , -0.26781783], [ 0.38834113, -0.5396006 , -0.33349523, -0.5882891 , -0.2575687 , -0.33869067, 0.56990904, 0.3368895 , 0.6290985 , -0.31278375], [-0.40759754, 0.18778783, 0.11296159, 0.35683256, -0.16895893, -0.55790913, 0.5088188 , -0.06520861, -0.24566567, -0.15854272]], dtype=float32)> <tf.Variable 'dense_5/bias:0' shape=(10,) dtype=float32, numpy=array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32)>
解释
图层有很多方法。
可以使用层中的方法检查所有变量。
全连接层将具有权重和偏差变量。