当前位置: 首页 > news >正文

Python常见面试题的详解16

1. 如何强行关闭客户端和服务器之间的连接?

在网络编程中,有时需要强行中断客户端和服务器之间的连接。对于基于 TCP 协议的连接,由于其面向连接的特性,需要采取特定的步骤来确保连接被正确关闭;而 UDP 是无连接协议,处理方式相对简单。

服务器端(TCP)

python

import socket# 创建 TCP 套接字
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定地址和端口
server_socket.bind(('localhost', 8888))
# 开始监听
server_socket.listen(1)print("Waiting for a connection...")
# 接受客户端连接
conn, addr = server_socket.accept()
print(f"Connected by {addr}")try:# 强制关闭连接# 先禁用读写conn.shutdown(socket.SHUT_RDWR)# 关闭连接conn.close()print("Connection closed.")
except Exception as e:print(f"Error closing connection: {e}")

客户端(TCP)

python

import socket# 创建 TCP 套接字
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接到服务器
client_socket.connect(('localhost', 8888))try:# 强制关闭连接client_socket.shutdown(socket.SHUT_RDWR)client_socket.close()print("Connection closed.")
except Exception as e:print(f"Error closing connection: {e}")

服务器端(UDP)

python

import socket# 创建 UDP 套接字
server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 绑定地址和端口
server_socket.bind(('localhost', 8888))try:# 停止接收数据并关闭套接字server_socket.close()print("UDP socket closed.")
except Exception as e:print(f"Error closing UDP socket: {e}")
  • 要点
  1. TCP 连接关闭需要先使用 shutdown 方法禁用读写,再调用 close 方法关闭连接。
  2. UDP 连接直接调用 close 方法关闭套接字。
  3. 在实际应用中,强行关闭连接可能会导致数据丢失或未完成的操作中断。因此,在关闭连接之前,最好确保所有必要的数据已经传输完成。另外,对于 TCP 连接,shutdown 方法可以指定不同的参数,如 socket.SHUT_RD 表示关闭读通道,socket.SHUT_WR 表示关闭写通道。

2. 说明 TCP 和 UDP 的区别以及优缺点

TCP(Transmission Control Protocol)和 UDP(User Datagram Protocol)是两种常见的传输层协议,它们在连接性、可靠性、有序性、传输效率和首部开销等方面存在明显差异。

python

import socket# TCP 服务器示例
def tcp_server():server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)server_socket.bind(('localhost', 8888))server_socket.listen(1)print("TCP server is listening...")conn, addr = server_socket.accept()data = conn.recv(1024)print(f"Received from {addr}: {data.decode()}")conn.close()# UDP 服务器示例
def udp_server():server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)server_socket.bind(('localhost', 8889))print("UDP server is listening...")data, addr = server_socket.recvfrom(1024)print(f"Received from {addr}: {data.decode()}")server_socket.close()if __name__ == "__main__":import threadingtcp_thread = threading.Thread(target=tcp_server)udp_thread = threading.Thread(target=udp_server)tcp_thread.start()udp_thread.start()
  • 要点

对比项

TCP

UDP

连接性

面向连接,需三次握手建立连接,四次挥手断开连接

无连接,直接发送数据

可靠性

提供可靠传输,有确认、重传、滑动窗口机制

不可靠,可能丢包、乱序

有序性

保证数据有序接收

不保证数据有序

传输效率

相对较低,有连接建立和断开开销

相对较高,无连接开销

首部开销

一般为 20 字节

固定为 8 字节

优点

可靠、有序,适用于文件传输、网页浏览

高效、开销小,适用于实时性要求高的场景

缺点

效率低、资源占用多

不可靠、不保证有序

在选择使用 TCP 还是 UDP 时,需要根据具体的应用场景来决定。例如,对于视频会议、在线游戏等对实时性要求较高的应用,即使可能会有少量数据丢失,也更适合使用 UDP;而对于文件下载、电子邮件等对数据准确性要求较高的应用,则应选择 TCP。

3. 简述浏览器通过 WSGI 请求动态资源的过程

WSGI(Web Server Gateway Interface)是 Python Web 应用程序和 Web 服务器之间的标准接口,它定义了 Web 服务器如何与 Python 应用程序进行通信。浏览器通过 WSGI 请求动态资源的过程涉及多个环节。

