tensorflow.keras搭建神经网络六步法

本文详细介绍使用TensorFlow.keras模块搭建神经网络的六步法,包括模块导入、数据准备、模型构建、训练配置、训练执行及模型总结。通过具体代码示例,展示如何利用Iris数据集进行神经网络训练,并实现分类预测。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

tensorflow.keras搭建神经网络六步法

  1. 第一步,import相关模块,如: import tensorflow as tf
  2. 第二步,指定输入网络的训练集和标签集,例如训练用的输入x_train和标签y_train,以及测试用的输入x_test和标签y_test
  3. 第三步,逐层搭建神经网络,如:model=tf.kreas.models.Sequential()
  4. 第四步,在model.compile()中配置训练方法,选择训练时用的优化器、损失函数和最终评价指标
  5. 第五步,在model.fit()中执行训练过程,告知训练集和标签集的输入值和标签、每个batch的大小(batchsize)和数据集的迭代次数(epoch)
  6. 第六步,使用model.summary()打印网络结构,统计参数数目

代码示例: 

#第一步,import
import tensorflow as tf #导入模块
from sklearn import datasets #从sklearn中导入数据集
import numpy as np #导入科学计算模块
import keras

#第二步,train, test
x_train = datasets.load_iris().data #导入iris数据集的输入

y_train = datasets.load_iris().target #导入iris数据集的标签

np.random.seed(120) #设置随机种子,让每次结果都一样,方便对照

np.random.shuffle(x_train) #使用shuffle()方法,让输入x_train乱序

np.random.seed(120) #设置随机种子,让每次结果都一样,方便对照

np.random.shuffle(y_train) #使用shuffle()方法,让输入y_train乱序

tf.random.set_seed(120) #让tensorflow中的种子数设置为120

#第三步,models.Sequential()
model = tf.keras.models.Sequential([ #使用models.Sequential()来搭建神经网络
    tf.keras.layers.Dense(3, activation = "softmax", kernel_regularizer = tf.keras.regularizers.l2()) #全连接层,三个神经元,激活函数为softmax,使用l2正则化
])

#第四步,model.compile()
model.compile(  #使用model.compile()方法来配置训练方法
    optimizer = tf.keras.optimizers.SGD(lr = 0.1), #使用SGD优化器,学习率为0.1
    loss = tf.keras.losses.SparseCategoricalCrossentropy(from_logits = False), #配置损失函数
    metrics = ['sparse_categorical_accuracy'] #标注网络评价指标
)

#第五步,model.fit()
model.fit(  #使用model.fit()方法来执行训练过程,
    x_train, y_train, #告知训练集的输入以及标签,
    batch_size = 32, #每一批batch的大小为32,
    epochs = 500, #迭代次数epochs为500
    validation_split = 0.2 #从测试集中划分80%给训练集
    # validation_frep = 20 #测试的间隔次数为20
)

#第六步,model.summary()
model.summary() #打印神经网络结构,统计参数数目

 

结果为: 

E:\Anaconda3\envs\TF2\python.exe C:/Users/Administrator/PycharmProjects/untitled8/keras实现iris数据集.py
Using TensorFlow backend.
Train on 120 samples, validate on 30 samples
Epoch 1/500

 32/120 [=======>......................] - ETA: 2s - loss: 5.2685 - sparse_categorical_accuracy: 0.4375
120/120 [==============================] - 1s 9ms/sample - loss: 2.7204 - sparse_categorical_accuracy: 0.4833 - val_loss: 0.8492 - val_sparse_categorical_accuracy: 0.5667
Epoch 2/500

省略.......


Epoch 499/500

 32/120 [=======>......................] - ETA: 0s - loss: 0.3444 - sparse_categorical_accuracy: 0.9375
120/120 [==============================] - 0s 200us/sample - loss: 0.3559 - sparse_categorical_accuracy: 0.9333 - val_loss: 0.3858 - val_sparse_categorical_accuracy: 0.9333
Epoch 500/500

 32/120 [=======>......................] - ETA: 0s - loss: 0.3086 - sparse_categorical_accuracy: 0.9688
120/120 [==============================] - 0s 225us/sample - loss: 0.3302 - sparse_categorical_accuracy: 0.9833 - val_loss: 0.3695 - val_sparse_categorical_accuracy: 0.9333
Model: "sequential"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
dense (Dense)                multiple                  15        
=================================================================
Total params: 15
Trainable params: 15
Non-trainable params: 0
_________________________________________________________________

Process finished with exit code 0
 

### 解决 TensorFlow 中 ModuleNotFoundError: No module named 'tensorflow.keras' 的问题 当遇到 `ModuleNotFoundError: No module named 'tensorflow.keras'` 时,通常是因为安装的 TensorFlow 版本不完整或代码中导入方式存在问题。以下是解决此问题的具体方法: #### 确认 TensorFlow 安装是否正确 首需要确认 TensorFlow 是否已正确安装并且版本符合预期。可以通过以下代码检查: ```python import tensorflow as tf print(tf.__version__) ``` 如果能够成功运行并输出版本号,则说明 TensorFlow 已正确安装[^2]。 #### 检查导入方式是否正确 在 TensorFlow 2.x 中,Keras 已深度集成到 TensorFlow 中。如果使用的是 TensorFlow 2.x 版本,应按照官方推荐的方式导入 Keras 模块: ```python from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense ``` 如果直接使用 `import tensorflow.keras.engine` 导致报错,则可能是导入路径不正确。正确的导入方式如下: ```python from tensorflow.keras import backend as K from tensorflow.keras.preprocessing import sequence from tensorflow.keras.utils import to_categorical ``` 上述导入方式已被验证适用于 TensorFlow 2.x 版本[^3]。 #### 验证 TensorFlow 版本与模块兼容性 确保使用的 TensorFlow 版本支持 `tensorflow.keras` 模块。例如,在 TensorFlow 2.7.0 中,`tensorflow.keras` 是默认集成的一部分。如果仍然无法找到该模块,可能需要重新安装 TensorFlow 或检查是否存在多版本冲突。 重新安装 TensorFlow 的命令如下: ```bash pip uninstall tensorflow pip install tensorflow==2.7.0 ``` #### 解决兼容性问题 如果代码是为 TensorFlow 1.x 编写且尝试在 TensorFlow 2.x 中运行,可以启用兼容模式以支持旧版 API: ```python import tensorflow.compat.v1 as tf tf.disable_v2_behavior() ``` 启用兼容模式后,可以继续使用 TensorFlow 1.x 的 API 和模块[^1]。 --- ### 示例代码:验证 `tensorflow.keras` 模块功能 以下代码可用于验证 `tensorflow.keras` 模块是否正常工作: ```python import tensorflow as tf from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense # 构建简单模型 model = Sequential([ Dense(16, activation='relu', input_shape=(10,)), Dense(1, activation='sigmoid') ]) # 编译模型 model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy']) # 打印模型结构 model.summary() ``` 如果能够成功运行并打印模型结构,则说明 `tensorflow.keras` 模块已正确加载。 --- ###
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值