自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(246)
  • 收藏
  • 关注

原创 pandas中文手册

https://runebook.dev/zh-CN/docs/pandas/-index-?q=DataFrame

2023-01-09 10:55:09 725

原创 Github 本地合并 (merge) 他人提交的 pr

。。。

2022-08-24 16:26:57 1100

原创 C++ 段错误定位

4)./you_exe 运行程序, 假如出现段错误:Segmentation fault (core dumped ), 那么在当前执行该程序的目录就会产生默认名为"core"的文件。(3)gcc编译你的程序:gcc your_program.c -o you_exe -g, 一定要加“-g” 选项。(2)执行命令:ulimit -c 2048, 2048是你指定的core文件大小,可以根据自己的需要修改。(5)gdb --core=core 调试core。...

2022-08-03 17:15:56 582

原创 动手学深度学习框架(4)- 手把手教你写一个功能完整的简易 Demo

0、前言一定不要错过!一定不要错过!一定不要错过!重要的事情说 3 遍。本篇文章中,我将手把手教你写一个功能完整的深度学习框架 demo,本文将满足你对 Pytorch、Tensorflow、Paddle 中神秘的 C++ 后端的所有好奇心。https://zhuanlan.zhihu.com/p/461059953...

2022-04-01 01:21:25 1775

原创 为何说 AI 公司难以平台化

平台经济是每个公司的梦想,一旦拥有自己的平台,大量 B 端、C 端客户零门槛、低成本接入,那么就可以在家躺着收钱了,比如支付平台、购物平台、打车平台、社交平台等等。AI 公司也不例外,然而梦想很性感,现实很骨感。0、从商汤说起商汤从2021年12月份上市以来,到现在市值还坚挺在2000亿港币,我就觉得不可思议。商汤估值如此之高,有个重要的因素是商汤给市场一个憧憬,就是产品初期投资庞大建立平台,平台建立后再加入客户的成本就开始降低,客户越多摊分成本就越低,后期边际利润就实现最大化。然而,商汤所做的生意多

2022-04-01 01:14:26 208

原创 详解三大编译器:gcc、llvm 和 clang

编译器一般构成传统的编译器通常分为三个部分,前端(frontEnd),优化器(Optimizer)和后端(backEnd)。在编译过程中,前端主要负责词法和语法分析,将源代码转化为抽象语法树;优化器则是在前端的基础上,对得到的中间代码进行优化,使代码更加高效;后端则是将已经优化的中间代码转化为针对各自平台的机器代码。GCCGCC(GNU Compiler Collection,GNU 编译器套装),是一套由 GNU 开发的编程语言编译器。GCC 原名为 GNU C 语言编译器,因为它原本只能处理 C语

2022-04-01 01:06:32 2182

原创 设定 CPU 核心运行指定线程

https://blog.csdn.net/qq_26697045/article/details/89457241

2022-03-29 18:59:35 526

原创 web 技术中的前端和后端是如何交互的

前言由于本人并不是从事 web 开发工作,本文整理自个人对 web 技术的理解,部分内容来自网络,如果有什么错误的地方,欢迎专业人士指正。1 现代 web 技术全景图在互联网发展的早期(上世纪80年代末90年代初),后端直接生成页面内容,没有前端展示,甚至没有浏览器。如今,web 技术发生了天翻地覆的变化,各种开发框架、编程语言、开发模式层出不穷,令人眼花缭乱。然而,web 技术所有的演进都是围绕前端、后端、前后端交互展开的。上图是现代 Web 技术的一个全景图。client 端有浏览器、移动 A

2022-03-29 18:56:46 3887 5

原创 分布式技术 3:高并发系统的设计思路以及C++ 实现

Hello,大家好,欢迎来到“自由技艺“的学习小馆。今天我们来聊一聊软件系统中的高并发,具体内容包括高并发的设计思路、高并发的关键技术以及高并发实践。本文内容信息量比较大,涉及负载均衡、缓存、流控等技术,还有部分 C++ 代码实现,需要读者慢慢消化。1 什么是高并发“并发”一词最早来源于操作系统领域,指一段时间内多任务交替执行的现象。后来,高并发用来指大流量、大规模业务请求的场景,比如春运抢票、电商“双十一”抢购,秒杀促销等。高并发的衡量指标主要有两个:一是系统吞吐率,比如 QPS(每秒查询率)、TP

2022-03-29 18:44:20 3383 1

