TensorFlow神经网络模型,创建一个完整的MLP神经网络模型

该代码示例展示了如何用TensorFlow构建一个多层感知器(MLP)模型,对两个随机生成的数据集进行分类。模型包括两个隐藏层,每个都使用ReLU激活函数,输出层使用softmax激活。模型经过20个周期的训练,损失函数为sparse_categorical_crossentropy,度量指标是精度。在测试集上,模型的准确性和预测结果也得到了展示。
摘要由CSDN通过智能技术生成

创建训练集

#!/usr/bin/env python
# -*- coding=utf-8 -*-

import tensorflow as tf
import numpy as np

#创建数据集
x1=np.random.random((500,1))
x2=np.random.random((500,1))+1
x_train=np.concatenate((x1, x2))

y1=np.zeros((500,), dtype=int)
y2=np.ones((500,), dtype=int)
y_train=np.concatenate((y1, y2))

构建模型

#创建神经网络模型
model = tf.keras.models.Sequential([
  tf.keras.layers.Dense(10, activation=tf.nn.relu, input_dim=1),
  #一维数组(因)
  tf.keras.layers.Dense(10, activation=tf.nn.relu),
  #10个神经元,使用ReLU算法
  tf.keras.layers.Dense(2, activation=tf.nn.softmax)
  #两种答案,使用softmax算法
])

编译

model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])
#编译并使用Adam算法优化

训练

model.fit(x_train, y_train,
          epochs=20,
          batch_size=128)
#进行训练的因和果的数据
#设置训练次数
#设置每次训练的笔数

此时完整代码:

#!/usr/bin/env python
# -*- coding=utf-8 -*-

import tensorflow as tf

import numpy as np


x1=np.random.random((500,1))
x2=np.random.random((500,1))+1
x_train=np.concatenate((x1, x2))

y1=np.zeros((500,), dtype=int)
y2=np.ones((500,), dtype=int)
y_train=np.concatenate((y1, y2))

model = tf.keras.models.Sequential([
  tf.keras.layers.Dense(10, activation=tf.nn.relu, input_dim=1),
  tf.keras.layers.Dense(10, activation=tf.nn.relu),
  tf.keras.layers.Dense(2, activation=tf.nn.softmax)
])

model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

model.fit(x_train, y_train,
          epochs=20,
          batch_size=128)



运行结果:

这里, Epoch 18/20, 指共训练20次,当前为第18次的结果。

loss : 0.4544 ,损失率为0.4544,说明模型预测值与真实值的差距。

accuracy: 0.8440:找到的权重当前的正确率为0.8440。

评估正确率

#測試
x_test=np.array([[0.22],[0.31],[1.22],[1.33]])
y_test=np.array([0,0,1,1])

score = model.evaluate(x_test, y_test, batch_size=128)
print("score:",score)

预测

predict = model.predict(x_test)#获取每一个结果的概率
print("predict:",predict)
print("Ans:",np.argmax(predict[0]),np.argmax(predict[1]),np.argmax(predict[2]),np.argmax(predict[3]))

#通过predict_ckasses函数来预测答案
predict2 = model.predict_classes(x_test)
print("predict_classes:",predict2)
print("y_test",y_test[:])

最终的全部代码:

#!/usr/bin/env python
# -*- coding=utf-8 -*-

import tensorflow as tf

import numpy as np


x1=np.random.random((500,1))
x2=np.random.random((500,1))+1
x_train=np.concatenate((x1, x2))

y1=np.zeros((500,), dtype=int)
y2=np.ones((500,), dtype=int)
y_train=np.concatenate((y1, y2))

model = tf.keras.models.Sequential([
  tf.keras.layers.Dense(units=10, activation=tf.nn.relu, input_dim=1),
  tf.keras.layers.Dense(units=10, activation=tf.nn.relu),
  tf.keras.layers.Dense(units=2, activation=tf.nn.softmax)
])

model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

model.fit(x_train, y_train,
          epochs=20,
          batch_size=128)


#測試
x_test=np.array([[0.22],[0.31],[1.22],[1.33]])
y_test=np.array([0,0,1,1])

score = model.evaluate(x_test, y_test, batch_size=128)
print("score:",score)

predict = model.predict(x_test)
print("predict:",predict)
print("Ans:",np.argmax(predict[0]),np.argmax(predict[1]),np.argmax(predict[2]),np.argmax(predict[3]))