python

def simple_app(environ, start_response):"""简单的 WSGI 应用"""status = '200 OK'headers = [('Content-type', 'text/plain; charset=utf-8')]start_response(status, headers)return [b'Hello, World!']if __name__ == '__main__':from wsgiref.simple_server import make_serverhttpd = make_server('localhost', 8000, simple_app)print("Serving on port 8000...")httpd.serve_forever()
  • 要点
  1. 浏览器发起 HTTP 请求。

  2. Web 服务器(如 Apache、Nginx)接收请求。

  3. Web 服务器将请求信息封装成符合 WSGI 规范的环境变量和可调用对象,调用 WSGI 应用程序。

  4. WSGI 应用程序处理请求,可能访问数据库、调用其他服务。

  5. WSGI 应用程序返回响应信息。

  6. Web 服务器将响应信息封装成 HTTP 响应,发送给浏览器。

  7. 浏览器解析渲染页面。

WSGI 使得 Python Web 应用程序可以在不同的 Web 服务器上运行,提高了代码的可移植性。常见的 Python Web 框架如 Flask、Django 都遵循 WSGI 规范。

4. 说明浏览器访问 www.baidu.com 的过程

当用户在浏览器中输入 www.baidu.com 并回车后,浏览器会经历一系列步骤来获取并显示百度的网页。

python

import sockettry:ip = socket.gethostbyname('www.baidu.com')print(f"The IP address of www.baidu.com is {ip}")
except socket.gaierror as e:print(f"DNS resolution error: {e}")
  • 要点
  1. DNS 解析:浏览器先检查本地 DNS 缓存,若没有则向本地 DNS 服务器查询,本地 DNS 服务器若没有则逐级向根 DNS 服务器、顶级域名 DNS 服务器、权威 DNS 服务器查询,最终获取目标网站的 IP 地址。

  2. TCP 连接:使用获取到的 IP 地址和端口号(通常是 80 或 443),通过三次握手与服务器建立 TCP 连接。

  3. HTTP 请求:浏览器向服务器发送 HTTP 请求,包含请求方法、URL、请求头和请求体。

  4. 服务器处理请求:服务器根据请求内容进行处理,可能涉及数据库查询、应用程序调用等。

  5. HTTP 响应:服务器处理完请求后,向浏览器发送 HTTP 响应,包含响应状态码、响应头和响应体。

  6. 浏览器解析渲染页面:浏览器解析响应内容,构建 DOM 树、CSSOM 树,合并成渲染树,进行布局和绘制。

  7. TCP 连接关闭:页面渲染完成后,通过四次挥手关闭 TCP 连接。

在实际过程中,还可能涉及到 HTTPS 协议的加密和解密过程,以及缓存策略的应用,以提高访问速度和性能。

5. 说明Post 和 Get 请求的区别

Post 和 Get 是 HTTP 协议中常用的两种请求方法,它们在参数传递方式、安全性、数据长度限制、缓存和使用场景等方面存在差异。

python

import requests# Get 请求示例
response_get = requests.get('https://www.example.com', params={'key': 'value'})
print(f"Get response status code: {response_get.status_code}")# Post 请求示例
data = {'key': 'value'}
response_post = requests.post('https://www.example.com', data=data)
print(f"Post response status code: {response_post.status_code}")
  • 要点

对比项

Get

Post

参数传递方式

参数附加在 URL 后面

参数放在请求体中

安全性

参数暴露在 URL 中,不安全

参数在请求体中,相对安全

数据长度限制

URL 长度有限制

无数据长度限制

缓存

会被浏览器缓存

一般不会被缓存

使用场景

适用于获取数据

适用于提交数据

在实际开发中,需要根据具体的需求选择合适的请求方法。同时,对于敏感信息的传递,即使使用 Post 请求,也建议采用 HTTPS 协议进行加密传输。

6. 说明cookie 和 session 的区别

Cookie 和 Session 是 Web 开发中用于跟踪用户状态的两种机制,它们在存储位置、安全性、数据大小、有效期和应用场景等方面有所不同。

python