原创 分布式技术 2:详解 Paxos 共识算法原理

1 问题来源在我们学习一项新技术之前,首先要了解的是这个技术为何而出现,也就是说它是为了解决什么问题。2013年图灵奖获得者 Leslie Lamport 为了解决分布式系统中的一致性问题,抽象出来了一个例子,这个例子就是著名的“拜占庭将军问题”。拜占庭帝国国土辽阔,每支军队的驻地相隔很远,将军们只能靠信使传递消息。发生战争时将军们必须制订统一的行动计划。然而,这些将军中有叛徒,叛徒们篡改行动计划并传播虚假消息。因此,将军们必须提前制订一个预案,使所有忠诚的将军能够达成一致。即使存在少数几个叛徒也不能使

2022-03-29 18:41:13 7620

原创 分布式技术 1:一致性哈希原理及 C++ 实现

今天我们来介绍下分布式技术中的一致性哈希的原理及 C++ 代码实现。1 问题来源有这样一个场景:现在有超大规模的数据集(对象),请问如何把它们存储在有限的存储节点上?这里的存储节点可以是某台服务器或者某个 vm(虚拟机)等。首先,肯定是要采取哈希存储的,否则无法高效查找。那使用简单的哈希函数,比如 hash(对象)% 存储节点总个数,可行吗?答案是不行,因为如果添加新的存储节点或者删除某个存储节点,那么很多原有的数据就无法找到了。于是麻省理工学院在 1997 年提出了一种分布式哈希(DHT)实现算法。

2022-03-29 18:36:12 839

原创 软件架构设计之如何编排复杂多任务

0、前言软件系统一般由一些基础模块组成,每个模块负责一项具体的功能。软件系统运行时,就是按照一定的规则运行不同的模块,模块之间的执行顺序多种多样,比如串行、并行、条件判断、以及复杂逻辑树。对于一个小的软件,这些执行逻辑可以直接在代码中写死,但对于一个超大型的软件系统,必须引入『编排机制』来定义这些执行逻辑。1、串行串行任务的处理很简单,能够直接像平常同样编写代码:Func1(); // Action1 的执行逻辑Func2(); // Action2 的执行逻辑2、并发Actio

2022-03-29 18:29:31 850

原创 C++ 模板元编程系列专题 3:模板偏特化

1、模板 + 全特化模板,代表了一种泛化的语义。显然,既然有泛化语义,就应当有特化语义。特化,使得我们能为某些特定的类型专门提供一份特殊实现,以达到某些目的。特化分为全特化与偏特化。所谓全特化,即一个“披着空空如也的template <>的普通函数或类”#include <iostream>#include <iomanip>#include <string>#include <random>#include <chrono&gt

2022-03-29 18:25:35 393

原创 C++ 并发编程:std::promise/future、std::async、std:: packaged_task

1、std::promise 和 std::futurefuture 和 promise 的作用是在不同线程之间传递数据,而且支持泛型的操作,使用起来更加方便。使用 future 和 promise 在线程之间获取数据的机制又是什么呢?假设线程 1 需要线程 2 的数据,则:线程 1 初始化一个 promise 对象和一个 future 对象,promise 传递给线程2,相当于线程 2 对线程 1 的一个承诺;future 相当于一个接受一个承诺,用来获取未来线程 2 传递的值;线程 2 获取

2022-03-29 18:24:01 1185

原创 C++11 bind 和 placeholders 用法