predict2 = model.predict_classes(x_test)
print("predict_classes:",predict2)
print("y_test",y_test[:])

运行结果:

 

至此,创建一个完整的MLP神经网络模型。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,在 Python 中构建神经网络模型需要以下步骤: 1. 导入必要的库,例如 NumPy 和 PyTorch。 2. 准备训练数据,包括输入数据和对应的标签。 3. 定义神经网络模型的结构,例如输入层、隐藏层和输出层的数量以及每层中神经元的数量。 4. 定义损失函数和优化器。损失函数用于衡量模型的预测结果与真实结果之间的差距,优化器则用于更新模型的参数。 5. 在训练数据上训练模型。通常需要对数据进行多次迭代,并在每次迭代后更新模型的参数。 6. 在验证数据集上评估模型的性能。 7. 使用模型进行预测。 下面是一个简单的例子,展示了如何使用 PyTorch 构建一个多层感知机 (MLP) 来进行手写数字识别: ```python import torch import torch.nn as nn import torch.optim as optim # 准备训练数据 X_train = ... y_train = ... X_val = ... y_val = ... # 定义模型 class MLP(nn.Module): def __init__(self, input_size, hidden_size, num_classes): super(MLP, self).__init__() self.fc1 = nn.Linear(input_size, hidden_size) self.relu = nn.ReLU() self.fc2 = nn.Linear(hidden_size, num_classes) ### 回答2: 神经网络是一种模拟人脑神经元工作方式的计算模型Python提供了多种库和框架来构建神经网络模型,例如TensorFlow、Keras和PyTorch。 以下是用Python构建神经网络模型的基本步骤: 1. 导入所需的库:首先,在Python代码中导入所需的库,如TensorFlow或Keras。 2. 定义神经网络结构:创建神经网络模型的结构。这包括定义输入层、隐藏层和输出层,以及它们之间的连接方式。 3. 初始化参数:初始化神经网络模型的参数,如权重和偏差。 4. 前向传播:实现神经网络的前向传播算法,将输入数据通过模型的结构进行计算,得到预测结果。 5. 计算损失:通过比较预测结果和实际结果,计算模型的损失值。 6. 反向传播:使用反向传播算法,根据损失值调整模型的参数,以降低误差。 7. 更新参数:根据反向传播的结果,使用优化算法(如梯度下降)更新模型的参数。 8. 训练模型:使用训练数据进行模型训练。将训练数据输入模型,通过多次迭代的更新参数,提高模型的预测准确度。 9. 测试模型:使用测试数据评估已经训练好的模型的性能,并根据反馈结果进行调整。 10. 使用模型:训练好的模型可以用于对新数据进行预测或分类。 通过上述步骤,我们可以在Python中构建一个基本的神经网络模型。具体的实现会根据使用的库和框架而有所不同。通过不断学习和实践,可以进一步优化神经网络模型并应用于更复杂的问题。 ### 回答3: 神经网络是一种机器学习算法,它可以模仿人类大脑的工作方式来进行模式识别和预测。Python是一种强大的编程语言,有丰富的机器学习库和工具,如TensorFlow和Keras,可以用于构建神经网络模型。 为了写一个神经网络模型,首先我们需要定义神经网络的结构,包括输入层、隐藏层和输出层的数量,以及每个层中神经元的数量。然后,我们可以使用Python的机器学习库来构建这个神经网络模型。 在构建神经网络模型之前,我们还需要准备训练数据。这些训练数据包括输入数据和对应的目标值。我们可以使用Python的数据处理库来加载和准备数据。 接下来,我们可以使用机器学习库中的函数和类来构建神经网络模型。我们可以选择使用不同的层类型,如全连接层、卷积层或循环层,并设置每个层的参数,如激活函数、学习率和损失函数等。 完成模型构建后,我们可以使用训练数据对模型进行训练。通过多次迭代训练,模型将逐渐优化其预测能力。 最后,我们可以使用神经网络模型对新的数据进行预测。我们可以使用测试数据来评估模型的性能,并根据需要对其进行调整和改进。 总之,Python是一个功能强大的编程语言,可以轻松构建神经网络模型。通过使用Python的机器学习库和工具,我们可以设计和训练一个高效的神经网络模型,用于各种模式识别和预测任务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值