TensorFlow TfLearn的安装

TensorFlow TfLearn的安装

TFlearn是一个基于TensorFlow框架的开源深度学习库。它提供了一个高级API,方便创建和训练不同的神经网络模型。

TFlearn提供了一系列预定义的模型,比如卷积神经网络(CNN)、深度神经网络(DNN)和许多其他模型。它还包括各种激活函数,如ReLU(修正线性单元)、softmax,以及损失函数,如分类交叉熵等。

TFlearn是初学者的理想库,因为它不需要对TensorFlow中的神经网络API有深入的了解。它是一个简单易用的库,我们可以定义输入、隐藏和输出层,而不是构建计算密集型的网络架构,如AlexNet或LeNet架构。

如何使用TFlearn

首先,检查您的系统中是否存在Python。您可以通过打印系统中存在的Python版本来查看。

python ---version

如果您的系统中没有安装Python,您可以访问“python.org”网站安装Python 3.8或更高版本。

然后,检查您的系统是否安装了TensorFlow模块。可以通过执行以下命令来完成:

pip install tensorflow

在这种情况下,TensorFlow已经安装好了。如果还没有安装,它将在您的系统中安装这个模块。

在之后,使用以下命令将TfLearn模块安装到您的系统中:

pip install tflearn

TensorFlow TfLearn的安装

现在,既然我们已经下载了所有的先决条件,让我们看一个使用TfLearn的例子。

示例1

在下面的程序中,使用MNIST数据集来训练和测试我们的模型。TfLearn的默认包中包含了MNIST数据集。因此,我们可以利用它。

为了提高预测准确性,并使计算机能够理解图像,我们使用了一种叫做独热编码的概念来定义类别[0,…,9]。数据集实际上是由手写数字组成的。

步骤

  • 导入所有的库。

  • 加载MNIST数据集,并将其值分配给x_train、y_train、x_test和y_test,其中x表示值,y表示数据集中的标签。

  • 将x_train和x_test转换为浮点型,并通过除以255将它们的像素值转换为0或1。

  • 定义10个子图,并通过初始化for循环来自动缩放它们的图像比例,将图像打印到子图上。

  • 打印图像。

import tflearn
from tflearn.datasets import mnist
import matplotlib.pyplot as plt

(x_train, y_train),(x_test,y_test)=mnist.load_data()
x_train=x_train.astype('float32')
x_test=x_test.astype('float32')
x_train, x_test=x_train/255.0, x_test/255.0

#To show the dataset
fi,ax=plt.subplots(10,10)
k=0
for i in range(10):
   for j in range(10):
      ax[i][j].imshow(x_train[k].reshape(28,28), aspect='auto')
      k+=1
plt.show()

我们加载数据集并将其分为训练和测试数据。然后我们将训练和测试数据的数据类型转换为float32,并对图像的像素值进行归一化,将它们除以255.0,使它们在0和1的范围内。

我们创建一个10×10的网格,并初始化一个指针来跟踪图像索引。我们使用循环遍历网格。对于每个网格框,我们从训练集中显示一个图像,将图像从1D数组重塑成2D数组,尺寸为28×28。

输出

TensorFlow TfLearn的安装

示例2

在上一个示例中,我们加载了没有进行one-hot编码的MNIST数据。在下一个示例中,我们将打印应用one-hot编码后的训练和测试标签的形状,并打印训练标签的前五行。

步骤

  • 使用tflearn导入MNIST数据集。

  • 使用one-hot编码值加载MNIST数据集。

  • 打印数据集的形状和维度。

  • 打印训练标签的前五行。

from tflearn.datasets import mnist
x_train, y_train, x_test, y_test=mnist.load_data(one_hot=True)

print("Training Data shape: ", x_train.shape)
print("Training Labels shape: ", y_train.shape)
print("Testing Data shape: ", x_train.shape)
print("Testing Labels shape: ", y_train.shape)

print("First 5 training labels: ")
print(y_train[:5])

在这里,我们加载包含手写数字图像的MNIST数据集。然后,我们将训练图像和标签分别赋给不同的变量,并将测试图像和标签类似地赋给不同的变量。

one_hot = true参数确保标签以one_hot编码的格式表示,这是一种将所需数据表示为二进制向量格式的表示方法,其中一个元素被固定为热(1),其余元素表示为冷(0)。在这里,热元素是所需的目标元素。

然后,我们打印出测试和训练数据(图像和标签)。

输出

TensorFlow TfLearn的安装

建立神经网络模型

