📅  最后修改于: 2020-12-11 04:54:08             🧑  作者: Mango
如前所述,Keras模块包含预定义的类,函数和变量,它们对于深度学习算法很有用。让我们学习本章中Keras提供的模块。
首先让我们看看Keras中可用的模块列表。
初始化-提供的初始化函数的列表。我们可以在Keras层一章中详细了解它。在机器学习的模型创建阶段。
正则化器-提供正则化器函数列表。我们可以在Keras Layers一章中详细了解它。
约束-提供约束函数列表。我们可以在Keras Layers一章中详细了解它。
激活-提供激活器函数列表。我们可以在Keras Layers一章中详细了解它。
损失-提供损失函数列表。我们可以在“模型培训”一章中详细了解它。
指标-提供指标函数列表。我们可以在“模型培训”一章中详细了解它。
优化器-提供优化器函数列表。我们可以在“模型培训”一章中详细了解它。
回调-提供回调函数列表。我们可以在训练过程中使用它来打印中间数据,并根据某些条件停止训练本身( EarlyStopping方法)。
文本处理-提供将文本转换为适用于机器学习的NumPy数组的功能。我们可以在机器学习的数据准备阶段使用它。
图像处理-提供将图像转换为适合机器学习的NumPy数组的功能。我们可以在机器学习的数据准备阶段使用它。
顺序处理-提供从给定的输入数据生成基于时间的数据的功能。我们可以在机器学习的数据准备阶段使用它。
后端-提供TensorFlow和Theano等后端库的函数。
实用程序-提供许多在深度学习中有用的实用程序函数。
让我们在本章中了解后端模块和utils模型。
后端模块用于keras后端操作。默认情况下,keras运行在TensorFlow后端之上。如果需要,可以切换到Theano或CNTK等其他后端。 Defualt后端配置在.keras / keras.json文件下的根目录中定义。
可以使用以下代码导入Keras后端模块
>>> from keras import backend as k
如果我们使用默认后端TensorFlow ,则以下函数将返回基于TensorFlow的信息,如下所示-
>>> k.backend()
'tensorflow'
>>> k.epsilon()
1e-07
>>> k.image_data_format()
'channels_last'
>>> k.floatx()
'float32'
让我们简要地了解一些用于数据分析的重要后端功能-
它是默认图形的标识符。它定义如下-
>>> k.get_uid(prefix='')
1
>>> k.get_uid(prefix='') 2
用于重置uid值。
>>> k.reset_uids()
现在,再次执行get_uid() 。它将被重置并再次更改为1。
>>> k.get_uid(prefix='')
1
用于实例化一个占位符张量。保持3D形状的简单占位符如下所示-
>>> data = k.placeholder(shape = (1,3,3))
>>> data
If you use int_shape(), it will show the shape.
>>> k.int_shape(data) (1, 3, 3)
它用于将两个张量相乘。考虑a和b是两个张量,而c是ab乘积的结果。假设形状为(4,2),b形状为(2,3)。定义如下
>>> a = k.placeholder(shape = (4,2))
>>> b = k.placeholder(shape = (2,3))
>>> c = k.dot(a,b)
>>> c
>>>
用于将所有值初始化为一个值。
>>> res = k.ones(shape = (2,2))
#print the value
>>> k.eval(res)
array([[1., 1.], [1., 1.]], dtype = float32)
它用于批量执行两个数据的乘积。输入尺寸必须为2或更大。它显示如下-
>>> a_batch = k.ones(shape = (2,3))
>>> b_batch = k.ones(shape = (3,2))
>>> c_batch = k.batch_dot(a_batch,b_batch)
>>> c_batch
它用于初始化变量。让我们在此变量中执行简单的转置操作。
>>> data = k.variable([[10,20,30,40],[50,60,70,80]])
#variable initialized here
>>> result = k.transpose(data)
>>> print(result)
Tensor("transpose_6:0", shape = (4, 2), dtype = float32)
>>> print(k.eval(result))
[[10. 50.]
[20. 60.]
[30. 70.]
[40. 80.]]
如果您想从numpy访问-
>>> data = np.array([[10,20,30,40],[50,60,70,80]])
>>> print(np.transpose(data))
[[10 50]
[20 60]
[30 70]
[40 80]]
>>> res = k.variable(value = data)
>>> print(res)
用于检查张量是否稀疏。
>>> a = k.placeholder((2, 2), sparse=True)
>>> print(a) SparseTensor(indices =
Tensor("Placeholder_8:0",
shape = (?, 2), dtype = int64),
values = Tensor("Placeholder_7:0", shape = (?,),
dtype = float32), dense_shape = Tensor("Const:0", shape = (2,), dtype = int64))
>>> print(k.is_sparse(a)) True
它用于将稀疏转换为密集。
>>> b = k.to_dense(a)
>>> print(b) Tensor("SparseToDense:0", shape = (2, 2), dtype = float32)
>>> print(k.is_sparse(b)) False
它用于使用均匀分布概念进行初始化。
k.random_uniform_variable(shape, mean, scale)
这里,
形状-表示在元组的格式的行和列。
均值-均匀分布的均值。
标度-均匀分布的标准偏差。
让我们看看下面的示例用法-
>>> a = k.random_uniform_variable(shape = (2, 3), low=0, high = 1)
>>> b = k. random_uniform_variable(shape = (3,2), low = 0, high = 1)
>>> c = k.dot(a, b)
>>> k.int_shape(c)
(2, 2)
utils为深度学习提供了有用的实用程序函数。 utils模块提供的一些方法如下-
它用于以HDF5格式表示输入数据。
from keras.utils import HDF5Matrix data = HDF5Matrix('data.hdf5', 'data')
它用于将类向量转换为二进制类矩阵。
>>> from keras.utils import to_categorical
>>> labels = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> to_categorical(labels)
array([[1., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[0., 1., 0., 0., 0., 0., 0., 0., 0., 0.],
[0., 0., 1., 0., 0., 0., 0., 0., 0., 0.],
[0., 0., 0., 1., 0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 1., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 1., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0., 1., 0., 0., 0.],
[0., 0., 0., 0., 0., 0., 0., 1., 0., 0.],
[0., 0., 0., 0., 0., 0., 0., 0., 1., 0.],
[0., 0., 0., 0., 0., 0., 0., 0., 0., 1.]], dtype = float32)
>>> from keras.utils import normalize
>>> normalize([1, 2, 3, 4, 5])
array([[0.13483997, 0.26967994, 0.40451992, 0.53935989, 0.67419986]])
它用于打印模型摘要。
from keras.utils import print_summary print_summary(model)
它用于以点格式创建模型表示并将其保存到文件中。
from keras.utils import plot_model
plot_model(model,to_file = 'image.png')
此plot_model将生成一张图像以了解模型的性能。