ML: 2-3 neural network 代码理解

本文介绍了如何使用Tensorflow实现推理,包括咖啡豆烘焙问题的优化和手写数字分类。内容涵盖数据表达方式、神经网络结构搭建,以及使用SequentialAPI构建和训练神经网络的过程。
摘要由CSDN通过智能技术生成

1. 如何用代码实现推理

1.1 介绍

  1. Tensorflow是实现深度学习算法里的领先的框架之一。
  2. Tensorflow和PyTorch一样都很常用。这节课会着重于Tensorflow,。
  3. 神经网络特点之一:是相同的算法可以被应用到很多不同的应用程序里。

1.2 案例1:咖啡豆的烘焙问题。

  1. 温度太低/时间太短—undercoked
  2. 温度太高/时间太长—overcoked
  3. 用神经网络来优化咖啡豆的烘焙。
  4. temp 200,duration 17: 算法会告诉我们它是否为好的咖啡。

请添加图片描述
5. 将input输入
6. layer_1里设置3个neurons,activation为sigmoid函数的神经网络算法。
7. dense为这层layer的类型。

请添加图片描述
8. 继续设置layer_2
9. a2的值为output,用a2来跟threshold比较。

请添加图片描述

1.3 案例2: 手写数字的分类问题。

请添加图片描述

2. Tensorflow中的数据形式【code理解】

【了解Tensorflow如何处理数据】

2.1 Tensorflow如何表达数据。

  1. double squared brackets [[]]表示什么???【表示2D数据】

请添加图片描述
2. Numpy如何储存vector和matrices???
- 用array来表示(按行存,每行用一个list表示)

请添加图片描述
3. Numpy arrays的区别
1. 是1行2列的matrix。【row vector】
2. 是2行1列的matrix。【column vector】
3. 只有一个squared bracket:【1D“vector”, 而不是2维的matrix。只是一组数据的list】
4. 在Tensorflow里用2D形式来表达数据。跟线性/逻辑回归不同,它俩用1D。

请添加图片描述
5. 把a1打印出来的结果如图
6. float32: 表示这个float在计算机占32bits的内存。
7. Tensor是一种数据类型,由Tensorflow创立团队建设的,能有效储存matrices的计算
8. 使用a1.numpy()可以将Tensor数据类型转回Numpy array

请添加图片描述
请添加图片描述

3. 搭建一个神经网络

【了解另一种构建neural networks的code方法】

  1. 回顾: 如图,这是上面学习的一种实现neural network的方法。
    请添加图片描述
  2. 另一种方法:
    (1)设置layer1、layer2。然后不用手动获取数据(a1,a2)传递到下一层。
    (2)使用sequential()函数将layer1、layer2串起来。
    (3)将training data输入进去。
    (4)使用model.complie() 、model.fit(x,y)
    (5)使用model.predict()让计算机帮忙做forward propagation,预测x_new值。

请添加图片描述

  1. 使用新方法,对手写数字进行预测。
    1. 设置layer信息。
    2. 使用sequential()指定什么是layer1,layer2等等。
    3. 使用.compile() 将model编译。
    4. 输入input
    5. 使用.fit(x,y)
    6. 使用模型进行预测model.predict(x_new)。

请添加图片描述

  • 这里layer1-3可以直接写进sequential()里面。
    请添加图片描述
Linear model和Neural Network是两种不同的模型。Linear model是一种可解释的模型,比如线性模型,它简单且易于理解,通过对数据进行线性组合来进行预测。而Neural Network是一种复杂的模型,它由多层神经元组成,可以学习和表示更复杂的特征和关系。 虽然我们不能使用线性模型完全模拟整个神经网络,但我们可以使用线性模型来模拟其中的一个局部区域。这意味着线性模型可以在神经网络的某个部分中近似地表示,并产生相似的输出。 如果你对如何构建一个简单的神经网络感兴趣,你可以查看一个名为"A simple BP Neural Network example"的例子,它是一个使用梯度下降算法的简单神经网络实现的示例。你可以通过下载一个压缩文件来获取这个例子的代码和数据。 但请注意,这个例子仅仅是一个简单的示例,真实的神经网络可能有更多的层和复杂的结构。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [2020李宏毅机器学习笔记-Explainable ML](https://blog.csdn.net/zn961018/article/details/117171228)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [A simple BP Neural Network example 一个简单的运用了梯度下降算法的神经网络例子.zip](https://download.csdn.net/download/qq_35831906/88253004)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值