现在我们对我们正在使用的数据有一个概念,让我们构建我们的神经网络模型。神经网络由3层组成,即-

  • 输入层

  • 隐藏层

  • 输出层

示例3

为了在我们的神经网络中构建这些层,我们使用TfLearn模块。

我们定义具有256个层的隐藏层的神经网络,其中使用ReLU激活函数,以及由10层组成的输出层和softmax激活函数。在大多数神经网络架构中,输出层总是具有softmax激活函数。

然后,我们使用SGD(随机梯度下降)优化器和分类交叉熵损失函数以及学习率为0.1来定义模型。使用这些,我们构建并适应我们的训练数据和测试数据,之后打印出模型的准确度。

步骤

  • 导入所有库。

  • 加载MNIST数据集并将值分配给x_train,y_train,x_test和y_test,其中x表示数据集中的值,y表示标签。

  • 导入数据集时设置one_hot=True。

  • 打印所有变量的形状。

  • 将输入层定义为[None,784]。

  • 对于隐藏层,将输入层与256个层以及ReLU激活函数进行等式化。

  • 对于输出层,添加10个层以及softmax激活函数。

  • 使用必要的优化器和损失函数编译模型,并打印准确率。

import tflearn
from tflearn.datasets import mnist

x_train, y_train, x_test, y_test=mnist.load_data(one_hot=True)

print("Training Data shape: ", x_train.shape)
print("Training Labels shape: ", y_train.shape)
print("Testing Data shape: ", x_train.shape)
print("Testing Labels shape: ", y_train.shape)

print("First 5 training labels: ")
print(y_train[:5])

i_layer=tflearn.input_data(shape=[None,784])
h_layer=tflearn.fully_connected(i_layer, 256, activation='relu')
o_layer=tflearn.fully_connected(h_layer, 10, activation='softmax')
net=tflearn.regression(o_layer, optimizer='sgd', learning_rate=0.1,
                        loss='categorical_crossentropy')

model=tflearn.DNN(net)
model.fit(x_train, y_train, validation_set=(x_test,y_test),
            n_epoch=20, batch_size=128)

acc=model.evaluate(x_test,y_test)
print("Accuracy: ", acc)

我们通过从MNIST加载数据集,将数据分成训练数据和测试数据。然后对标签应用一位有效编码格式。然后定义神经网络的架构,并设置网络的训练参数,如学习速率、损失函数等。

然后我们在训练数据上训练模型20个epochs,并在训练过程中验证模型在测试数据上的性能。然后对测试数据进行评估并计算准确率。

输出

TensorFlow TfLearn的安装

TensorFlow TfLearn的安装

示例4

在上面的示例中,我们可以看到准确率达到97.5%,非常好。通过更改优化器和损失函数,我们可以微调模型的准确性。在本例中,我们使用了Adam优化器。

步骤

  • 导入所有库。

  • 加载MNIST数据集,并将值分配给x_train、y_train、x_test和y_test,其中x表示数据集中的值,y表示标签。

  • 在导入数据集时设置one_hot=True。

  • 打印所有变量的形状。

  • 定义一个输入层为[None,784]。

  • 对于隐藏层,使用256个层以及ReLU激活函数。

  • 对于输出层,添加10个层以及softmax激活函数。

  • 使用必要的优化器和损失函数编译模型,并打印准确率。

import tflearn
from tflearn.datasets import mnist

x_train, y_train, x_test, y_test=mnist.load_data(one_hot=True)

i_layer=tflearn.input_data(shape=[None,784])
h_layer=tflearn.fully_connected(i_layer, 256, activation='relu')
o_layer=tflearn.fully_connected(h_layer, 10, activation='softmax')
net=tflearn.regression(o_layer, optimizer='adam', learning_rate=0.1,
                        loss='categorical_crossentropy')

model=tflearn.DNN(net)
model.fit(x_train, y_train, validation_set=(x_test,y_test),
            n_epoch=20, batch_size=128)

acc=model.evaluate(x_test,y_test)

输出:

TensorFlow TfLearn的安装

这对于一个模型来说很低,正如所示,因此我们使用SGD优化器来实现我们的目标。

结论

如上所述,TfLearn是一个非常简单易懂的库,用于构建深度学习模型。但是,由于它是一个非常简单的库,它不像TensorFlow或PyTorch提供的库那样支持许多激活函数或损失函数。与上述库相比,它在模型的自定义方面也显著欠缺。

该库在计算机视觉中用于任务,如图像分割、物体检测等,借助卷积神经网络,并在教育和研究领域中,可以在教育环境中构建和教授算法。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程