from flask import Flask, request, make_response, sessionapp = Flask(__name__)
app.secret_key = 'your_secret_key'@app.route('/set_cookie')
def set_cookie():resp = make_response('Setting cookie...')resp.set_cookie('username', 'John')return resp@app.route('/get_cookie')
def get_cookie():username = request.cookies.get('username')return f'Cookie username: {username}'@app.route('/set_session')
def set_session():session['user'] = 'John'return 'Setting session...'@app.route('/get_session')
def get_session():user = session.get('user')return f'Session user: {user}'if __name__ == '__main__':app.run(debug=True)
  • 要点

对比项

Cookie

Session

存储位置

客户端浏览器

服务器端

安全性

不安全,可能被分析和欺骗

相对安全,数据在服务器端

数据大小

单个 Cookie 不超过 4K,一个站点最多保存 20 个

无数据大小限制

有效期

可通过 ExpiresMax - Age 控制

默认浏览器关闭失效,可设置延长

应用场景

保存基本信息,如用户名、偏好设置

保存登录状态、购物车信息

在使用 Cookie 和 Session 时,需要注意安全性问题。对于 Cookie,可以设置 HttpOnlySecure 属性来提高安全性;对于 Session,需要对会话 ID 进行加密和管理,防止会话劫持。

7.  HTTP 协议有哪些状态码

HTTP 状态码是服务器返回给客户端的三位数字代码,用于表示请求的结果。常见的状态码可以分为五类。

python

import requestsresponse = requests.get('https://www.example.com')
print(f"Response status code: {response.status_code}")
  • 要点

状态码分类

含义

常见状态码及说明

1xx(信息性状态码)

表示临时响应,用于通知客户端部分请求已被接收

100 Continue:客户端应继续发送请求

2xx(成功状态码)

表示请求成功

200 OK:请求成功;201 Created:资源已创建;204 No Content:请求成功但无返回内容

3xx(重定向状态码)

表示需要进一步操作以完成请求

301 Moved Permanently:资源永久移动;302 Found:资源临时移动;304 Not Modified:资源未修改,可使用缓存

4xx(客户端错误状态码)

表示客户端请求有错误

400 Bad Request:请求语法错误;401 Unauthorized:未授权;403 Forbidden:服务器拒绝执行;404 Not Found:资源不存在

5xx(服务器错误状态码)

表示服务器处理请求时出现错误

500 Internal Server Error:服务器内部错误;502 Bad Gateway:网关或代理接收到无效响应;503 Service Unavailable:服务器临时不可用

在实际开发中,根据不同的状态码可以进行相应的处理。例如,当返回 404 状态码时,可以显示自定义的错误页面;当返回 500 状态码时,需要记录错误日志以便排查问题。

8. 什么是三次握手和四次挥手

三次握手是 TCP 建立连接的过程,确保双方都有发送和接收数据的能力;四次挥手是 TCP 断开连接的过程,确保双方都能正确关闭连接。

python

# 模拟三次握手
def three_way_handshake():print("Client: SYN, seq=x")print("Server: SYN+ACK, seq=y, ack=x+1")print("Client: ACK, ack=y+1")print("Connection established.")# 模拟四次挥手
def four_way_wave():print("Client: FIN, seq=u")print("Server: ACK, ack=u+1")print("Server: FIN, seq=v")print("Client: ACK, ack=v+1")print("Connection closed.")if __name__ == "__main__":print("Three-way handshake:")three_way_handshake()print("\nFour-way wave:")four_way_wave()
  • 要点

三次握手

  1. 客户端发送 SYN 包,请求建立连接。

  2. 服务器发送 SYN+ACK 包,同意建立连接并确认客户端请求。

  3. 客户端发送 ACK 包,确认服务器请求,连接建立。

四次挥手

  1. 客户端发送 FIN 包,请求关闭连接。

  2. 服务器发送 ACK 包,确认客户端关闭请求。

  3. 服务器发送 FIN 包,请求关闭连接。

  4. 客户端发送 ACK 包,确认服务器关闭请求,连接断开。

三次握手和四次挥手是 TCP 协议保证连接可靠性的重要机制。在实际网络环境中,可能会出现丢包、超时等情况,需要通过重传机制来确保连接的正常建立和关闭。

