数据库学习笔记
数据库系统的基本原理介绍基本概念、发展阶段、数据模型、DBMS的功能及组成、DBS的组成及全局结构 数据库概述1数据库系统的应用广泛应用在电信业、银行业、金融业、销售业、电商、大学、航空业、人力资源、制造业 数据库系统的概念数据Date数据:数据库存储的基本对象,是描述现实世界中各种事物或抽象概念的、可存储并具有明确意义的符号记录。 具体事物:有形且看得见的事物 抽象事物:无形且看不见的事物 记录是数据库系统表示和存储数据的一种格式 数据库DB简单上,数据库:相互关联的数据集合 严格上,数据库:长期存储在计算机内、有组织、可共享的大量数据的集合。 数据库具有较小的冗余度(不能杜绝数据冗余)、较高的数据独立性、易扩展性 数据库管理系统DBMS数据库系统核心部分,介于用户和OS之间。提供访问数据库的方法(数据库定义、建立、查询、更新及其他数据控制) 主要功能数据定义功能使用数据定义语言(DDL),在数据库中定义数据对象(表、视图、索引、存储过程等)、数据的完整性约束等 数据的完整性(主要):实体完整性、参照完整性、用户定义的完整性 数据操纵功能使用数据操纵语言(DML),对数据库进...
Agent三大范式
workflow与agent的区别workflow(工作流)核心是对一系列任务或步骤进行预先定义的、结构化的编排。本质上是一个精确的、静态的流程图,规定了在何种条件下、以什么顺序来执行什么操作。 简单地说,workflow就是让AI按部就班地执行指令。 agent一个具备自主性、以目标为导向的系统。在一定程度上理解环境、进行推理、制定计划,并动态地采取行动来达成目标。 简单地说,agent就是赋予AI自由度去自主地达成目标。 Agent经典范式ReAct范式ReAct的巧妙之处在于,它认识到思考与行动是相辅相成的。思考指导行动,而行动的结果又反过来修正思考。为此,ReAct范式通过一种特殊的提示工程来引导模型,使其每一步的输出都遵循一个固定的轨迹: Thought (思考): 这是智能体的“内心独白”。它会分析当前情况、分解任务、制定下一步计划,或者反思上一步的结果。 Action (行动): 这是智能体决定采取的具体动作,通常是调用一个外部工具,例如 Search['华为最新款手机']。 Observation (观察): 这是执行Action后从外部工具返...
深度学习激活函数学习
一、激活函数原理激活函数(activation function),就是在神经网络的神经元上运行的函数,负责将神经元的输入映射到输出层,旨在帮组神经网络学习数据中的复杂模式。 二、激活函数的作用使用激活函数能够为神经网络引入非线性因素,使得神经网络可以任意逼近任何非线性函数,使深层神经网络表达能力更加强大,使得神经网络可以应用到总舵的非线性模型中。如果不使用激活函数,那神经网络的每一层输出都是上层输入的线性函数,无论神经网络的层数是多少,其输出都是输入的线性组合,这样就退化为原始的感知机模型了。 三、激活函数分类激活函数可以分为饱和激活函数与非饱和激活函数。 3.1 饱和的概念 假设h(x)是一个激活函数,有如下一个极限:$$\lim_{n\rightarrow\pm\infty}h^\prime(x)=0$$当n趋于正无穷,激活函数的导数趋于0,则称之为右饱和;若当n趋于负无穷时,激活函数的导数趋于0,则称之为左饱和。当一个函数同时满足左饱和和右饱和时,我们称之为饱和,不然则称之为非饱和。 饱和激活函数:sigmoid、tanh 非饱和激活函数:ReLU、 Leak...
C++面经
1.头文件创建一个函数但源文件未实现该函数,会出现bug吗? 函数未被使用:编译和链接时都不报错 函数被使用:编译不报错,链接时报错(特殊情况:函数为内联函数时,编译和链接都报错) 若为模板函数(需要在头文件中声明和定义),需要在编译期进行模板实例化,会在编译期报错 2.头文件循环包含问题 当类/结构体仅被用作指针和引用时,不用包含完整定义,用前置声明替代头文件包含,示例如下: 12345678910//A.hclass B;// 前置声明class A{ B* b;// 或B &b;}//class A;class B{ A* a;} 但在源文件中需要包含具体头文件 解决重复包含问题:使用 头文件保护宏 或 #pragma once 12345//A.h#ifndef A_H#define A_H···#endif 解决依赖扩散问题:使用Pimpl解决
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. Quick StartCreate a new post1$ hexo new "My New Post" More info: Writing Run server1$ hexo server More info: Server Generate static files1$ hexo generate More info: Generating Deploy to remote sites1$ hexo deploy More info: Deployment
C++学习笔记
C++指针1.悬空指针 定义:指针被释放后,还指向原来的内存空间。如: 1234void *p = malloc(size);assert(p);free(p);//此时p为悬空指针 避免方法: 1234void *p = malloc(size);assert(p);free(p);p = NULL;//赋值为NULL来避免悬空指针 2.野指针 定义:指针不确定其具体指向的内存空间。如: 12void *p;//此时p为野指针 危害:可能指向任意内存段,因此它可能会损坏正常的数据,也有可能引发其他未知错误。 避免方法: 1void *p = NULL; 重载运算符重载1234函数类型 operator运算符(形参列表){ 重载语句;} operator为关键字,专门用于定义运算符重载的函数。可以将 operator运算符 看成函数名称。 运算符重载规则1.并不是所有的运算符都能被重载,如长度运算符sizeof、条件运算符: ?(三元运算符)、成员选择符.和域解析运算符::不能被重载。 2.重载不能改变运算符的优先级和结合性。 3.重载不改...
Linux下gdb调试
Linux下gdb调试使用gcc infile -o outfile -g可以使得在进行gdb调试时查看源代码 12345678910111213141516171819202122232425262728293031323334353637383940414243gdb 可执行文件名 //进入gdb调试quit //退出gdbset args xxx //设置参数show args //获取设置参数help //获取gdb使用帮助//运行gdb程序start //转到程序第一行run //执行代码直到遇上断点//显示代码l/list //l/list 行号/函数名 //l/list 外部源文件:行号/函数名 //show list/listsize //显示使用list显示的代码行数set list/listsize 数字 //设置行数//断点b/break 行号b/break 函数名b/break 外部源文件:行号/函数名//调试c/continue //遇上断点时使用,至下一个断点处停n/next //向下执行一行代码,不会进入函数体s/step //向下单步调试,会进入函...
无标题
操作系统一、计算机操作系统概述1.1 计算机系统1.1.1 计算机系统概述1.电子计算机1946年,第一台电子计算机ENIAC,美国。 2.计算机技术的发展①第一代电子管计算机(1946-1957) ②第二代晶体管计算机(1958-1964年) ③第三代集成电路计算机(1965-1977) ④第四代大规模与超大规模集成电路计算机(1978年至今) 3.计算机系统的组成现代计算机系统:硬件与软件组成。硬件是软件运行的物理基础。软件能够充分发挥硬件潜能并扩充硬件功能,共同完成各种应用任务。 计算机硬件系统:各种物理部件的有机结合,计算机系统的工作载体。 计算机软件系统:各类程序和文件,指挥计算机系统按指定要求进行协同工作。(包括系统软件、支持软件、应用软件)关键系统软件:操作系统、语言处理程序。 1.1.2 计算机硬件系统1.计算机硬件系统的组成中央处理器(运算单元和控制单元)、主存储器、外围设备(输入设备、输出设备、存储设备、通信设备),通过系统总线连接。 运算单元:执行具体的机器指令的运算。控制单元:解释机器指令。 主存:存储正在执行的程序和数据。 2.冯·诺依曼模型五个组成部分...
软件测试
软件测试1. 分类开发阶段分类: 单元测试:对最小模块测试 集成测试:小模块集成后测试 系统测试:所有流程统一的测试,包括功能测试、兼容性测试、性能测试、安全测试 验收测试:上线前的测试,包括 α测试:内测,开发环境下测试模拟用户测试 β测试:公测,实际环境下用户的测试 是否查看代码: 白盒测试:查看源代码进行测试,研究产品内部源代码和程序结构,例如单元测试。 黑盒测试(数据驱动测试):完全查看源代码进行测试,不考虑程序内部结构和内部特性,注重与测试软件的功能需求,只关心软件的输入数据和输出数据。 灰盒测试:只看一部分源代码进行测试,介于白盒与黑盒之间的测试 测试执行方式: 静态测试:不运行程序,只是检查代码 动态测试:运行程序,检查输入数据与输出数据是否符合逻辑 是否手工测试: 手动测试:即人工测试 自动测试:使用代码进行测试 其他: 冒烟测试: 回归测试:软件测试的第二轮开始,测试此前的bug是否修复 随机测试:模拟用户测试(用户测试一般是随机的),一般在最后一次 探索性测试:升级版的随机测试,未来的发展方向 2.自动化分层测试体系 70%单元测试 2...
无标题
计算机系统概述1.计算机系统概述1.1计算机基本工作原理1.1.1 冯诺依曼结构思想①采用“存储程序”工作方式 ②五个基本部件:控制器、运算器、存储器、输入设备、输出设备 ③控制器:自动执行指令 运算器:进行算术运算和逻辑运算 存储器:存放数据和指令(都是二进制形式) 输入输出设备:操作人员通过输入输出设备使用计算机 ④指令和数据:二进制形式 指令组成:操作码(操作类型)和地址码(操作数地址) 程序:一串指令组成 1.1.2冯诺依曼机基本结构主存(内存):存放指令和数据的主存储器 算术逻辑部件(Arithmetic Logic Unit,ALU):进行算数逻辑运算的部件 控制部件(控制器,Control Unit,CU):自动逐条取出指令并进行译码的部件 指令寄存器(Instruction Register,IR):暂时存放从主存中取出的指令 程序计数器(Program Count,PC):存放下一条指令的存放地址,实现按序读取主存中的指令 中央处理器(Central Processing Unit,CPU):控制部件、运算部件和各类寄存器互连组成的电路 总线...
