深度学习TF—3.神经网络全连接层

本文介绍了在深度学习中如何使用TensorFlow加载数据集,包括`tf.data.Dataset.from_tensor_slices()`和`keras.datasets`。接着,详细讨论了神经网络全连接层的发展原因、Keras中的Dense层用法、多层全连接网络的构建,以及输出方式和误差计算方法,如ReLU激活函数、softmax和交叉熵损失函数。
摘要由CSDN通过智能技术生成

一、数据集的加载

1.tf.data.Dataset.from_tensor_slices()

描述
它的作用是切分传入Tensor的第一个维度,生成相应的dataset。
将输入的张量的第一个维度看做样本的个数,沿其第一个维度将tensor切片,得到的每个切片是一个样本数据。实现了输入张量的自动切片。

输入数据可以是numpy格式,也可以是tensorflow的tensor的格式,函数会自动将numpy格式转为tensorflow的tensor格式
输入可以是一个tensor 或 一个tensor字典(字典的每个key对应的value是一个tensor,要求各tensor的
第一个维度相等) 或 一个tensor tuple(tuple 的每个元素是一个tensor,要求各tensor的第一个维度
相等)

# from_tensor_slices 为输入张量的每一行创建一个带有单独元素的数据集
ts = tf.constant([[1, 2], [3, 4]])
ds = tf.data.Dataset.from_tensor_slices(ts)   # [1, 2], [3, 4]

方法

  • shuffle—打乱
    shuffle-打散-注意:x和y的相对顺序不能打散
    可以利用idx来记录打散顺序,以确保x和y的相对顺序
    在这里插入图片描述

  • batch—多个样本数据转换成一个batch,非常有利于加速计算
    batch-读取batch个(x,y)
    在这里插入图片描述

  • map—转换(数据预处理)
    在这里插入图片描述

  • repeat—重复
    在这里插入图片描述

案例
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import datasets

# 数据预处理
def prepare_mnist_features_and_labels(x,y):
    x = tf.cast(x,dtype=tf.float32) / 255.0
    y = tf.cast(y,dtype=tf.int64)
    y = tf.one_hot(y,depth=10)
    return x,y

# 数据集
# 数据集加载-->dataset-->ont_hot等数据预处理-->shuffle-->batchm
def mnist_dataset():
    (x,y),(x_val,y_val) = datasets.fashion_mnist.load_data()

    ds = tf.data.Dataset.from_tensor_slices((x,y))
    ds = ds.map(prepare_mnist_features_and_labels)
    ds = ds.shuffle(60000).batch(100)

    ds_val = tf.data.Dataset.from_tensor_slices((x_val,y_val))
    ds_val = ds_val.map(prepare_mnist_features_and_labels)
    ds_val = ds_val.shuffle(10000).batch(100)

    return ds,ds_val

if __name__ == '__main__':
    ds,ds_val = mnist_dataset()

2.keras.datasets—小型常用数据集的API接口

常用的数据集有:

  • boston housing
  • mnist/fashion mnist
  • cifar10/100
  • imdb
    在这里插入图片描述
    在这里插入图片描述

二、张量实战

在这里插入图片描述

  • 前向传播
  • 梯度下降
  • 评估/测试
# 将无关信息屏蔽掉
import os
# 取值有四个:0,1,2,3,分别对应INFO,WARNING,ERROR,FATAL
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值