9. 什么是 TCP 的 2MSL

MSL(Maximum Segment Lifetime)是指一个 TCP 分段在网络中最大的生存时间。2MSL 即两倍的 MSL 时间。在 TCP 连接关闭过程中,主动关闭连接的一方在发送最后一个 ACK 包后,会进入 TIME - WAIT 状态并保持 2MSL 时间。

python

# 模拟 TCP 连接关闭进入 TIME - WAIT 状态
def tcp_connection_close():print("Client sends FIN to close connection.")print("Server sends ACK.")print("Server sends FIN.")print("Client sends ACK and enters TIME - WAIT state for 2MSL.")if __name__ == "__main__":tcp_connection_close()
  • 要点
  1. MSL 是 TCP 分段在网络中的最大生存时间。

  2. 2MSL 是主动关闭连接方在 TIME - WAIT 状态的停留时间。

不同的操作系统对 MSL 的定义可能不同,一般来说,MSL 的值在 30 秒到 2 分钟之间。2MSL 时间的设置是为了保证 TCP 连接的可靠



友情提示:本文已经整理成文档,可以到如下链接免积分下载阅读

https://download.csdn.net/download/ylfhpy/90411385

相关文章:

Python常见面试题的详解16

1. 如何强行关闭客户端和服务器之间的连接? 在网络编程中,有时需要强行中断客户端和服务器之间的连接。对于基于 TCP 协议的连接,由于其面向连接的特性,需要采取特定的步骤来确保连接被正确关闭;而 UDP 是无连接协议&a…...

前端设计模式面试题及参考答案

目录 如何用闭包实现单例模式?列举两种实现方式 工厂模式与构造函数创建对象的核心区别是什么? 抽象工厂模式如何解决多平台 UI 组件兼容问题? 原型模式在前端框架中如何优化对象创建性能? 建造者模式如何实现复杂表单配置的链式调用? 单例模式在全局状态管理中的典型…...

Python Django系列—入门实例(二)

数据库配置 现在,打开 mysite/settings.py 。这是个包含了 Django 项目设置的 Python 模块。 默认情况下,​ DATABASES 配置使用 SQLite。如果你是数据库新手,或者只是想尝试 Django,这是最简单的选择。SQLite 包含在 Python 中…...

STM32-智能台灯项目

一、项目需求 1. 红外传感器检测是否有人,有人的话实时检测距离,过近则报警;同时计时,超过固定时间则报警; 2. 按键 1 切换工作模式:智能模式、按键模式、远程模式; 3. 智能模式下,根…...

HTML之JavaScript DOM操作元素(2)

HTML之JavaScript DOM操作元素(2) 4.增删元素var element document.createElement("元素名") 创建新元素父元素.appendChild(子元素) 在父元素中追加子元素父元素.insertBefore(新元素,参照元素) 在特定元素之前新增元…...

智能优化算法:莲花算法(Lotus flower algorithm,LFA)介绍,提供MATLAB代码

一、 莲花算法 1.1 算法原理 莲花算法(Lotus flower algorithm,LFA)是一种受自然启发的优化算法,其灵感来源于莲花的自清洁特性和授粉过程。莲花的自清洁特性,即所谓的“莲花效应”,是由其叶片表面的微纳…...

【复习】计算机网络

网络模型 OSI 应用层:给应用程序提供统一的接口表示层:把数据转换成兼容另一个系统能识别的格式会话层:负责建立、管理、终止表示层实体之间的通信会话传输层:负责端到端的数据传输网络层:负责数据的路由、转发、分片…...

【R语言】读取CSV数据时,显示[1] PK...<0 行> (或0-长度的row.names)

一、问题 当我使用以下代码读取CSV数据后&#xff0c;发现使用head(data)显示[1] PK...<0 行> (或0-长度的row.names)&#xff0c;如下截图所示。 # 尝试读取文件 data <- read.csv("C:\\Users\\11300\\Desktop\\test.csv", header TRUE) # 检查数据 hea…...

CentOS环境变量配置+解析

环境变量的作用就是让系统快速通过你的命令找到你的可执行程序&#xff0c;windows系统里也同理&#xff0c;也就是你每次输入个命令&#xff0c;系统就会找环境变量里到底有没有叫这个命令进程的 一、环境变量配置 1.编辑配置文件 vim /etc/profile export PATH$PATH:$JAVA…...

