Ivan

个人博客

[Java]单例模式实现

Java

在 Java 中,单例模式(Singleton Pattern)是一种常用的设计模式,用于确保一个类在整个应用程序中只有一个实例,并提供全局访问点。以下是几种常见的单例模式实现方式: 1. 饿汉式(线程安全,类加载时初始化) 饿汉式在类加载时就创建实例,线程安全,但可能会造成资源浪费(如果实例未被使用)。 public class Singleton { // 静态变量,类加载时初始化 private static final Singleton INSTANCE = new Singleton(); // 私有构造方法,防止外部实例化 private Singleton() {} // 提供全局访问点 public static Singleton getInstance() { return INSTANCE; }......

[Java]Java多线程打印ABC

并发

Java多线程打印ABC 使用synchronized public class AlternatePrintABC { private static final Object lock = new Object(); private static int state = 0; // 0: 打印A, 1: 打印B, 2: 打印C public static void main(String[] args) { Thread threadA = new Thread(() -> { for (int i = 0; i < 10; i++) { // 每个线程打印10次 synchronized (lock) { while (state != 0) { //......

[数据库]缓存一致性方案总结

写在最前面 因为数据库与缓存是不同的组件,操作必须有先后顺序,无法像数据库的事务一样满足ACID的特性,所以就会出现数据在缓存中与在数据库中不一致的问题。 本文所探讨的场景均基于“先读取缓存,缓存读不到再读数据库,并更新缓存值”的Cache Aside Pattern 模式,该模式只适用于读多写少的场景 若对数据库和缓存的一致性要求极高,则不建议使用缓存! 此外,没有最完美的方案,只有最适合的方案! 并发问题,网络、机器抖动等因素不可控! 一、新增场景 不存在一致性问题。往数据库里插入一条新数据,这时候请求a过来,缓存里面没有任何数据副本,去数据库里读 二、删除场景 1.先删缓存再删数据库(不可行) 缺点: 1.并发问题。请求a先删了缓存,然后读请求b过来发现缓存中没有数据,去数据库中取数据,然后更新了缓存值,接着请求a删除了数据库,造成数据不一致 2.先删数据库再删缓存 缺点: 1.并发......

[深度学习]Voiceprint Recognition Project

声纹识别项目

完整项目地址:https://github.com/ivanwhaf/voiceprint Voiceprint recognition project Architecture .wav/.npy->cut->fbank->resnet->embeddings training:amsoft test/eval:cosine socre EER Usage 1.Train clean baseline python train.py 2.Inference score python inference.py 3.Retrain python train_sort.py Experiment Record resnet18 lr:0.005 bs:24 optim:sgd data:100utt/person aug:specaugment data:wav loss:am-softmax......

[Docker]CentOS7安装Docker及使用

安装 安装yum-utils yum install -y yum-utils device-mapper-persistent-data lvm2 配置源 $ yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 安装docker $ yum install docker-ce docker-ce-cli containerd.io 查看版本 $ docker version 使用 启动 $ systemctl start docker 停止 $ systemctl stop docker 重启 $ systemctl restart docker 查看状态 $ systemctl status docker 查看镜像 $ docker images 搜索......

[Github]Github ssh配置

流程 本地生成rsa key: ssh-keygen -t rsa -C "xxx@xxx.com" -t 密钥类型 默认rsa-C 注释文字-f 文件存储名 Github Settings添加ssh key,复制本地~/.ssh/id_ras.pub 测试:ssh -T git@github.com 绑定远程库并上传:git remote add origin git@github.com:xxx/xxx.git...git push -u origin master

[机器学习]信息量、熵、交叉熵、KL散度,互信息

信息量I(x)=−logp(x) I(x) = - \log p(x)I(x)=−logp(x) 事件发生概率越低,信息量越大 熵H(X)=−∑p(x)logp(x) H(X)=-\sum p(x) \log p(x)H(X)=−∑p(x)logp(x) 熵是在结果出来之前对可能产生的信息量求期望-考虑该随机变量的所有可能取值描述随机变量不确定程度,熵越大,信息量越大 交叉熵H(p∣q)=−∑p(x)logq(x) H(p|q)=-\sum p(x) \log q(x)H(p∣q)=−∑p(x)logq(x) p为gt,q为预测分布 KL散度(相对熵)DKL(p∣∣q)=∑p(x)logp(x)q(x) D_{KL}(p||q)= \sum p(x) \log \frac {p(x)}{q(x)} D​KL​​(p∣∣q)=∑p(x)log​q(x)​​p(x)​​ Kl散......

[MySQL]MySQL备份与还原

备份单数据库mysqldump -u root -p dbname table1 table2 > backup.sql tabel1 table2 缺省则为备份整个数据库 多数据库mysqldump -u root -p --databases dbname1 dbname2 > backup.sql全部数据库mysqldump -u root -p -all-databases > backup.sql还原mysql -u root -p dbname < backup.sql 当出现ERROR at line : Unknown command ‘\’’错误,是由字符集编码导致的,加上–default-character-set=utf8参数: mysql -u root -p --default-character-set=utf8 dbname < backup.sql