【深度学习】compile() ,fit(),`binary_crossentropy`
编译(compile)就是配置模型的“训练规则”。使用什么优化器(如 Adam、SGD)来更新权重用哪个损失函数来计算“学得好不好”训练/验证过程要监控哪些指标就像准备工作,把模型架好、规则定好,才能开训。是用来衡量“你对1类预测得有多准”的标准,预测准 → 损失小,预测错 → 损失大,是神经网络学习的核心“指导信号”。
一、compile()
和 fit()
的区别
方法名 | 作用 | 类比 |
---|---|---|
compile() |
准备模型:告诉它怎么学(优化器)、怎么衡量(指标)、学什么(损失函数) | 给厨师配菜单和工具 |
fit() |
开始训练:喂数据,让模型通过训练调整参数 | 厨师正式开始做菜 |
举个例子:
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
model.fit(X_train, y_train, epochs=10, batch_size=32)
意思就是:
“用Adam优化器+二分类交叉熵的方式来训练模型,并观察准确率,每次喂32个样本,总共学10轮。”
二、什么是“编译模型”?
编译(compile)就是配置模型的“训练规则”。
包括:
- 使用什么优化器(如 Adam、SGD)来更新权重
- 用哪个损失函数来计算“学得好不好”
- 训练/验证过程要监控哪些指标
就像准备工作,把模型架好、规则定好,才能开训。
三、binary_crossentropy
是什么?
中文叫“二分类交叉熵”
它是一个用来衡量模型预测和真实标签之间差异的函数,特别适用于二分类任务(比如:是否患病、真假、好坏等)。
数学公式(对一个样本):
Loss=−[y⋅log(p)+(1−y)⋅log(1−p)] \text{Loss} = -[y \cdot \log(p) + (1 - y) \cdot \log(1 - p)] Loss=−[y⋅log(p)+(1−y)⋅log(1−p)]
- yyy:真实标签(0 或 1)
- ppp:模型预测的概率值(介于0到1之间)
举个例子:
假设真实标签是 y=1
(表示“阳性”),模型预测为 p=0.9
(很有信心)
Loss = -[1 * log(0.9) + 0 * log(0.1)] = -log(0.9) ≈ 0.105
换成预测为 p=0.1
(信心错了)
Loss = -log(0.1) ≈ 2.3(损失很大,模型会被惩罚)
✅ 总结一句话:
binary_crossentropy
是用来衡量“你对1类预测得有多准”的标准,预测准 → 损失小,预测错 → 损失大,是神经网络学习的核心“指导信号”。

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)