最新版本Exoplayer扩展FFmpeg音频软解码保姆级教程

ExoPlayer 是一个开源的 Android 媒体播放库&#xff0c;由 Google 开发和维护&#xff0c;用于替代 Android 系统自带的 MediaPlayer。它提供了更强大的功能、更好的性能和更高的灵活性&#xff0c;适用于各种复杂的媒体播放场景。所以被广泛用于各种播放器场景。 最近项目中…...

【蓝桥杯集训·每日一题2025】 AcWing 6134. 哞叫时间II python

6134. 哞叫时间II Week 1 2月20日 农夫约翰正在试图向埃尔茜描述他最喜欢的 USACO 竞赛&#xff0c;但她很难理解为什么他这么喜欢它。 他说「竞赛中我最喜欢的部分是贝茜说『现在是哞哞时间』并在整个竞赛中一直哞哞叫」。 埃尔茜仍然不理解&#xff0c;所以农夫约翰将竞赛…...

HTML/CSS中子代选择器

1.作用:选中指定元素中,符合要求的子元素. 子代选择器又称:子元素选择器,子选择器. 2.语法:选择器1>选择器2>选择器3>......选择器n 3.实例 <style>/* div中子代选择器 */div>a{color: red;}</style><div><a href"#">张三</…...

计算机毕业设计SpringBoot+Vue.jst网上购物商城系统(源码+LW文档+PPT+讲解)

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…...

EasyRTC:全平台支持与自研算法驱动的智能音视频通讯解决方案

在智能硬件的浪潮中&#xff0c;设备之间的互联互通已成为提升用户体验的核心需求。无论是智能家居、智能办公&#xff0c;还是工业物联网&#xff0c;高效的音视频通讯和交互能力是实现智能化的关键。然而&#xff0c;传统音视频解决方案往往面临平台兼容性差、交互体验不佳以…...

C#: 日志函数

背景&#xff1a; 1.常见的官方日志模块项目过于复杂&#xff0c;且配置过于繁琐&#xff0c;针对这种现象&#xff0c;实现在大型项目中快速定位错误问题&#xff1b; 实现思路&#xff1a; 1.设置当前日志文件路径&#xff08;获取到当前文件应用程序路径 \ErrorLog) 2.判…...

PyTorch 是如何进行机器学习的

1. 机器学习的核心流程 机器学习的核心是通过数据训练模型&#xff0c;让模型学会从输入数据中提取规律&#xff0c;并对新数据做出预测。整个过程可以分为以下几个步骤&#xff1a; 准备数据&#xff1a;收集并整理数据&#xff0c;分为输入&#xff08;特征&#xff09;和输…...

Java中的Stream API:从入门到实战

引言 在现代Java开发中&#xff0c;Stream API 是处理集合数据的强大工具。它不仅让代码更加简洁易读&#xff0c;还能通过并行处理提升性能。本文将带你从基础概念入手&#xff0c;逐步深入Stream API的使用&#xff0c;并通过实战案例展示其强大功能。 1. 什么是Stream API…...

【蓝桥杯单片机】客观题

一、第十三届省赛&#xff08;一&#xff09; 二、第十三届省赛&#xff08;二&#xff09;...

Spring Boot 中使用 @Transactional 注解配置事务管理

事务管理是应用系统开发中必不可少的一部分。Spring 为事务管理提供了丰富的功能支持。Spring 事务管理分为编程式和声明式的两种方式。编程式事务指的是通过编码方式实现事务&#xff1b;声明式事务基于 AOP,将具体业务逻辑与事务处理解耦。声明式事务管理使业务代码逻辑不受污…...

嵌入式八股文(五)硬件电路篇

一、名词概念 1. 整流和逆变 &#xff08;1&#xff09;整流&#xff1a;整流是将交流电&#xff08;AC&#xff09;转变为直流电&#xff08;DC&#xff09;。常见的整流电路包括单向整流&#xff08;二极管&#xff09;、桥式整流等。 半波整流&#xff1a;只使用交流电的正…...

