网站页面两侧漂浮的怎样做,秦皇岛建网站多少钱,公司的门户网站模版,东莞seo计费在sklearn中#xff0c;模型都是现成的。tf.Keras是一个神经网络库,我们需要根据数据和标签值构建神经网络。神经网络可以发现特征与标签之间的复杂关系。神经网络是一个高度结构化的图#xff0c;其中包含一个或多个隐藏层。每个隐藏层都包含一个或多个神经元。神经网络有多…在sklearn中模型都是现成的。tf.Keras是一个神经网络库,我们需要根据数据和标签值构建神经网络。神经网络可以发现特征与标签之间的复杂关系。神经网络是一个高度结构化的图其中包含一个或多个隐藏层。每个隐藏层都包含一个或多个神经元。神经网络有多种类别该程序使用的是密集型神经网络也称为全连接神经网络一个层中的神经元将从上一层中的每个神经元获取输入连接。例如图 2 显示了一个密集型神经网络其中包含 1 个输入层、2 个隐藏层以及 1 个输出层如下图所示 上图 中的模型经过训练并馈送未标记的样本时它会产生 3 个预测结果相应鸢尾花属于指定品种的可能性。对于该示例输出预测结果的总和是 1.0。该预测结果分解如下山鸢尾为 0.02变色鸢尾为 0.95维吉尼亚鸢尾为 0.03。这意味着该模型预测某个无标签鸢尾花样本是变色鸢尾的概率为 95%。
TensorFlow tf.keras API 是创建模型和层的首选方式。通过该 API您可以轻松地构建模型并进行实验而将所有部分连接在一起的复杂工作则由 Keras 处理。
tf.keras.Sequential 模型是层的线性堆叠。该模型的构造函数会采用一系列层实例;在本示例中采用的是 2 个密集层(分别包含 10 个节点)以及 1 个输出层(包含 3 个代表标签预测的节点)。第一个层的 input_shape 参数对应该数据集中的特征数量
# 利用sequential方式构建模型model Sequential([# 隐藏层1激活函数是relu,输入大小有input_shape指定Dense(10, activationrelu, input_shape(4,)), # 隐藏层2激活函数是reluDense(10, activationrelu),# 输出层Dense(3,activationsoftmax)])通过model.summary可以查看模型的架构
激活函数可决定层中每个节点的输出形状。这些非线性关系很重要如果没有它们模型将等同于单个层。激活函数有很多但隐藏层通常使用 ReLU。
隐藏层和神经元的理想数量取决于问题和数据集。与机器学习的多个方面一样选择最佳的神经网络形状需要一定的知识水平和实验基础。一般来说增加隐藏层和神经元的数量通常会产生更强大的模型而这需要更多数据才能有效地进行训练。
模型训练和预测
在训练和评估阶段我们都需要计算模型的损失。这样可以衡量模型的预测结果与预期标签有多大偏差也就是说模型的效果有多差。我们希望尽可能减小或优化这个值所以我们设置优化策略和损失函数以及模型精度的计算方法
# 设置模型的相关参数优化器损失函数和评价指标mode
l.compile(optimizeradam, losscategorical_crossentropy, metrics[accuracy])接下来与在sklearn中相同分别调用fit和predict方法进行预测即可。
# 模型训练epochs,训练样本送入到网络中的次数batch_size:每次训练的送入到网络中的样本个数
model.fit(train_X, train_y_ohe, epochs10, batch_size1, verbose1);上述代码完成的是 迭代每个epoch。通过一次数据集即为一个epoch。 在一个epoch中遍历训练 Dataset 中的每个样本并获取样本的特征 (x) 和标签 (y)。 根据样本的特征进行预测并比较预测结果和标签。衡量预测结果的不准确性并使用所得的值计算模型的损失和梯度。 使用 optimizer 更新模型的变量。 对每个epoch重复执行以上步骤直到模型训练完成。
训练过程展示如下
Epoch 1/10
75/75 [] - 0s 616us/step - loss: 0.0585 - accuracy: 0.9733
Epoch 2/10
75/75 [] - 0s 535us/step - loss: 0.0541 - accuracy: 0.9867
Epoch 3/10
75/75 [] - 0s 545us/step - loss: 0.0650 - accuracy: 0.9733
Epoch 4/10
75/75 [] - 0s 542us/step - loss: 0.0865 - accuracy: 0.9733
Epoch 5/10
75/75 [] - 0s 510us/step - loss: 0.0607 - accuracy: 0.9733
Epoch 6/10
75/75 [] - 0s 659us/step - loss: 0.0735 - accuracy: 0.9733
Epoch 7/10
75/75 [] - 0s 497us/step - loss: 0.0691 - accuracy: 0.9600
Epoch 8/10
75/75 [] - 0s 497us/step - loss: 0.0724 - accuracy: 0.9733
Epoch 9/10
75/75 [] - 0s 493us/step - loss: 0.0645 - accuracy: 0.9600
Epoch 10/10
75/75 [] - 0s 482us/step - loss: 0.0660 - accuracy: 0.9867与sklearn中不同对训练好的模型进行评估时与sklearn.score方法对应的是tf.keras.evaluate()方法返回的是损失函数和在compile模型时要求的指标:
# 计算模型的损失和准确率
loss, accuracy model.evaluate(test_X, test_y_ohe, verbose1)
print(Accuracy {:.2f}.format(accuracy))分类器的准确率为
3/3 [] - 0s 591us/step - loss: 0.1031 - accuracy: 0.9733
Accuracy 0.97到此我们对tf.kears的使用有了一个基本的认知在接下来的课程中会给大家解释神经网络以及在计算机视觉中的常用的CNN的使用。