模型训练

简介: 【8月更文挑战第20天】模型训练。

模型训练
fit(x=None, y=None, batch_size=None, epochs=1, verbose=1, callbacks=None, validation_split=0.0, validation_data=None, shuffle=True, class_weight=None, sample_weight=None, initial_epoch=0, steps_per_epoch=None, validation_steps=None):
x: 输入训练数据;
y: 目标(标签)数据;
batch_size: 每次梯度更新的样本数。如果未指定,默认为 32;
epochs:训练模型迭代轮次;
verbose:0, 1 或 2。日志显示模式。 0 = 不显示, 1 = 进度条, 2 = 每轮显示一行;
callbacks:在训练时使用的回调函数;
validation_split:验证集与训练数据的比例;
validation_data:验证集;这个参数会覆盖validation_split;
shuffle: 是否在每轮迭代之前混洗数据。当steps_per_epoch非None时,这个参数无效;
initial_epoch: 开始训练的轮次,常用于恢复之前的训练权重;
steps_per_epoch:steps_per_epoch = 数据集大小/batch_size;
validation_steps:只有在指定了 steps_per_epoch 时才有用。停止前要验证的总步数(批次样本)。

代码:
import numpy as np

train_x = np.random.random((1000, 36))
train_y = np.random.random((1000, 10))

val_x = np.random.random((200, 36))
val_y = np.random.random((200, 10))

model.fit(train_x, train_y, epochs=10, batch_size=100,
validation_data=(val_x, val_y))

输出:
Train on 1000 samples, validate on 200 samples
Epoch 1/10
1000/1000 [==============================] - 0s 488us/sample - loss: 12.6024 - categorical_accuracy: 0.0960 - val_loss: 12.5787 - val_categorical_accuracy: 0.0850
Epoch 2/10
1000/1000 [==============================] - 0s 23us/sample - loss: 12.6007 - categorical_accuracy: 0.0960 - val_loss: 12.5776 - val_categorical_accuracy: 0.0850
Epoch 3/10
1000/1000 [==============================] - 0s 31us/sample - loss: 12.6002 - categorical_accuracy: 0.0960 - val_loss: 12.5771 - val_categorical_accuracy: 0.0850

Epoch 10/10
1000/1000 [==============================] - 0s 24us/sample - loss: 12.5972 - categorical_accuracy: 0.0960 - val_loss: 12.5738 - val_categorical_accuracy: 0.0850

对于大型数据集可以使用tf.data构建训练输入。

代码:
dataset = tf.data.Dataset.from_tensor_slices((train_x, train_y))
dataset = dataset.batch(32)
dataset = dataset.repeat()
val_dataset = tf.data.Dataset.from_tensor_slices((val_x, val_y))
val_dataset = val_dataset.batch(32)
val_dataset = val_dataset.repeat()

model.fit(dataset, epochs=10, steps_per_epoch=30,
validation_data=val_dataset, validation_steps=3)

输出:
Train for 30 steps, validate for 3 steps
Epoch 1/10
30/30 [==============================] - 0s 15ms/step - loss: 12.6243 - categorical_accuracy: 0.0948 - val_loss: 12.3128 - val_categorical_accuracy: 0.0833

30/30 [==============================] - 0s 2ms/step - loss: 12.5797 - categorical_accuracy: 0.0951 - val_loss: 12.3067 - val_categorical_accuracy: 0.0833

目录
相关文章
|
7月前
|
机器学习/深度学习 弹性计算 TensorFlow
在阿里云上打造强大的模型训练服务
随着人工智能技术的迅猛发展,模型训练服务变得愈发关键。阿里云提供了一系列强大的产品,使得在云端轻松搭建、优化和管理模型训练变得更加便捷。本文将详细介绍如何使用阿里云的相关产品构建高效的模型训练服务。
518 0
|
3月前
|
人工智能 自动驾驶 数据库
领域大模型的训练需要什么数据?
领域大模型的训练需要什么数据?
169 0
|
4月前
|
机器学习/深度学习 自然语言处理 数据可视化
训练模型
【8月更文挑战第1天】
51 2
|
7月前
|
机器学习/深度学习 人工智能 边缘计算
为何人们喜欢推理胜于训练大模型?
在AI和机器学习领域,越来越多的人转向重视推理而非大规模模型训练。推理的即时性和高效性使其在需要快速响应的场景中占优,如自然语言处理和图像识别。推理过程的可视化能帮助用户理解模型决策,便于调试和提升性能。此外,推理在边缘计算和移动设备上的应用降低了延迟和带宽成本,同时保护了用户隐私。相比于训练大模型的高资源消耗,推理更为节能且成本效益高,尤其在数据挖掘和新知识探索方面展现出创新潜力。推理在实际应用中与训练模型相结合,提供了性能与成本的有效平衡。随着技术进步,推理将在推动人工智能领域发展中发挥更大作用。
|
7月前
大模型,到底是什么“大”?
【1月更文挑战第19天】大模型,到底是什么“大”?
319 1
大模型,到底是什么“大”?
|
7月前
|
数据挖掘
Kano模型
Kano模型
98 0
|
7月前
|
安全 JavaScript Unix
BLP 模型
BLP 模型
200 3
|
7月前
使用xxmix9realistic_v40.safetensors模型
使用xxmix9realistic_v40.safetensors模型
302 0
每日训练(一)
题目来源于PTA基础编程和力扣剑指offer
每日训练(一)