深度学习|keras编程基础

使用 tensorflow.keras 接口,组装神经网络层次,训练并预测

参考链接:https://blog.csdn.net/March_A/article/details/129240390?ops_request_misc=&request_id=&biz_id=102&utm_term=tensorflow.keras%20&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-3-129240390.142v96pc_search_result_base5&spm=1018.2226.3001.4449

  1. Keras 基础:
    Keras 是一个用 Python 编写的高级神经网络 API,它能够以TensorFlow ,CNTK 或者Theano作为后端运行。在Keras的官方github上写着"Deep Learning for humans",主要是因为它能简单快速的创建神经网络, 而不需要像Tensorflow一样考虑很多中间过程.

Keras说白了就是一个壳子, 需要结合TensorFlow, CNTK或者Theano等后端框架来运行.基于这些特点, Keras的入门非常简单. TensorFlow已经把keras集成了.

  1. 基本语言:

    代码运行调整到 CPU 或者 GPU:
bash 复制代码
cpu=tf.config.list_physical_devices("CPU")
tf.config.set_visible_devices(cpu)

模型显示: model.summary()

模型创建: model = Sequential()

添加卷积层: model.add(Dense(32, activation='relu', input_dim=100)) # 第一层需要 input_dim

添加dropout: model.add(Dropout(0.2))

添加第二次网络: model.add(Dense(512, activation='relu')) # 除了first, 其他层不要输入shape

添加输出层: model.add(Dense(num_classes, activation='softmax')) # last 通常使用softmax

TensorFlow 中,使用 model.compile 方法来选择优化器和损失函数:

optimizer: 优化器: 主要有: tf.train.AdamOptimizer , tf.train.RMSPropOptimizer , or tf.train.GradientDescentOptimizer .

loss: 损失函数: 主要有:mean square error (mse, 回归), categorical_crossentropy (多分类) , and binary_crossentropy (二分类).

metrics: 算法的评估标准, 一般分类用accuracy.

bash 复制代码
model.compile(loss='categorical_crossentropy',
optimizer='rmsprop',
metrics=['accuracy'])

模型训练:

bash 复制代码
model.fit(x_train, y_train, batch_size = 64, epochs = 20, validation_data = (x_test, y_test))    # 模型训练

模型评估:

bash 复制代码
score = model.evaluate(x_test, y_test, verbose=0)    两个返回值: [ 损失率 , 准确率 ]

大数据集处理:把大数据集数据变成dataset:

bash 复制代码
dataset = tf.data.Dataset.from_tensor_slices((data, labels))
复制代码
指定每批数据大小: `dataset = dataset.batch(32).repeat()`
dataset 数据训练: `model.fit(dataset, epochs=10, steps_per_epoch=30)`

保存模型: model.save('my_model.h5')

加载模型: model = tf.keras.models.load_model('my_model.h5')

bash 复制代码
from keras.models import Sequential
from keras.layers import Dense, Activation
 
model = Sequenti([
    Dense(32, input_shape=(784,)),
    Activation('relu'),
    Dense(10),
    Activation('softmax'),
]al)
model.summary()

也可以简单的使用.add()方法将各层添加到模型中:

bash 复制代码
model = Sequential()
model.add(Dense(32, input_dim=784))
model.add(Activation('relu'))
model.summary()

手写数字识别问题 mnist 数据集

python 复制代码
from keras.layers import Input, Dense
from keras.models import Model
from keras.datasets import mnist
import tensorflow as tf
 
# 导入手写数字数据集
(x_train, y_train), (x_test, y_test) = mnist.load_data()#60000train ,10000test
# 对数据进行初步处理
x_train = x_train.reshape(60000, 784)
x_train = x_train.astype('float32')
x_train /= 255
# 将标记结果转化为独热编码
y_train = tf.keras.utils.to_categorical(y_train, num_classes=10)
# 这部分返回一个张量
inputs = Input(shape=(784))
# 层的实例是可调用的,它以张量为参数,并且返回一个张量
output_1 = Dense(64, activation='relu')(inputs)
output_2 = Dense(64, activation='relu')(output_1)
predictions = Dense(10, activation='softmax')(output_2)
 
# 这部分创建了一个包含输入层和三个全连接层的模型
model = Model(inputs=inputs, outputs=predictions)
model.compile(optimizer='rmsprop',
              loss='categorical_crossentropy',
              metrics=['accuracy'])
model.fit(x_train, y_train)  # 开始训练
相关推荐
luoganttcc6 小时前
自动驾驶 世界模型 有哪些(二)
人工智能·机器学习·自动驾驶
人工智能AI技术6 小时前
315曝光AI投毒!用C#构建GEO污染检测与数据安全防护方案
人工智能·c#
Hamm6 小时前
不想花一分钱玩 OpenClaw?来,一起折腾这个!
javascript·人工智能·agent
乌白云6 小时前
深度学习中的四种归一化方法
深度学习·归一化·批量归一化·层归一化
_李小白6 小时前
【AI大模型学习笔记之平台篇】第二篇:Gemini
人工智能·音视频
一点一木6 小时前
🚀 2026 年 2 月 GitHub 十大热门项目排行榜 🔥
人工智能·github
理性的曜7 小时前
VoloData——基于LangChain的智能数据分析系统
人工智能·vscode·数据分析·npm·reactjs·fastapi·ai应用
flying_13147 小时前
图神经网络分享系列-MPNN(Neural Message Passing for Quantum Chemistry)(二)
人工智能·深度学习·神经网络·图神经网络·消息传递·门控机制·mpnn
HyperAI超神经7 小时前
AI驱动量子精修,卡内基梅隆大学等提出AQuaRef,首次用量子力学约束精修蛋白质全原子模型
人工智能·深度学习·机器学习·架构·机器人·cpu·量子计算
balmtv7 小时前
Grok 3技术深度拆解:20万卡集群、思维链推理与DeepSearch的架构实现
人工智能·架构