自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

帅东's Blog

When I look back, I will not regret for wasted years, not because of mediocrity and shame

  • 博客(85)
  • 资源 (1)
  • 收藏
  • 关注

原创 Backpropagation反向传播算法【总结】

一般的Gradient Descent是从上往下计算偏微分,但在一个函数里面不仅要展开当前层所有的Neuron,而且每个Neuron还要继续展开下一层所有的Neuron,直到最后一层。这样效率是不高的,主要是递归计算带来的开销。那么优化方案就是递归改递推,就好像算法中【递归】改成【动态规划】,效率会提高很多倍,不仅每次计算的结果不会丢,而且没有栈溢出的问题。

2024-05-07 01:09:23 659

原创 基于ollama搭建本地chatGPT

ollama帮助我们可以快速在本地运行一个大模型,再整合一个可视化页面就能构建一个chatGPT,可视化页面我选择了chat-ollama(因为它还能支持知识库,可玩性更高),如果只是为了聊天更推荐chatbox。

2024-04-14 01:23:56 1437

原创 JAVA也有自己的大模型生态

Spring AI 是 AI 工程的应用框架。其目标是将 Spring 生态系统设计原则(如可移植性和模块化设计)应用于 AI,并推广使用 POJO 作为 AI 领域应用程序的构建块。Spring AI 吸取了知名 Python 项目的精髓,比如:LangChain 和 LlamaIndex。Spring AI 是基于这样一个理念创立的:未来的 AI 大模型应用将不仅限于 Python 开发者,而且会普及到多种编程语言中。

2024-04-13 18:52:05 904 1

原创 本地搭建【文档助手】大模型版(LangChain+llama+Streamlit)

搭建一个简单的大模型版文档助手

2023-12-24 18:34:13 1948 4

原创 ES如何提高准确率之【term-centric】

本文探讨了多字段搜索的时候,每个字段的词频和逆向文档频率不同带来的搜索准确率问题。问题的根本原因在于:搜索的时候大多数都是针对字段进行搜索,但本文中的情况是希望对词进行搜索。解决思路也是很简单,就是把多个字段的词频和逆向文档频率整合到一起,当然可以在建立索引的时候整合,也可以搜索的时候进行整合查询。

2023-12-16 18:30:01 1628

原创 ES如何提高召回率之【词干提取】

想要提高召回率就需要尽可能匹配相关的文档,其中一个办法就是在索引阶段对词语分析(分词器)的时候提取词干,搜索的时候也取词干。

2023-12-03 19:17:12 808

原创 让代码变美的第四天 - 工厂方法模式

日常重构代码

2023-11-27 23:26:16 429

原创 让代码变美的第三天 - 简单工厂模式

日常重构代码

2023-11-26 22:38:00 65660

原创 让代码变美的第二天 - 策略模式

思考:这个功能,这个方法改动到底是不是很频繁,新增的判断逻辑(if else)将来会不会很频繁。如果当前功能不光有不同策略处理流程,还有共同的处理流程,那么可以把不同策略处理流程抽取出来,使用策略模式进行优化,共同的部分不在本文讨论范围内。判断当前功能是不是都是由一个策略值,来决定后面整体流程,并且每个流程都不太相同,这样容易想到可以使用策略模式来进行优化。给所有策略对应的处理流抽象成一个方法,取个名字,比如买水果。定义每个策略对应处理流程,比如买苹果、买香蕉。给策略进行定义,比如水果场景。

2023-11-16 22:36:12 181

原创 让代码变美的第一天 - 观察者模式

日常重构代码

2023-11-09 23:26:08 60688

原创 如何避免安全部扫描出来的高危端口

处理一些没有鉴权服务,直接对外提供访问链接的情况(尽管只在公司内网里面)

2023-07-15 12:05:22 1423

原创 JSON反序列化泛型对象;泛型是变化的,如何写出通用代码?(源码分析)

本文以fastjson为例,gson等其他序列化工具都类似。json如何反序列化出带泛型的结果,这个网上应该很多教程,但本文想要实现更高难度的反序列化。比如:泛型参数在变化,怎么写出通用代码?看例2先看使用一共三个类,A/B/C,定义放文章最后了例1:如果想要序列化带泛型的对象B<C> bc = JSON.parseObject(bStr, new TypeReference<B<C>>() { });一行代码就搞定,但原理是什么呢?为什么

