Keras学习笔记5——keras.losses

这篇博客介绍了Keras中两种重要的损失函数——logcosh和categorical_crossentropy。logcosh函数在小误差时类似均方误差,但对极端误差不敏感,而categorical_crossentropy适合处理多分类问题,要求目标值以one-hot编码表示。

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

损失函数(或称目标函数、优化评分函数)是编译模型时所需的两个参数之一:

from keras import losses
model.compile(loss=losses.mean_squared_error, optimizer='sgd')
# or
model.compile(loss='mean_squared_error', optimizer=
### 深度学习框架教程和资源 深度学习框架的选择对于初学者来说非常重要,因为不同的框架具有各自的特点和适用范围。以下是关于几种主流深度学习框架的相关教程和资源推荐: #### TensorFlow 教程和资源 TensorFlow 是由 Google 开发的一个开源机器学习框架,适用于多种任务,如计算机视觉、自然语言处理等[^2]。官方提供了丰富的文档和教程供用户学习: - **官方网站**: 提供详细的入门指南和高级教程,适合不同水平的学习者。 - **Colab 笔记本**: 官方提供基于 Jupyter Notebook 的 Colab 实例,允许用户在线运行代码并进行实验。 - **课程资源**: 如 Coursera 上的《Deep Learning Specialization》系列课程中也包含了大量 TensorFlow 的实践内容。 ```python import tensorflow as tf mnist = tf.keras.datasets.mnist (x_train, y_train), (x_test, y_test) = mnist.load_data() x_train, x_test = x_train / 255.0, x_test / 255.0 model = tf.keras.models.Sequential([ tf.keras.layers.Flatten(input_shape=(28, 28)), tf.keras.layers.Dense(128, activation='relu'), tf.keras.layers.Dropout(0.2), tf.keras.layers.Dense(10) ]) predictions = model(x_train[:1]).numpy() loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True) model.compile(optimizer='adam', loss=loss_fn, metrics=['accuracy']) model.fit(x_train, y_train, epochs=5) ``` #### PyTorch 教程和资源 PyTorch 是另一个非常流行的深度学习框架,以其简洁直观的 API 著称,尤其受学术界欢迎[^4]。它的动态计算图机制使得调试更加容易。 - **官方文档**: 包含从基础到进阶的各种主题讲解。 - **Fast.ai**: 这是一个专注于实用性的深度学习课程平台,其中很多项目都采用 PyTorch 构建模型。 - **Udacity**: 提供专门针对 PyTorch 的免费课程——《Intro to Deep Learning with PyTorch》,非常适合新手快速上手。 ```python import torch from torchvision import datasets, transforms from torch import nn, optim transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5,), (0.5,))]) trainset = datasets.MNIST('~/.pytorch/MNIST_data/', download=True, train=True, transform=transform) trainloader = torch.utils.data.DataLoader(trainset, batch_size=64, shuffle=True) model = nn.Sequential(nn.Linear(784, 128), nn.ReLU(), nn.Linear(128, 64), nn.ReLU(), nn.Linear(64, 10)) criterion = nn.CrossEntropyLoss() optimizer = optim.SGD(model.parameters(), lr=0.01) epochs = 5 for e in range(epochs): running_loss = 0 for images, labels in trainloader: images = images.view(images.shape[0], -1) optimizer.zero_grad() output = model(images) loss = criterion(output, labels) loss.backward() optimizer.step() running_loss += loss.item() else: print(f"Training loss: {running_loss/len(trainloader)}") ``` #### Keras 和 Caffe 教程 虽然目前使用频率不如前两者高,但仍然有许多经典教材会提及这两种工具的价值所在。 - **Keras** 主要作为高层接口存在,易于实现复杂结构;建议查阅 François Chollet 所著书籍中的实例说明部分[^3]。 - 对于传统 CNN 应用领域感兴趣的读者,则可以尝试探索 Caffe 文档及其配套样例程序集。 #### 国产框架 PaddlePaddle 和 ModelArts 推荐材料 近年来国内厂商推出的解决方案逐渐崭露头角,比如百度旗下的飞桨(PaddlePaddle)[^1]以及华为云上的ModelArts服务同样值得考虑加入研究计划当中去体验一番效果如何! ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值