《论多源数据集成及应用》审题技巧 - 系统架构设计师

论多源数据集成及应用写作框架 一、考点概述 本论题“论多源数据集成及应用”主要考察的是计算机软件测试工程师在数据管理和集成方面的专业知识与实践能力。论题聚焦于信息爆炸时代企业、组织和个人所面临的数据挑战&#xff0c;特别是如何有效地收集、整理和清洗来自不同渠…...

怎么在Github上readme文件里面怎么插入图片?

环境&#xff1a; Github 问题描述&#xff1a; 怎么在Github上readme文件里面怎么插入图片&#xff1f; https://github.com/latiaoge/AI-Sphere-Butler/tree/master 解决方案&#xff1a; 1.相对路径引用 上传图片到仓库 将图片文件&#xff08;如 .png/.jpg&#xff…...

【NLP 31、预训练模型的发展过程】

人的行为&#xff0c;究竟是人所带来的思维方式不同还是与机器一样&#xff0c;刻在脑海里的公式呢&#xff1f; 只是因为不同的人公式不同&#xff0c;所以人的行为才不同&#xff0c;可这又真的是人引以为傲的意识吗&#xff1f; 人脑只是相当于一个大型、驳杂的处理器&#…...

【计算机网络】传输层TCP协议

传输层 - layer4 - TCP协议 传输层&#xff1a;位于ISO模型的第四层 ——>L4 tcp协议意为传输控制协议&#xff08;Transmission Control Protocol&#xff09; 提供端到端的连接 端口号范围&#xff1a;0-65535 &#xff08;2^16次方&#xff09; 一个应用程序(服务)会占用…...

vscode settings(二):文件资源管理器编辑功能主题快捷键

参考资料 Visual Studio Code权威指南 by 韩骏 一. 文件资源管理器 1.1 文件资源管理器隐藏文件夹 默认情况下&#xff0c;Visual Studio Code会在文件资源管理器中隐藏一些文件夹&#xff08;如.git文件夹&#xff09;​。可以通过files.exclude来配置要被隐藏的文件和文件…...

halcon机器视觉深度学习对象检测,物体检测

目录 效果图操作步骤软件版本halcon参考代码本地函数 get_distinct_colors()本地函数 make_neighboring_colors_distinguishable() 效果图 操作步骤 首先要在Deep Learning Tool工具里面把图片打上标注文本&#xff0c; 然后训练模型&#xff0c;导出模型文件 这个是模型 mod…...

go 反射 interface{} 判断类型 获取值 设置值 指针才可以设置值

内容包括 1. 用interface{}接收值 2. 判断interface{}的类型 switch 3. 打印interface{}的类型 4. 通过字符串对结构体&#xff0c;interface{}等进行设置值、获取值处理 示例代码 package mainimport ("fmt""log""reflect" )type Student…...

单臂路由

单臂路由&#xff08;Router on a Stick&#xff09;是一种网络配置方式&#xff0c;主要用于在单个物理接口上实现多个VLAN之间的路由。它通常用于交换机与路由器之间的连接&#xff0c;适用于VLAN间通信需求较小的情况。 工作原理 VLAN划分&#xff1a;交换机上配置多个VLAN…...

SpringBoot【实用篇】- 测试

文章目录 目标&#xff1a; 1.加载测试专用属性3.Web环境模拟测试2.加载测试专用配置4.数据层测试回滚5.测试用例数据设定 目标&#xff1a; 加载测试专用属性加载测试专用配置Web环境模拟测试数据层测试回滚测试用例数据设定 1.加载测试专用属性 我们在前面讲配置高级的…...

NutUI内网离线部署

文章目录 官网拉取源代码到本地仓库修改源代码打包构建nginx反向代理部署访问内网离线地址 在网上找了一圈没有写NutUI内网离线部署的文档&#xff0c;花了1天时间研究下&#xff0c;终于解决了。 对于有在内网离线使用的小伙伴就可以参考使用了 如果还是不会联系UP主:QQ:10927…...

【深度学习】Adam和AdamW优化器有什么区别,以及为什么Adam会被自适应学习率影响

