- 博客(35)
- 收藏
- 关注
原创 Tensorflow2.0
例如: w = tf.Variable(tf.random.normal([2, 2], mean=0, stddev=1)它是将变量标记为“可训练”,被标记的变量会在反向传播中被标记,在神经网络训练中,经常被用于标记待训练参数。tf.reduce_mean(张量名, axis=维度):求维度中的张量的平均值,如果没有维度就是求全部。tf.data.Dataset.from_tensor_slices((输入特征, 标签))tf.reduce_sum(张量名, axis=维度):同理,求的是和。
2024-07-31 14:49:51
564
原创 异常检测算法(Finding unusual event):
我们在这里标记的点实际上是一个确定异常的点,但是它在学x1的高斯分布图形中,很明显可以发现它的p值很大,检测肯定不会把它当成是一个异常,但当我们再加入一个新的特征,这时在整合图中,我们就会发现它很明显是一个被判断为异常。举一个例子,以我们的飞机为例,我们用我们的数据集对于x1和x2两个变量,我们可以得到我们的这一幅图,我们再加入两个测试项,会发现第一个在靠近图最中间的点是ok的,而在下面的那一个点明显是误差。当我们通过训练的过程,当我们在交叉验证的过程中,不能很好的工作,我们就需要对它进行误差分析。
2024-03-21 15:13:15
849
原创 聚类算法( clustering algorithm):
聚类算法是一种无监督学习方法,用于将数据集中的样本分为不同的组或簇,使得同一组内的样本彼此相似,而不同组之间的样本则具有较大的差异性。聚类算法的目标是发现数据中的内在结构,将相似的样本聚集在一起。就像上图这样把我们的得到的数据进行分类,分类到同一个集合中。
2024-03-20 16:08:19
1090
原创 决策树(decision tree)
决策树是一种常用的机器学习算法,用于解决分类和回归问题。它是一种树状结构,通过对数据集进行递归划分,基于特征的条件来进行决策和预测。以下都是一些决策树。
2024-03-12 20:13:53
1068
原创 创建机器学习系统及一些思想
我们在创建一个优秀的神经网络需要一个漫长的循环过程。先选择一个架构,再对我们的架构进行训练,最后诊断我们的误差,再回到我们重新的循环,直到我们的神经网络足够优秀。这就是机器学习迭代的过程。
2024-03-10 16:45:37
929
1
原创 神经网络softmax算法与卷积层
我们在最后的输出层,不再使用我们的soft Max算法,而是直接用我们的线性激活函数代替它,而在我们的损失算法中加入返回我们的输出值,这样一来,我们从原来的到其中的概率转变为了的到其中的值。这里的卷积层,就是我们的输入层是我们的卷积层,而我们的隐藏层中的神经元,会每个分别扫描不同的部分,而不是全部的卷积层,这也会带来一些优点,第一就是它的运行速度会更快,第二就是所需要的训练的数据更少。多类是分类算法中的一种,它区别于我们的0,1这样子的二进制分类,它会有多个分类的标签,让我们去取其中的一个。
2024-03-08 19:47:53
1176
原创 神经网络的矢量化,训练与激活函数
所以,最好的方式就是在隐藏层,我们更多是使用我们的ReLu函数,因为它的下降更加的快,对于我们函数的运行有好处,而在最后输出层,我们则可以根据我们的需要选择我们的激活函数。比如:我们用到了我们的sigmoid函数 ,就用在我们需要得到1或着0时,而我们的线性激活函数,则用在我们输出无论正负的范围,而我们的ReLu函数,则是对于大于0的部分。在我们使用我们的激活函数时,函数的平坦度会影响我们梯度下降的速度,会导致我们的成本函数取到最小值的时间变长,但我们用ReLu函数则在代码运行时,更加的快。
2024-03-08 14:09:05
1912
原创 神经网络(neural network)
有树突来收集信号,轴突用来传递信号,而我们的细胞则可以来处理我们的信息,在大量的神经元的连接就可以对一些数据进行处理,当然我们不光只是对人脑进行研究,其实我们在很多的动物中也有类似的探讨,当然我们的科学家并没有完全吃透我们的脑部科学原理,这就是为什么当我们的科学家在我们的脑部科学方面有进步时,我们的神经网络也会有许多的进步,在之前我们学到的线性回归和逻辑回归这样的基础算法ai,并不能完成这种深度算法学习,而需要我们对于神经网络的创建,这与我们在我们的神经网络中创建的神经元的数量有着巨大的联系。
2024-03-07 16:51:44
2057
1
原创 过拟合与正则化
这幅图上,第一个函数是因为,它偏离训练集太远而并不是最准确的,第二个是比较准确的一个,而最后一个则是完美的经过了所有的训练集但它是错误的,很明显这条函数一定是经过(0,0)的,而它并没有经过,我们成这种为过拟合,正所谓是拟合了但过头了。我们在正则化的方法中,由于我们现在并不知道什么特征是有用的,什么特征是没用的,我们最好的方法就是我们把所有的特征都变成我们的比较小的数字,这样函数就不会过拟合,所以我们的成本函数需要一些改进。是一个小数,大约1到10左右,而我们的m是我们的x的数量,
2024-03-06 19:23:10
1081
原创 分类算法(Classification algorithms)
我们会发现我们的线性回归往右边平移了,而判断是否为良性肿瘤的值也往右边移动了,这时我们的模型就会因为我们的数据而发生变化,这很明显不是一个准确的方法,让我们得到我们需要的数据。在这里我们把以上的图形进行了我们的线性回归得到了在0.5纵坐标的分界线,在0.5左侧是我们的良性肿瘤而在右边是我们的恶性肿瘤,这时我们得到了我们判断是否是良性肿瘤的方法,但当我们再添加一个数据时。在图中我们的❌指的是我们的好的事物,而⭕️指的是坏的事物,这时,我们要找到我们的决策分界线。很明显它与我们在上面的式子是等价的。
2024-03-06 14:08:50
1769
原创 特征缩放(Feature Scaling)
为什么我们要进行特征缩放呢,举一个简单的例子。在这里我们有两个特征,我们的目标是找到一个更加适合于计算出房价的函数模型,我们看左右两边的取值,很明显,在我们的左边对于我们的特征值的估计可以算出的值不是那么的准确,而右边的值所算出的答案是符合实际的,在这里我们会发现一个规律,在上面我们可以看到的范围在300到2000,而我们的的范围在我们的0到5它们之间有着很大的差异。我们看到我们在对 w取之时呈现的是范围大的特征值小,范围小的特征值大。这时我们就可以绘画出两幅图。
2024-02-29 21:22:36
1090
原创 多类特征(多元线性回归:multiple linear regression)
当然我们的最后还是要回归到我们的线性回归模型与我们的梯度下降所关联起来。前面还是和我们一样的梯度下降的式子,把我们的w向量写到一起,接下来我们来看一下我们的导数项。在左边是我们的只有一个w的情况,我们可以通过以上的偏导得到我们想要的值,而右边我们得到了n个从偏导数,这就是我们的梯度下降,需要一些微积分的知识即可证明。
2024-02-27 21:51:00
1033
原创 梯度下降算法(Gradient descent algorithm)
我们先介绍两个不同的概念:断言(truth assertion)和赋值(assignment),断言值得是两个值相同,比如a=c,说明的是a的值和c的值相同,但如果是a=a+1,它明显不对,因为不可能成立。在程序中,我们用的是==来表示。而赋值,值的是把等号右边的值赋值给左边的值,比如a=c指的是把c值赋值给a,而如果是a=a+1就是指的是a+1,在这里很明显就和断言完全不一样。在梯度下降算法中我们主要用到了两个式子。在这两个式子中。
2024-02-21 21:33:22
1003
原创 线性回归(regression)模型
如图所示,x指的是输入,y指的是输出,而m指的是所有的数据集的条数,也就是有几条数据,(x,y)这样的表示方法,它代表的是一个训练集(training set),在他们的上标加入(i)代表的是他们的索引(index),指的是他们是第几个数据集,而不是幂(exponent)函数的意思。这是一个根据上面的房价与大小得到的一个成本函数,这里面椭圆型的函数代表的是一圈一圈的相同J值的模型,那么我们要找到它的最小值,不就是去找到这里的这些同心圆的圆心。加入适量我们现在卖出的房子的大小为1250。
2024-02-18 21:11:25
811
原创 深度学习之机器学习
机器学习(Machine Learning)是一种人工智能(Artificial Intelligence)的分支领域,它涉及开发和应用能够从数据中自动学习和改进的算法和模型。机器学习的目标是让计算机系统通过数据和经验,不断地提高其性能和效果,而无需显式地进行编程。简单来说就是通过正确的答案,与回答对计算机系统进行培训,让它可以提升自己的性能。
2024-02-17 10:50:20
412
原创 Gateway的使用
第二步我们当然要添加依赖。因为我们的 Gateway需要在nacos注册,所以我们有两个依赖需要加入。--加入Gateway网关-->-- 服务注册 -->第三部,我们需要在这个模块中的引导类的yml中的加入我们的配置server:port: 9000spring:cloud:nacos:discovery:gateway:discovery:locator:routes: # 网关路由配置- id: service-hosp # 路由 id,自定义,只要唯一即可。
2024-01-15 16:00:18
584
原创 实战使用Feign远程调用
在这里我们需要加入@FeignClient的接口,并在它的后面的括号中加入我们需要调用的服务的名称(指的是在yml文件中的引导类的名称),而这里的加入的Repository或者@Service的注解是为可以让他注入一个Bean可以被引导类进行使用。首先,它的作用是在消费端使用提供端提供的服务接口,但因为在不同的服务,所以他们并不能直接进行调用,所以我们需要创建一个额外的接口,提供中间的连接。接下来我们需要在里面写入我们的方法,直接从需要调用的服务的Controller里面直接CV其中的方法。
2024-01-06 22:48:48
435
1
原创 MongoDB下载与使用,以及在spirng-boot中的应用
/mongod --dbpath /Users/xyy0524/编程相关/mongoDB/mongodb/bin。在已经退出开启的终端页面时,直接进行sudo losf -i:端口号(查找)mongoDB的用处是应用于一些重复出现的数据,可以更好的存储这样的数据。在mongoDB中我们有两种使用的方式他们的写法与mysql非常像。二、配置完,我们需要到yml文件中对数据库位置进行配置。先到mongoDB的官网中下载mongoDB。这种我们只要在要使用的地方加入一句。三、配置完,我们就可以开始使用。
2024-01-03 19:33:59
371
1
原创 Nginx的启动与使用
这是因为并没有启动Nginx导致他的pid并不存在,而在这里pid不存在它就会进行报错。下载之后,要使用就要对Nginx.conf进行修改。我使用的是Mac电脑,所以它的下载是使用。这里有一些对于Nginx的终端操作命令。这里会出现一个问题在进行重新加载配置文件。第一步:启动Nginx。第二步:再进行重新加载。
2024-01-03 10:40:15
423
1
原创 缓存redis的使用
这个用的是redis-pro这个软件,记得在yml文件中的host与port与之对应。2.@CachePut: 这个注解的作用是读取存在redis中的对应的数据。1.@Cacheable:这个注解的作用是在把数据放进redis缓存中。3.@CacheEvict:这个注解的作用是进行数据缓存的清空。首先在服务的pom文件中,注入maven坐标。然后我们要在进行redis缓存的地方进行配置。然后我们要创建一个配置类。
2024-01-02 20:37:25
373
1
原创 微服务开发------过滤器执行顺序和跨域问题处理
请求路由后会将当前路由过滤器和DefaultFilter、GlobalFilter,合并到一个过滤器链(集合)中,排序后依次执行每个过滤器。请求进入网关时,会碰到三类过滤器:当前路由的过滤器,DefaultFilter,GlobalFilter。把这段配置直接写入GatewayFilter中的yml文件。这里是几个类的源码。
2023-11-30 21:25:13
116
原创 微服务开发-------全局过滤器
不过GatewayFilter是通过配置进行定义,处理逻辑是固定的,而GlobalFilter的逻辑则是需要自己写代码实现。全局过滤器的作用就是处理一切进入网关的请求和微服务响应,与GatewaFilter的作用一样。2.判断authorization参数值是否为admin。其中@Order(-1)用来确定过滤器的使用先后。定义的方法就是实现GlobalFilter接口。1.参数中是否有authorization。如果同时满足则放行。
2023-11-30 20:48:44
53
原创 微服务开发-------------搭建网关,断言工厂以及GatewayFilter路由过滤器
1.身份验证和权限校验。2.服务路由,负载均衡。3.请求限流。
2023-11-30 15:05:52
82
原创 微服务开发-------Feign性能优化与抽取FeignClient
在这个过程中可能会遇到一个问题,就是定义的FeignClient不在SpringBootApplication的扫描包中时,这些FeignClient将无法使用。4.修改order-service中的所有与上述三个相关有关的import部分,改成feign-api中的包。这里的UserClient的直接放入feign-api, 这样的话直接在feign-api中直接调用。1.首先创建一个module,命名为feign-api,然后引入feign的start依赖。2.父接口参数列表的映射不会继承。
2023-11-28 16:59:28
126
原创 微服务开发---------Feign的远程调用与自定义配置
Feign是一个声名式的HTTP客户端,,官方地址:http://github.com/OpenFeign/feign。它的作用就是可以让我们优雅的发送http请求。2.在启动类中加入注解,开启Feign功能。Feign运行自定义配置来覆盖默认配置,可以修改以下配置。一般使用的配置都是日志级别的。feign:client:config:default: #这里的default就是全局注册,如果是写服务名称,则是对某个微服务的配置。loggingLevel:FULL#日志级别。
2023-11-26 19:47:22
86
1
原创 微服务开发----Nacos集群搭建与Nginx配置
进入nacos的conf文件中,修改 cluster.conf.example改为cluster.conf。1.在实际应用时,我们要给nginx设置一个域名,这样方便于有服务器迁移至nacos的客户端也无需更新配置。创建了多个nacos地址,从而我们可以对多个服务配置中分为多个集群,从而有多个nacos节点。在这里的集群化,就是为了让三个节点进行负载均衡,提升性能。这里的配置nacos,与之前有些不同,首先要在包解压到非中文路径下,当然在我们的电脑上只能修改它的端口号,从而有多个集群。
2023-11-25 14:34:46
237
原创 微服务开发-----Nacos自动刷新与多环境配置
情况:当我们在nacos中,对于配置进行修改时,此时在网页上的格式并没有立刻发生改变,所有我们需要通过热刷新来解决这个问题。这里的pattern.dateformat要与nacos中的配置相同,同时要加入@Component来使它成为服务的一部分。所以无论profile怎么改,[spring.application.name]它都是要用到的,因此在多环境配置中要加入它。我们需要进行对于在另外环境的服务端口进行测试,这里我们可以不对yml文件进行修改,我们可以在新建的服务端接口进行修改。
2023-11-24 21:12:50
166
2
原创 微服务开发-------Nacos配置中心配置
大家在这里是不是看到了一些和上面在nacos配置中一样的值,name+active+file-extension 和 DataId是一样的,是先通过网址找到nacos,再到nacos里根据DataId选择相应配置。但在加入nacos时,会让项目p的启动先经过nacos中的配置文件。(注意:这里的配置并不是把在yml文件中的所有配置都复制过来,而是把我们要进行热更新的配置拿过来用)在原来的项目中,是先在application.yml文件去寻找配置,再创建spring容器,并加载bean。
2023-11-23 20:47:59
114
原创 微服务开发------------Nacos服务分级存储
2.在nacos中默认使用的是AP模式(即当服务不能正常运行时,就会把它直接删除),但当设置为非临时实例时,就会使用PC模式(即当服务不能正常运行时,会自动等它恢复到正常状态),而Eureka只会采取AP模式。在配置完成后启动相应的服务端口,当你想让另一个改为另一个集群时,先在配置中改变其的集群名称,但在这时不能让前面的服务端口,不然两个的服务都是在同一个集群中。1.在nacos中,临时实例是用的心跳监测,而非临时实例则是会主动去访问,如果出现问题,也会把它设为不健康,而不会直接剔除,相反会等它恢复正常。
2023-11-22 21:17:50
49
原创 微服务开发---------Nacos注册中心创建
Nacos相较于Eureka的拥有更加丰富的功能,其中Eureka是spring cloud 的,而Nacos是spring cloud Alibaba。在github中的,Nacos官方给出的有两个版本。解决方法:在ideal中的jdk版本中找到你的jdk版本,在根据jdk的路径,对PATH_HOME的路径进行修改,让它们保持一致。GitHub的Release下载页:https://github.com/alibaba/nacos/releases。这里的默认账号和密码都是:nacos。
2023-11-21 23:31:25
42
1
原创 微服务开发---------Ribbon负载均衡
因为在Ribbon中采用的是懒加载,所以在第一次访问LoadBalanceClient,从而导致第一次的请求时间会很长,而饥俄加载则会在项目启动时,进行预热,降低第一次访问的时间消耗。所以以下的饥饿加载可以解决这个问题。ribbon:enable:true #饥饿加载clients:userservice #对于指定的服务进行饥饿加载。
2023-11-19 21:56:18
38
原创 微服务开发----------- Eureka注册中心
1.搭建Eureka server ,并在pom中加入eureka-server依赖2.在eureka server 启动类中加入@EnableEurekaServer3.在application.yml里配置eurake地址。
2023-11-19 16:48:42
53
原创 微服务开发-----------服务拆分与远程调用RestTemplate
1.不同的微服务,不要重复开发相同的业务2.微服务的数据是要保持独立的,每个微服务都有自己的数据库。3.微服务可以把自己的业务暴露为接口,供其他微服务进行使用。注意:在单体架构开发的方面我们可能会用到大量的重复业务功能,在微服务开发中我们应当学会去避免这样的事情发生。如图所示,该案例分为两部分:订单和用户两部分,需要进行分为两个微服务,一个是关于订单的,而另外一个是关于用户的,对于他们获得对方的数据就要通过对方的接口得到对方的独立数据库中的数据。这与单体架构的服务模式完全不同。
2023-11-17 22:29:10
54
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人