bind 这个东西是很鸡肋的,因为已经有了 lambda 表达式了,但是在 C++ 11 中 lambda 无法处理类型多态,bind可以;lambda 也不支持移动语义,bind 可以。可喜的是,C++14 已经解决了上述两个问题,所以 bind 也就可以丢弃了。1、std::placeholders占位符 std::placeholders 是 C++ 11 的新特性,它一般和 bind 一起用。placeholders 定义如下:namespace placeholders { exter

2022-03-29 18:20:28 1840

原创 C++ std::function和函数指针相比有啥区别吗?

std::function 是一种通用、多态的函数封装,它的实例可以对任何可以调用的目标实体进行存储、复制和调用操作,它也是对 C++ 中现有的可调用实体的一种类型安全的包裹(相对来说,函数指针的调用不是类型安全的),简而言之,std::function 就是函数的容器。配合上 bind 能够解决成员函数指针跟随类的弊端,比传统的函数指针更加强大。所以,写 C++ 代码的时候,不要再写什么函数指针了!先来看一个成员函数指针的例子:class Base;typedef void(Base::*Fu

2022-03-29 18:18:07 1452

原创 发布 - 订阅

#include <iostream>#include <vector>class ISubscriber;class IPublisher;class IBroker;// 订阅者的接口类class ISubscriber {public: // 向代理进行订阅 virtual void subscribeToBroker(IBroker * ptr, std::string topic) = 0; // 当代理收到发布者的通知,

2021-11-16 13:11:23 256

原创 c++ 二进制ip地址转为10进制ip地址

void getCharIpAddr(uint32_t ipAddress) { const int NBYTES = 4; uint8_t octet[NBYTES]; char ipAddressFinal[16]; for(int i = 0 ; i < NBYTES ; i++) { octet[i] = ipAddress >> (i * 8); } ...

2021-09-17 16:37:19 534

原创 python netifaces 模块

python netifaces模块简介在Linux系统中,我们可以通过ifconfig,route等shell命令来查看系统接口配置,网关和路由等信息。通过shell的正则表达式功能,通过系列复杂操作,我们可以从字符串中提取出相关的信息。现在,通过Python的netifaces模块,可以很容易的获取这些信息。本文主要介绍netifaces的使用。安装可以在Python官网上去下载对应的源码:https://pypi.python.org/pypi/netifaces。当前的版本是0.10.4。

2021-09-17 12:28:19 1797

原创 CS 优质课程

http://cs241.cs.illinois.edu/coursebook/Synchronization#barriers

2021-09-07 13:39:27 240

转载 shell 文本处理命令,强大到不行

https://cloud.tencent.com/developer/article/1366507Linux Shell是一种基本功,由于怪异的语法加之较差的可读性,通常被Python等脚本代替。既然是基本功,那就需要掌握,毕竟学习Shell脚本的过程中,还是能了解到很多Linux系统的内容。Linux脚本大师不是人人都可以达到的,但是用一些简单的Shell实现一些常见的基本功能还是很有必要的。下面我介绍Linux下使用Shell处理文本时最常用的工具:find、grep、xargs、sort、

2021-08-24 12:31:21 200

原创 Python如何把一个类的实例作为函数调用【Python __call__详解】

官方文档:添加链接描述class Entity: def __init__(self, size, x, y): self.x, self.y = x, y self.size = size def __call__(self, x, y): self.x, self.y = x, y e = Entity(1, 2, 3) // 创建实例e(4, 5) //实例可以象函数那样执行,并传入x y值,修改对象的x y

2021-08-20 13:17:32 584

原创 java 调试

jpsjava -XX:+PrintFlagsFinal -version | grep -iE 'HeapSize|PermSize|ThreadStackSize'export JAVA_TOOL_OPTIONS='-Xms1g -Xmx10g'

2021-08-09 15:13:54 65

原创 按照进程名批量杀死进程

$ps -ef | grep firefox | grep -v grep | cut -c 9-15 | xargs kill -s 9说明:“grep firefox”的输出结果是,所有含有关键字“firefox”的进程。“grep -v grep”是在列出的进程中去除含有关键字“grep”的进程。“cut -c 9-15”是截取输入行的第9个字符到第15个字符,而这正好是进程号PID。“xargs kill -s 9”中的xargs命令是用来把前面命令的输出结果(PID)作为“kill -s

2021-08-06 18:57:37 265

原创 java中native关键字

今日在hibernate源代码中遇到了native关键词,甚是陌生,就查了点资料,对native是什么东西有了那么一点了解,并做一小记。native关键字说明其修饰的方法是一个原生态方法,方法对应的实现不是在当前文件,而是在用其他语言(如C和C++)实现的文件中。Java语言本身不能对操作系统底层进行访问和操作,但是可以通过JNI接口调用其他语言来实现对底层的访问。JNI是Java本机接口(Java Native Interface),是一个本机编程接口,它是Java软件开发工具箱(Java Softw

2021-08-03 11:09:00 168

原创 c++多线程

#include<thread>#include<mutex>std::thread t(func); //无参数函数std::thread t(func, parameter) //带参数函数std::thread t(&class::func, this, parameter) //类内函数新起线程 第一个参数类函数指针,第二个参数对象指针//如果要参数要被改变。采用std::reft.joinable();t.j

2021-07-20 14:53:21 79

原创 服务器调频知识点

https://lynnapan.github.io/2016/12/15/Turbo%E5%92%8CIntel_Pstate/

2021-07-13 23:26:09 156

原创 神经网络中episode、epoch、iteration、batch_size的理解

epoch、bath_size、iteration、episode在DNN中的解释:1、epoch:one forward pass and one backward pass of all the training examples, in the neural network terminology,重点就是所有的训练数据都要跑一遍。假设有6400个样本,在训练过程中,这6400个样本都跑完了才算一个epoch。一般实验需要训练很多个epoch,直到LOSS稳定后才停止。2、batch_size:

2021-07-13 23:25:15 1617

原创 解决linux终端命令行过长覆盖行首问题

在.bashrc中修改PS1变量PS1="[\e[37;1m][[\e[31;1m]\u [\e[36;1m]@ [\e[33;1m]\h [\e[35;40m]\W[\e[37;1m]] [\e[33;1m]\$[\e[0m] "

2021-06-25 16:33:57 2548

原创 Macbook 中解决 python 找不到已安装的库

导入环境变量的方式行不通!vi ~/.zshrc查看 python 搜索库路径有两种方法:1python3import sitesite.getsitepackages()2python3 -m site使用 pip3 安装库的时候一定要使用以下方式:python3 -m pip install matplotlibpython3 -m pip show matplotlib问题:pip3 默认把库安装在 python3.8 的目录下,而 python 版本却是 3.9,它去

2021-06-16 02:12:27 3206

原创 facefake 实战

https://blog.csdn.net/jiangjunshow/article/details/100554702?ops_request_misc=&request_id=&biz_id=102&utm_term=ai%E6%8D%A2%E8%84%B8%E7%9A%84%E6%8A%80%E6%9C%AF%E5%8E%9F%E7%90%86&utm_medium=distribute.pc_search_result.none-task-blog-2allsobai

2021-06-15 17:46:39 519

原创 基于 Keras 搭建 CNN 模型

import numpy as npimport matplotlib.pyplot as pltimport kerasimport random, csvfrom keras import layers, modelsfrom keras.models import Modelfrom keras.datasets import mnistfrom keras.models import load_model, Sequentialfrom keras.preprocessing imp

2021-06-15 16:05:21 396

原创 Python 下载 MINIST 数据集 -- 解决代理问题

import torchimport torchvisionfrom torch.utils.data import DataLoader#代理部分import urllib.requesthandler=urllib.request.ProxyHandler({'http':'http://xx:[email protected]:8080'})opener=urllib.request.build_opener(handler)urllib.request.install_opener(op

2021-06-15 15:09:07 408

原创 如何搭建一个 caffe 模型

2021-06-07 19:22:55 189

原创 手动安装最新版m4, autoconf, automake, libtool

###安装m4wget http://mirrors.kernel.org/gnu/m4/m4-1.4.18.tar.gz && tar -xzvf m4-1.4.18.tar.gz && cd m4-1.4.18 && ./configure --prefix=/usr/localmake && make installcd …###安装autoconfwget http://mirrors.kernel.org/gnu/au

2021-05-28 17:12:14 457

原创 windows 中文件转入 linux 中格式问题

问题描述:从win10下的github desktop git clone protobuf,然后把文件夹穿到linux平台的服务器再运行.sh文件产生如下错误libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'build-aux'.libtoolize: copying file 'build-aux/ltmain.sh'.ibtoolize: error: AC_CONFIG_MACRO_DIRS([m4]) conflict

2021-05-28 15:00:11 283

原创 tls 加密流程

2021-05-26 15:38:18 363

原创 AI 模型可视化

netscope 打开 prototxtnetron 打开 caffemodel

2021-05-11 17:21:50 208

原创 Intel CPU 上使用 pmu-tools 进行 TopDown 分析

title: Intel CPU 上使用 pmu-tools 进行 TopDown 分析date: 2021-01-24 18:40author: gatiemetags:debuglinuxtodowncategories:debugthumbnail:blogexcerpt: 这篇文章旨在帮助希望更好地分析其应用程序中性能瓶颈的人们. 有许多现有的方法可以进行性能分析, 但其中没有很多方法既健壮又正式. 而 TOPDOWN 则为大家进行软硬协同分析提供了无限可能. 本文通过 pm

2021-05-10 11:00:58 1138

原创 模型可视化工具

netron

2021-05-08 10:33:57 126

空空如也

空空如也

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

TA关注的人

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