Python 和 Tensorflow 相关

本文详细介绍了如何使用Python和Tensorflow 2.1.0进行深度学习,包括pip安装、Keras API的使用、模型训练与评估、Tensorboard的可视化、目标检测和自定义层。通过示例展示了Sequential模型、函数式API以及模型子类化的用法,并讨论了epoch、batch和batch size的概念。此外,还涵盖了激活函数、优化器、数据集API以及Tensorboard的使用技巧。
摘要由CSDN通过智能技术生成

pip

  • pip 镜像

    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pandas

Tensorflow 2.1.0

tf.keras

Keras 简介
Keras是一个用于构建和训练深度学习模型的高级API。 它用于快速原型设计,高级研究和生产,具有三个主要优点:

用户友好
Keras具有针对常见用例优化的简单,一致的界面。 它为用户错误提供清晰且可操作的反馈。
模块化和可组合
Keras模型是通过将可配置的构建块连接在一起而制定的,几乎没有限制。
易于扩展
编写自定义构建块以表达研究的新想法。 创建新图层,损失函数并开发最先进的模型。

  1. 导入 tf.keras
import tensorflow as tf
from tensorflow import keras
  1. 构建一个简单的模型
    2.1 Sequential model
    在Keras中,您可以组装图层来构建模型。 模型(通常)是图层图。 最常见的模型类型是一堆层:tf.keras.Sequential 模型。
    构建一个简单的全连接网络(即多层感知器):
model = keras.Sequential()
model.add(keras.layers.Dense(64, activation='relu'))
model.add(keras.layers.Dense(64, activation='relu'))
model.add(keras.layers.Dense(10, activation='softmax'))

2.2 Configure the layers
在 tf.keras.layers 中有很多层,下面是一些通用的构造函数的参数:

activation :设置层的激活函数。 此参数由内置函数的名称或可调用对象指定。 默认情况下,不应用任何激活。
kernel_initializerbias_initializer :设置层创建时,权重和偏差的初始化方法。指定方法:名称 或 可调用对象。默认为"Glorot uniform" initializer。
kernel_regularizerbias_regularizer :设置层的权重、偏差的正则化方法。比如:L1 或 L2 正则。默认为空。
以下实例化tf.keras。 layers.Dense图层使用构造函数参数:

layers.Dense(64, activation='sigmoid')
layers.Dense(64, activation=tf.sigmoid)
layers.Dense(64, kernel_regularizer=keras.regularizers.l1(0.01))
layers.Dense(64, bias_regularizer=keras.regularizers.l2(0.01))
layers.Dense(64, kernel_initializer='orthogonal')
layers.Dense(64, bias_initializer=keras.initializers.constant(2.0))
  1. Train and evaluate
    3.1 Set up training
    构建模型后,通过调用compile方法配置其训练过程:
model.compile(optimizer=tf.train.AdamOptimizer(0.001),
              loss='categorical_crossentropy',
              metrics=['accuracy'])
tf.keras.Model.compile有三个重要参数:

optimizer :训练过程的优化方法。此参数通过 tf.train 模块的优化方法的实例来指定,比如:AdamOptimizer, RMSPropOptimizer, GradientDescentOptimizer。
loss :训练过程中使用的损失函数(通过最小化损失函数来训练模型)。 常见的选择包括:均方误差(mse),categorical_crossentropy和binary_crossentropy。 损失函数由名称或通过从tf.keras.losses模块传递可调用对象来指定。
metrics :训练过程中,监测的指标(Used to monitor training)。
指定方法:名称 或 可调用对象 from the tf.keras.metrics 模块。
以下显示了配置培训模型的几个示例:

# Configure a model for mean-squared error regression.
model.compile(optimizer=tf.train.AdamOptimizer(0.01),
              loss='mse',       # mean squared error
              metrics=['mae'])  # mean absolute error

# Configure a model for categorical classification.
model.compile(optimizer=tf.train.RMSPropOptimizer(0.01),
              loss=keras.losses.categorical_crossentropy,
              metrics=[keras.metrics.categorical_accuracy])

3.2 Input NumPy data
对于小的数据集,可以直接使用 NumPy 格式的数据进行训练、评估模型。模型使用 fit 方法训练数据:

import numpy as np

data = np.random.random((1000, 32))
labels = np.random.random((1000, 10))

model.fit(data, labels, epochs=10, batch_size=32)
tf.keras.Model.fit 有三个重要的参数:

epochs :训练多少轮。(小批量)
batch_size :当传递NumPy数据时,模型将数据分成较小的批次,并在训练期间迭代这些批次。 此整数指定每个批次的大小。 请注意,如果样本总数不能被批量大小整除,则最后一批可能会更小。
validation_data :在对模型进行原型设计时,您希望轻松监控其在某些验证数据上的性能。 传递这个参数 - 输入和标签的元组 - 允许模型在每个epoch的末尾以传递数据的推理模式显示损失和度量。
这是使用validation_data的示例:

import numpy as np

data = np.random.random((1000, 32))
labels = np.random.random((1000, 10))

val_data = np.random.random((100, 32))
val_labels = np.random.random((100, 10))

model.fit(data, labels, epochs=10, batch_size=32,
          validation_data=(val_data, val_labels))

3.3 Input tf.data datasets
使用数据集API可扩展到大型数据集或多设备培训。 将tf.data.Dataset实例传递给fit方法:
使用 Datasets API 可扩展到大型数据集或多设备训练。 给 fit 方法传递一个 tf.data.Dataset 实例:

# Instantiates a toy dataset instance:
dataset = tf.data.Dataset.from_tensor_slices((data, labels))
dataset = dataset.batch(32)
dataset = dataset.repeat()

# Don't forget to specify `steps_per_epoch` when calling `fit` on a dataset.
model.fit
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值