Adam 和 AdamW 的主要区别在于 权重衰减&#xff08;Weight Decay&#xff09; 的实现方式&#xff0c;具体如下&#xff1a; 1. 权重衰减&#xff08;Weight Decay&#xff09;处理方式 Adam&#xff1a;采用 L2 正则化&#xff0c;通过在梯度更新时手动添加 weight_decay 项…...

Pytorch的F.cross_entropy交叉熵函数

参考笔记&#xff1a;pytorch的F.cross_entropy交叉熵函数和标签平滑函数_怎么给crossentropyloss添加标签平滑-CSDN博客 先来讲下基本的交叉熵cross_entropy&#xff0c;官网如下&#xff1a;torch.nn.functional.cross_entropy — PyTorch 1.12 documentation torch.nn.fun…...

一文讲解Redis为什么读写性能高以及I/O复用相关知识点

Redis为什么读写性能高呢&#xff1f; Redis 的速度⾮常快&#xff0c;单机的 Redis 就可以⽀撑每秒十几万的并发&#xff0c;性能是 MySQL 的⼏⼗倍。原因主要有⼏点&#xff1a; ①、基于内存的数据存储&#xff0c;Redis 将数据存储在内存当中&#xff0c;使得数据的读写操…...

[特殊字符] Elasticsearch 双剑合璧:HTTP API 与 Java API 实战整合指南

&#x1f680; Elasticsearch 双剑合璧&#xff1a;HTTP API 与 Java API 实战整合指南 一、HTTP API 定义与用途 Elasticsearch 的 HTTP API 是基于 RESTful 接口设计的核心交互方式&#xff0c;支持通过 URL 和 JSON 数据直接操作索引、文档、集群等资源。适用于快速调试、…...

某手sig3-ios算法 Chomper黑盒调用

Chomper-iOS界的Unidbg 最近在学习中发现一个Chomper框架&#xff0c;Chomper 是一个模拟执行iOS可执行文件的框架&#xff0c;类似于安卓端大名鼎鼎的Unidbg。 这篇文章使用Chomper模拟执行某手的sig3算法&#xff0c;初步熟悉该框架。这里只熟悉模拟执行步骤以及一些常见的…...

蓝桥杯之阶段考核

&#x1f4d6; Day 7&#xff1a;阶段考核 - 蓝桥杯官方模拟赛&#xff08;限时 4 小时&#xff09; &#x1f4d6; 一、如何高效完成模拟赛&#xff1f; 模拟赛是一种接近真实竞赛的训练方式。要高效完成模拟赛&#xff0c;需要掌握以下策略&#xff1a; 1. 赛前准备 ✅ 环…...

DeepSeek掘金——VSCode 接入DeepSeek V3大模型,附使用说明

VSCode 接入DeepSeek V3大模型,附使用说明 由于近期 DeepSeek 使用人数激增,服务器压力较大,官网已 暂停充值入口 ,且接口响应也开始不稳定,建议使用第三方部署的 DeepSeek,如 硅基流动 或者使用其他模型/插件,如 豆包免费AI插件 MarsCode、阿里免费AI插件 TONGYI Lin…...

华为昇腾服务器(固件版本查询、驱动版本查询、CANN版本查询)

文章目录 1. **查看固件和驱动版本**2. **查看CANN版本**3. **其他辅助方法**注意事项 在华为昇腾服务器上查看固件、驱动和CANN版本的常用方法如下&#xff1a; 1. 查看固件和驱动版本 通过命令行工具 npu-smi 执行以下命令查看当前设备的固件&#xff08;Firmware&#xff0…...

红帽7基于kickstart搭建PXE环境

Kickstart 文件是一种配置文件&#xff0c;用于定义 Linux 系统安装过程中的各种参数&#xff0c;如分区、网络配置、软件包选择等。system-config-kickstart 提供了一个图形界面&#xff0c;方便用户快速生成这些配置文件。 用户可以通过图形界面进行系统安装的详细配置&…...

【Python爬虫(58)】从0到1:Scrapy实战爬取大型新闻网站

【Python爬虫】专栏简介&#xff1a;本专栏是 Python 爬虫领域的集大成之作&#xff0c;共 100 章节。从 Python 基础语法、爬虫入门知识讲起&#xff0c;深入探讨反爬虫、多线程、分布式等进阶技术。以大量实例为支撑&#xff0c;覆盖网页、图片、音频等各类数据爬取&#xff…...

