文章目录

    • 神经网络(第二课第一周)
        • (一)神经网络的内涵
        • (二)如何构建神经元层
          • 1、tensorflow如何处理数据(Tensorflow 是由 Google 开发的机器学习包。)
          • 2、详细的一些实验代码,可以参考第二课第一周的相关代码。以下是一些代码相关的解释:(以下都是使用Tensorflow构建的神经网络)
          • 3、详细的一些实验代码,可以参考第二课第一周的相关代码。以下是一些代码相关的解释:(以下都是使用Numpy构建的神经网络)
        • (三)使用 Keras [Sequential 模型](https://keras.io/guides/sequential_model/)和具有 sigmoid 激活的 [Dense Layer](https://keras.io/api/layers/core_layers/dense/) 来构建网络。(以识别手写数字为例)
          • 1、首先清楚你数据集特征值和目标值的大小
          • 2、其次要清楚你要创建什么样的神经网络,这个神经网络有几层,每一层有多少个激活值(新特征),以及激活函数是什么
          • 3、使用 Keras [Sequential 模型](https://keras.io/guides/sequential_model/)和具有 sigmoid 激活的 [Dense Layer](https://keras.io/api/layers/core_layers/dense/) 来构建上述网络。
          • 4、定义损失函数并运行梯度下降,以使模型的权重适合训练数据。
          • 5、使用训练完成的模型对数据进行预测:使用 [Keras ](https://www.tensorflow.org/api_docs/python/tf/keras/Model)`predict`。要`预测`的输入是一个数组,因此单个示例被重塑为二维。
        • (四)使用 numpy来构建网络。(以识别手写数字为例)
          • 1、特别需要注意的是,手动定义计算激活值的函数:
          • 2、定义三层神经网络(这里的权重和偏差需要我们输入给他,或者是使用tensorflow已经训练好的权重给他)

神经网络(第二课第一周)

(一)神经网络的内涵

主要应用:语音、图像、文本。

**神经网络的内涵:**从原有的特征(特征向量)进行学习或者回归得到新的更能预测真实值的或者是更具有代表性的特征,使用新的特征(激活向量)再次学习或者回归,得到最终的预测概率。它的基本构建模块是一个神经元层。

神经网络应用于人脸识别:

(二)如何构建神经元层

在拟合新特征时一般使用的是逻辑回归函数,也称为激活函数,得到激活向量,作为新的特征值,这样以此类推(称之为向前传播)。

1、tensorflow如何处理数据(Tensorflow 是由 Google 开发的机器学习包。)

tensorflow可以将之前创建的两层或多层神经元按照顺序串联起来,形成一个神经网络。示例如下:

向前传播的代码解释:

2、详细的一些实验代码,可以参考第二课第一周的相关代码。以下是一些代码相关的解释:(以下都是使用Tensorflow构建的神经网络)

(1)线性神经单元层

定义一个具有一个神经元或单元的层,激活函数是线性回归。

linear_layer = tf.keras.layers.Dense(units=1, activation = 'linear', )

我们可以使用linear_layer.get_weights()或者是linear_layer.set_weights([set_w, set_b])可以设置神经元层的各参数权重。同时也可以通过将实例(矩阵)输入给模型,模型会初始化随机值权重。示例如下:

(2)逻辑神经单元层(一层和两层)

TensorFlow 的 Normalization 层可以用来自动学习数据的统计特性(均值和方差),并对数据进行标准化处理,使得数据的分布更加均匀,这通常有助于机器学习模型的训练和收敛。

拟合后会得到新的权重。有了新的权重之后我们可以对新的测试集进行归一化,然后使用新模型进行预测。

3、详细的一些实验代码,可以参考第二课第一周的相关代码。以下是一些代码相关的解释:(以下都是使用Numpy构建的神经网络)

与之前的不同之处在于,计算逻辑回归值一个是使用的矩阵乘法,一个是使用循环相加。创建神经网络也各有不同。

明白上面的之后,我们可以做一下第二课第一周的最后一个练习,看看掌握没有。

(三)使用 Keras Sequential 模型和具有 sigmoid 激活的 Dense Layer 来构建网络。(以识别手写数字为例)
1、首先清楚你数据集特征值和目标值的大小

手写数字数据集大小为1000X400;共计1000个样本,每个样本400个特征;目标是一个二分类问题,分类结果是0或者1。大小是1000x1。

2、其次要清楚你要创建什么样的神经网络,这个神经网络有几层,每一层有多少个激活值(新特征),以及激活函数是什么

这里手写数字的这个要创建的神经网络一共是3层,激活值分别是25、15、1;激活函数都是sigmoid函数。

3、使用 Keras Sequential 模型和具有 sigmoid 激活的 Dense Layer 来构建上述网络。

示例代码如下:在这里插入图片描述

使用model.summary可以输出你创建的神经网络的结构。例如:
在这里插入图片描述

创建完成神经网络之后,我们应该已经清楚每一层的w和b它们的大小是怎样的,例如第一层的w的大小应该是:400x25;b是25x1;第二层的w是25x15,b是15x1;以此类推。

我们可以检查一下创建的神经网络的权重大小是否一致,示例如下:
在这里插入图片描述

4、定义损失函数并运行梯度下降,以使模型的权重适合训练数据。

在这里插入图片描述

5、使用训练完成的模型对数据进行预测:使用 Keras predict。要预测的输入是一个数组,因此单个示例被重塑为二维。

在这里插入图片描述

模型的输出被解释为概率。在上面的第一个示例中,输入为零。该模型预测输入为 1 的概率几乎为零。在第二个示例中,input 是 1。该模型预测输入为 1 的概率接近 1。与 Logistic 回归的情况一样,将概率与阈值进行比较以做出最终预测。

在这里插入图片描述

(四)使用 numpy来构建网络。(以识别手写数字为例)
1、特别需要注意的是,手动定义计算激活值的函数:

在这里插入图片描述

矢量化numpy,仅用三行代码代替循环计算。

在这里插入图片描述

2、定义三层神经网络(这里的权重和偏差需要我们输入给他,或者是使用tensorflow已经训练好的权重给他)

在这里插入图片描述

我不太清楚这里为啥还要用一下numpy,用它的意义在哪里,tensorflow明明可以直接拟合出参数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/916445.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/916445.shtml
英文地址,请注明出处:http://en.pswp.cn/news/916445.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CCF-GESP 等级考试 2025年6月认证C++七级真题解析

1 单选题&#xff08;每题 2 分&#xff0c;共 30 分&#xff09;第1题 已知小写字母 b 的ASCII码为98&#xff0c;下列C代码的输出结果是&#xff08; &#xff09;。#include <iostream>using namespace std;int main() { char a b ^ 4; cout << a; …

【HarmonyOS】鸿蒙应用开发中常用的三方库介绍和使用示例

【HarmonyOS】鸿蒙应用开发中常用的三方库介绍和使用示例 截止到2025年&#xff0c;目前参考官方文档&#xff1a;访问 HarmonyOS三方库中心 。梳理了以下热门下载量和常用的三方库。 上述库的组合&#xff0c;可快速实现网络请求、UI搭建、状态管理等核心功能&#xff0c;显著…

SpringBoot 获取请求参数的常用注解

SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法&#xff1a;1. RequestParam用于获取查询参数(URL 参数)&#xff0c;适用于 GET 请求或 POST 表单提交。GetMapping("/user") public String getUser(RequestParam("id"…

【Linux篇章】Socket 套接字,竟让 UDP 网络通信如此丝滑,成为一招致胜的秘籍!

本篇文章将带大家了解网络通信是如何进行的&#xff08;如包括网络字节序&#xff0c;端口号&#xff0c;协议等&#xff09; &#xff1b;再对socket套接字进行介绍&#xff1b;以及一些udp-socket相关网络通信接口的介绍及使用&#xff1b;最后进行对基于udp的网络通信&#…

GIF图像格式

你可能已经知道&#xff0c;GIF 是一种光栅图像文件格式&#xff0c;它在不损失图像质量的前提下提供压缩功能&#xff0c;并且支持动画和透明度。 GIF 是“Graphics Interchange Format&#xff08;图形交换格式&#xff09;”的缩写。由于其良好的兼容性以及在不同应用程序和…

D3.js的力导向图使用入门笔记

D3.js是一个用于数据可视化的JavaScript库,广泛应用于Web端的数据交互式图形展示 中文文档&#xff1a;入门 | D3 中文网 一、D3.js核心特点 1、核心思想 将数据绑定到DOM元素&#xff0c;通过数据动态生成/修改可视化图形。 2、应用场景 交互式图表&#xff1a;如动态条…

Zookeeper的分布式事务与原子性:深入解析与实践指南

引言在分布式系统架构中&#xff0c;事务管理和原子性保证一直是极具挑战性的核心问题。作为分布式协调服务的标杆&#xff0c;Apache Zookeeper提供了一套独特而强大的机制来处理分布式环境下的原子操作。本文将深入探讨Zookeeper如何实现分布式事务的原子性保证&#xff0c;分…

Lua(迭代器)

Lua 迭代器基础概念Lua 迭代器是一种允许遍历集合&#xff08;如数组、表&#xff09;元素的机制。迭代器通常由两个部分组成&#xff1a;迭代函数和状态控制变量。每次调用迭代函数会返回集合中的下一个元素。泛型 for 循环Lua 提供了泛型 for 循环来简化迭代器的使用。语法如…

发布 VS Code 扩展的流程:以颜色主题为例

发布 VS Code 扩展的流程&#xff1a;以颜色主题为例 引言&#xff1a;您的 VS Code 扩展在市场中的旅程 Visual Studio Code (VS Code) 的强大扩展性是其广受欢迎的核心原因之一&#xff0c;它允许开发者通过添加语言支持、调试器和各种开发工具来定制和增强其集成开发环境&…

C++ 多线程(一)

C 多线程&#xff08;一&#xff09;1.std中的thread API 介绍开启一个线程获取线程信息API交换两个线程2.向线程里传递参数的方法第一种方式&#xff08;在创建线程的构造函数后携带参数&#xff09;第二种方式&#xff08;Lambda&#xff09;第三种方式&#xff08;成员函数&…

自动驾驶训练-tub详解

在 Donkeycar 的环境里&#xff0c;“tub” 是一个很关键的术语&#xff0c;它代表的是存储训练数据的目录。这些数据主要来源于自动驾驶模型训练期间收集的图像和控制指令。 Tub 的构成 一个标准的 tub 目录包含以下两类文件&#xff1a; JSON 记录文件&#xff1a;其命名格式…

CVPR多模态破题密钥:跨模对齐,信息串供

关注gongzhonghao【CVPR顶会精选】当今数字化时代&#xff0c;多模态技术正迅速改变我们与信息互动的方式。多模态被定义为在特定语境中多种符号资源的共存与协同。这种技术通过整合不同模态的数据&#xff0c;如文本、图像、音频等&#xff0c;为用户提供更丰富、更自然的交互…

小米路由器3G R3G 刷入Breed和OpenWrt 插入可共享网络的usb随身WiFi

小米 R3G 参数&#xff08;以下加黑加粗需要特别关注&#xff0c;灰常详细&#xff09; 市面上有R3G和R3Gv2两种型号, 注意区分, 后者是缩水版, 没有USB口. 内存只有128M, Flash只有16M. 这里描述的只适用于R3G. 就是这样 操作步骤开始&#xff0c;&#xff0c;注&#xff1a…

SpringBoot实现Serverless:手撸一个本地函数计算引擎

前言 最近突然冒出一个想法&#xff1a;能不能用SpringBoot自己实现一个类似AWS Lambda或阿里云函数计算的执行引擎&#xff1f; 说干就干&#xff0c;于是从零开始设计了一套基于SpringBoot的Serverless执行框架。 这套框架支持函数动态加载、按需执行、资源隔离&#xff0c;甚…

Java排序算法之<插入排序>

目录 1、插入排序 2、流程介绍 3、java实现 4、性能介绍 前言 在 Java 中&#xff0c; 冒泡排序&#xff08;Bubble Sort&#xff09; 和 选择排序&#xff08;Selection Sort&#xff09; 之后&#xff0c;下一个性能更好的排序算法通常是 插入排序&#xff08;Insertion …

《计算机网络》实验报告七 HTTP协议分析与测量

目 录 1、实验目的 2、实验环境 3、实验内容 4、实验结果与分析 4.1 使用tcpdump命令抓包 4.2 HTTP字段分析 5、实验小结 5.1 问题与解决办法&#xff1a; 5.2 心得体会&#xff1a; 1、实验目的 1、了解HTTP协议及其报文结构 2、了解HTTP操作过程&#xff1a;TCP三次…

面试实战,问题十三,Redis在Java项目中的作用及使用场景详解,怎么回答

Redis在Java项目中的作用及使用场景详解&#xff08;面试要点&#xff09; 一、Redis的核心作用高性能缓存层 原理&#xff1a;Redis基于内存操作&#xff08;引用[2]&#xff09;&#xff0c;采用单线程模型避免线程切换开销&#xff0c;配合IO多路复用实现高吞吐&#xff08;…

Python - 100天从新手到大师 - Day6

引言 这里主要是依托于 jackfrued 仓库 Python-100-Days 进行学习&#xff0c;记录自己的学习过程和心得体会。 1 文件读写和异常处理 实际开发中常常会遇到对数据进行持久化的场景&#xff0c;所谓持久化是指将数据从无法长久保存数据的存储介质&#xff08;通常是内存&…

IP--MGER综合实验报告

一、实验目的完成网络设备&#xff08;路由器 R1-R5、PC1-PC4&#xff09;的 IP 地址规划与配置&#xff0c;确保接口通信基础正常。配置链路层协议及认证&#xff1a;R1 与 R5 采用 PPP 的 PAP 认证&#xff08;R5 为主认证方&#xff09;&#xff0c;R2 与 R5 采用 PPP 的 CH…

window的WSL怎么一键重置

之前用WSL来在windows和服务器之间传输数据&#xff0c;所以有很多数据缓存&#xff0c;但是现在找不到他们的路径&#xff0c;所以想直接重置 首先使用spacesniffer看一下C盘的情况&#xff1a;看起来&#xff0c;这个WSL真的占用了很多空间&#xff0c;但是我又不知道该怎么删…