2022-05-23 23:37:17 2261

原创 Mac的iTerm2安装lrzsz卡死问题

参考 https://www.jianshu.com/p/86c422d73e7b 进行安装安装之后rz一直卡死问题是因为mac brew安装rz的目录不一样原来的配置iterm2-recv-zmodem.sh#!/bin/bash# Author: Matt Mastracci (matthew@mastracci.com)# AppleScript from http://stackoverflow.com/questions/4309087/cancel-button-on-osascr

2022-01-14 18:31:38 659

原创 SpringBoot自定义缓存

上一篇文章说了默认的缓存实际上是:ConcurrentMap,有很多功能都没有,比如:定期删除、容量上线、容量不够的策略(LRU、LFU)等等。https://blog.csdn.net/PROGRAM_anywhere/article/details/121878708自定义缓存步骤定义一个属于自己的Cache,需要实现org.springframework.cache.Cachepublic class MyCache implements Cache { private MyLink

2021-12-11 21:46:59 1091

原创 SpringBoot缓存原理

三个注解@Cacheable可以标记在一个方法上,也可以标记在一个类上。当标记在一个方法上时表示该方法是支持缓存的,当标记在一个类上时则表示该类所有的方法都是支持缓存的。对于一个支持缓存的方法,Spring会在其被调用后将其返回值缓存起来,以保证下次利用同样的参数来执行该方法时可以直接从缓存中获取结果,而不需要再次执行该方法。Spring在缓存方法的返回值时是以键值对进行缓存的,值就是方法的返回结果,至于键的话,Spring又支持两种策略,默认策略和自定义策略。需要注意的是当一个支持缓存的方法在对象内部

2021-12-11 21:37:49 1033

原创 SpringBoot使用Ehcache

配置maven<!-- Spring Boot 缓存支持启动器 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId> </dependency> <!-

2021-12-11 17:18:42 1254

原创 缓存和DB的一致性

打发时间-东如何保证缓存和DB的一致性问题什么时候需要使用缓存?为什么是高可用?什么时候清理缓存?定时清理缓存DB数据有修改如何正确使用缓存(今天的重点)方案1(先删除缓存,再去修改DB)方案2(队列+锁)方案3(DB行锁)方案4(半事务)方案5(自研)总结如何保证缓存和DB的一致性问题在公司还碰见有人竟然不知道这个问题,或者是想的太简单了。简单的提几个问题,如果你都知道了就不用往下看了一定要保证缓存和DB一致性么?缓存一定要设置超时时间么?更新数据,先更新缓存还是DB?查询数据,先查缓存,

2021-07-31 22:51:54 818

原创 js中想使用mavonEditor(markdown编辑器)

很久没写blog了,多说两句交流一哈,哈哈。不想看就去页底吧 O(∩_∩)O为什么有这个奇葩的需求的?在vue里面直接写不就好了本人是个前端小白,就总结一下学习路上的经验最近想写一个系统,没办法前端、后台得我一个人搞,于是就想找一个前端框架。去bootstrap官网看了一下我cao,这么厉害,“第一款mobile”,“世界上most流行的…”于是我就开始使用bootstrap了现...

2019-01-21 17:08:59 3251 9

原创 ListenableFuture的使用和原理

java中有几种实现异步的方式(FutureTask/ListenableFuture/CompletableFuture)这篇介绍的是ListenableFuture,相比FutureTask,本质上只是增加了任务的回调函数,这个是google框架里面的一个东西,我用的版本是guava-27.0-jre.jar首先还是说使用:public class ListenableFutureTes...

2018-10-31 16:38:17 29457 3

原创 Future的使用和原理