DeepSeek使用从入门到精通

1. DeepSeek概述 - DeepSeek是国产大模型&#xff0c;提供网页版和App版。因其强大功能&#xff0c;遭受网络攻击&#xff0c;但国内用户可直接使用。 2. 入门技巧 - 忘掉复杂提示词&#xff1a;用简洁明了的需求指令&#xff0c;AI能自我思考并生成优质内容 - 明确需求&#…...

【分布式数据一致性算法】Gossip协议详解

在分布式系统中&#xff0c;多个节点同时提供服务时&#xff0c;数据一致性是核心挑战。在多个节点中&#xff0c;若其中一个节点的数据发生了修改&#xff0c;其他节点的数据都要进行同步。 一种比较简单粗暴的方法就是 集中式发散消息&#xff0c;简单来说就是一个主节点同时…...

一、初始爬虫

1.爬虫的相关概念 1.1 什么是爬虫 网络爬虫&#xff08;又被称为网页蜘蛛&#xff0c;网络机器人&#xff09;就是模拟浏览器发送网络请求&#xff0c;接收请求响应&#xff0c;一种按照一定的规则&#xff0c;自动地爬取互联网信息的程序。 原则上&#xff0c;只要是浏览器…...

C语言番外篇(3)------------>break、continue

看到我的封面图的时候&#xff0c;部分读者可能认为这和编程有什么关系呢&#xff1f; 实际上这个三个人指的是本篇文章有三个部分组成。 在之前的博客中我们提及到了while循环和for循环&#xff0c;在这里面我们学习了它们的基本语法。今天我们要提及的是关于while循环和for…...

ipad连接电脑断断续续,不断弹窗的解决办法

因为ipad air 屏幕摔坏&#xff0c;换了一个内外屏&#xff0c;想用爱思检验一下屏幕真伪&#xff0c; 连接电脑时&#xff0c;断断续续&#xff0c;连上几秒钟然后就断开&#xff0c;然后又连上 然后又断开&#xff0c;不断地弹出信任的弹窗。 刚开始以为是数据线问题&#x…...

dockerfile构建haproxy

1. 结构目录 [rootlocalhost ~]# tree haproxy/ haproxy/ ├── dockerfile └── files├── haproxy-2.5.0.tar.gz├── haproxy.cfg├── install.sh└── start.sh1 directory, 5 files [rootlocalhost ~]# [rootlocalhost ~]# cd haproxy/ [rootlocalhost haproxy]…...

创建第一个 Maven 项目(一)

一、引言 在 Java 开发的广袤天地中&#xff0c;Maven 宛如一位全能的管家&#xff0c;发挥着举足轻重的作用。它是一个基于项目对象模型&#xff08;POM&#xff09;的项目管理和构建自动化工具&#xff0c;极大地简化了 Java 项目的开发流程。 Maven 的核心优势之一在于其强…...

深度学习pytorch之19种优化算法(optimizer)解析

提示&#xff1a;有谬误请指正 摘要 本博客详细介绍了多种常见的深度学习优化算法&#xff0c;包括经典的LBFGS 、Rprop 、Adagrad、RMSprop 、Adadelta 、ASGD 、Adamax、Adam、AdamW、NAdam、RAdam以及SparseAdam等&#xff0c;通过对这些算法的公式和参数说明进行详细解析…...

C#贪心算法

贪心算法&#xff1a;生活与代码中的 “最优选择大师” 在生活里&#xff0c;我们常常面临各种选择&#xff0c;都希望能做出最有利的决策。比如在超市大促销时&#xff0c;面对琳琅满目的商品&#xff0c;你总想用有限的预算买到价值最高的东西。贪心算法&#xff0c;就像是一…...

SSH无密登录配置

SSH无密登录配置 1、在用户目录下创建.ssh目录 mkdir /home/atguigu/.ssh2、在.ssh目录下生成ssh秘钥&#xff08;需要切换到Hadoop集群使用的用户&#xff0c;再运行命令&#xff09; ssh-keygen -t rsa然后敲&#xff08;三个回车&#xff09;&#xff0c;就会生成两个文件…...