java中有几种实现异步的方式(FutureTask/ListenableFuture/CompletableFuture)这篇介绍的是FutureTaskclass Worker { public String name; Worker(String name) { this.name = name; }}/** * @author dong...

2018-10-30 21:04:39 1132

原创 加载别人代码到沙箱环境运行

沙箱运行代码现在有一个需求是:我们需要把别人的代码加载到我们代码里面来运行如何把别人代码拿过来呢?可以利用git把代码下载下来利用maven进行打包编译(.java编译成.class文件)加载.class文件形成object对象运行我们想要的函数Git git = Git.cloneRepository().setURI(gitUrl).setDirectory(...

2018-08-05 14:21:24 1561

原创 C++如何写adaptable仿函数

关于仿函数很多博客上都有,形式很简单,用途也很多。 一句话总结:重载了()运算符的类可以称之为仿函数functor 现在写一个“比较”class MyLess{public: bool operator()(int a, int b){ return a < b; }}; 大多数人会这样写,其实这样写没有错,而且基本所有算法都可以通过 比如:class My

2017-12-20 19:47:17 422

原创 Centos不能解析域名

很惭愧用了快一年的云服务器,竟然今天才发现不能解析域名。 Linux version 2.6.32今天测试crul的时候发现竟然不能解析,然后试了一下 ping www.baidu.com 也不能解析 首先想到的就是域名可能出现问题了,然后网上的很多教程大概都是: 在/etc/sysconfig/network-scripts/ifcfg-eth0里面最后加上dns的设置 比如:DNS1=8

2017-12-06 15:30:06 18417

原创 STL中的hash_map使用

主要分两部分来使用hash_map 1.针对 key = int char 等内置类型 2.针对 key = 非内置类型部分源码全部来自于sgi-v2.03版 都知道要使用hashtable必须有hash函数,由于STL内核提供了如下:内置的HashFcn:struct hash<char*>struct hash<const char*>struct hash<char> struc

2017-11-25 11:51:02 1780

原创 C++11里shared_ptr源码剖析

很多人不知道引用计数放在哪,昨天为止我也不知道,O(∩_∩)O哈哈~A *a = new A;shared_ptr<A> sp(a);上面代码发生了什么呢? 进入shared_ptr的构造函数template<class _Ux> explicit shared_ptr(_Ux *_Px){ _Resetp0(_Px, new _Ref_count<_Ux>(_Px));

2017-10-11 15:55:47 2478

原创 一致性hash算法C++版

很久以前就想写这个算法,一直没有时间,搁置了大概半年,趁着国庆还没女票,花了一天写了这个算法gethub链接: https://github.com/shuaidong1996/Consistent-Hashing/tree/master利用C++11和STL实现的Consistent Hashing 很适合新手看,代码量也不长,但是功能还是有的 就看看最终的功能吧,想看源码可以去下载直接ma

2017-10-02 16:29:42 4559

原创 C++Sort函数的潜规则

#include<iostream> #include<vector> #include<algorithm> using namespace std;bool comp(int a, int b){ if (a < b){ return true; } else{ return false; }}int main(

2017-09-12 22:30:31 594 1

原创 protobuf【2】Varints方法编码

protobuf现在用的也越来越广了,处于好奇研究了一下他的编码格式,和大家一起分享 上一篇博客已经介绍了如何安装和使用protobuf先介绍 数字1 是怎么存的 Person.protosyntax = "proto2";package dong;message Test1 { required int32 a = 1;}message Test2 { required u

2017-08-19 13:01:30 1006

原创 protobuf【1】详细的安装和使用(windows cpp)

下载 protobuf 、cmake https://github.com/google/protobuf/releases https://cmake.org/download/打开cmake1.你下载的protubuf目录中的cmake目录 2.protubuf编译后的目录 然后点configure会自动检测出你的vs,一切默认就好,然后点 finish然后点击Generate,如果成功

2017-08-18 10:17:43 16388 15

原创 scrapy爬虫【4】→爬百度美女图

本来这篇文章不想爬百度的,但是想到有人可能看到我上一篇博客之后,回去自己去爬百度美眉图我也敢说,有很大一部分人学习爬虫都有爬百度美眉的想法,不然会感觉世界缺少了点啥,O(∩_∩)O哈哈~上一篇文章也说了,百度不是那么容易爬的,因为百度的图片不是在html网页中直接展示的,给你展示的只是很少一部分。他们采用了AJAX(异步JavaScript和XML)这样做的目的不是为了反爬虫,是因为这样节约网络流量

2017-06-04 21:35:42 5113 5

原创 scrapy爬虫【3】→爬图片

爬图片在scrapy中特别简单,其实原理也是非常简单啊 打开图片的url,然后保存到本地。 不用scrapy:r = requests.get(url)Image.open(BytesIO(r.content)).save('images\1.jpg')现在看一下用scrapy该怎么弄 接着上篇博客的代码,为了方面大家看出增加的代码,我以图片的形式展示 先看一下item.py中增加的代码吧

2017-06-03 18:35:04 1607 1

原创 scrapy爬虫【2】→爬天猫

本文主要是以爬取淘宝为例子,但请不要大量爬取,对别人服务器造成压力,其实也不敢多爬,别人的防爬机制应该很厉害,小心ip被封。首先要明确目标 比如:老板今天叫你爬取天猫销量前120的笔记本电脑的一些详细信息 然后你就可以先打开天猫笔记本电脑网址https://list.tmall.com/search_product.htm?spm=875.7931836/B.subpannel2016040.1

2017-06-03 13:49:53 6819 9

原创 scrapy爬虫【1】→学习路上的坑和大家一起分享

最近迷上了爬虫,当我昨晚完成一个自己的项目的时候,一阵感慨,学习路上的坑和大家一起分享 网上很多教程博客说的不全(自己深有体会,我百度N好多次,差点都放弃了爬虫),看到别人爬取某个网站,但是当你自己动手做的时候会发现啥都干不了xpath解析失败?网页都进不去?原因可能有以下几个: 1. 看看你settings.py文件里面是不是有个ROBOTSTXT_OBEY = True 2. 看看你s

2017-06-03 08:48:08 1781 1

原创 深入剖析C++为啥有extern

大家都知道C++中有个extern关键字是用来识别C语言的,然后以C语言的形式去编译。 原因:C++里面出现了函数重载这东西,导致和C中编译函数,生成的符号不一样,所以引入了extern。 估计大家也都知道原因,但是你有尝试去看过那些符号么?—– now 带大家去 look look —–先创建一个test.cpp文件void func(){}void func(int a){}int fu

2017-05-30 23:18:26 416

原创 epoll读到一半又有新事件来了怎么办?

有哥们在腾讯面试被问到了。我也很好奇就做了下实验。有些朋友急性子想看过程只想知道结果,我就先给出结果吧。 1.阻塞读数据(不用epoll),你说读到一半有新消息又来了怎么办? 2.非阻塞读数据(不用epoll),你说读到一半有新消息又来了怎么办? 3.epoll的ET模式时,如果数据只读了一半,也就是缓冲区的数据只读了一点,然后又来新事件了怎么办?答 1:来了就来了呗,读就是了

2017-05-08 14:00:32 4680

原创 STL空间配置器之内存池技术

注释的STL代码,算是为将来复习做个小笔记吧#if 0#include<new>#define __THROW_BAD_ALLOC throw std::bad_alloc()#elif !defined(__THROW_BAD_ALLOC)#include<iostream>#define __THROW_BAD_ALLOC std::cerr<<"out of memory"<<std

2017-05-07 17:33:38 862

原创 C++虚表撞上虚继承后的内存布局

先看一个有虚表的内存布局:class K{ double a; virtual void fun();};class L : public K{ int b; virtual void fun();};//24/* +--- | +--- (base class K) 0 | | {vfptr} 8

2017-04-24 14:12:53 563

原创 深入剖析C++中的三种new

new运算符 Operator new()函数 placement new 我们平时调用的new运算符底层调用的就是Operator new()函数(功能和malloc一模一样),如果是内置类型或者没有重载new运算符的自定义类型,那么将调用全局Operator new(),如果重载了将调用局部的Operator new(),如果这个类型有构造函数,new还是调用构造函数(注意调用构造

2017-04-23 14:52:21 663 1

原创 京东2017实习生招聘在线笔试编程题

很惭愧不是自己做出来的,不过知道思路了就很简单#include <iostream>using namespace std;void initarr(double **&arr, int n){ arr = new double*[n]; for (int i = 0; i<n; i++) arr[i] = new double[n]; for (int

2017-04-08 18:55:56 807

原创 2017年完美世界一道笔试题

在不同的cpp文件中用同样类实例化某个模板函数那么是会产生多个函数的定义吗?1.写两个.cpp文件和一个.h文件 test1.cpp#include "test.h"void func1(){ func<int>(1);}int main(){ return 0;}test2.cpp#include "test.h"void func2(){ func<int>(2)

2017-04-07 17:39:28 1247

gradle-5.1.1-all.zip

android 构建 gradle-5.1.1-all.zip和gradle-5.1.1-all.zip.sha256;

2019-04-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除