minio
对象存储MinIO入门介绍常见的对象存储方式对比 直接将图片保存到服务的硬盘 优点:开发便捷,成本低 缺点:扩容困难 使用分布式文件系统进行存储 优点:容易实现扩容 缺点:开发复杂度稍大(尤其是开发复杂的功能) 使用nfs做存储 优点:开发较为便捷 缺点:需要有一定的运维知识进行部署和维护 使用第三方的存储服务 优点:开发简单,拥有强大功能,免维护 缺点:付费 对象存储MinIOMinIO是世界上最快的对象存储服务器,在标准硬件上,读写速度分贝为183GB/s 和 171GB/s,对象存储可以作为主要存储层,用于Spark,Presto,TensorFlow,H20.ai 以及替代产品等各种工作负载用于Hadoop HDFS MinIO是一种高性能的分布式对象存储系统,它是软件定义的,可在行业标准硬件上运行,并且在Apache 2.0许可下,百分百开放源代码。 文档地址:https://docs.min.io/cn/ 下载set_your_key_here使用的是Docker的方式安装MinIO,首先拉取对应的镜像 1docker pull...
(fastapi七)websocket
记录两段基础代码,分别来自官网与互联网。 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051from fastapi import FastAPI, WebSocketfrom fastapi.responses import HTMLResponseapp = FastAPI()html = """<!DOCTYPE html><html> <head> <title>Chat</title> </head> <body> <h1>WebSocket Chat</h1> <form action="" onsubmit="sendMessage(event)"> ...
知识的诅咒
知识的诅咒(Curse of...
python当中的回调函数是个啥?
在编程过程当中,一直在使用回调函数,但是自己却一直没有去深究回调函数究竟是个啥东西!因为使用的时候用就完事了。现在来深究一下! 回调函数的定义回调函数就是一个被作为参数传递的函数。在C语言中,回调函数只能使用函数指针实现,在C++、Python、ECMAScript等更现代的编程语言中还可以使用仿函数或匿名函数。 百度百科解释其机制: 定义一个回调函数; 提供函数实现的一方在初始化的时候,将回调函数的函数指针注册给调用者; 当特定的事件或条件发生的时候,调用者使用函数指针调用回调函数对事件进行处理。 简单来理解就是在最开始初始化一个函数,当需要使用到这个函数的时候调用这个函数指针对事件进行处理。这个解释其实也不简单,因为如果你使用的是python,没有指针会很难理解。 由于在python中已经没有指针的概念,所以函数名字将作为参数传递给另一个函数作为参数,在事件触发的时候调用。如下: 1234567def callbcak_func(args): print(*args)def caller(args, func): ...
docker基础
http://link.hhtjim.com/163/523658940.mp3 关于dockerDocker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。 翻简单来说就是可以可以打包环境而不需要打包整个虚拟机,只要其他电脑上有dockers,开发者就能让自己的项目在各种条件下执行起来 docker安装使用脚本安装 Docker: 1234$ sudo yum update$ curl -fsSL https://get.docker.com/ | sh$ sudo service docker start$ sudo docker run hello-world 镜像与容器docker的镜像其实就是模板,跟我们常见的ISO镜像类似,是一个样板。使用镜像常见的应用或者系统,称之为一个容器。镜像是docker容器运行时的只读模板,镜像可以用来创建docker容器。 Docker...
with语句
在工作当中写代码的时候遇到当需要使用python打开文件的时候,程序会提示你使用with语句而是不是open+close,以前自己都未曾关心为啥,这样做有什么优势,现在越发好奇了。 With语句是什么?最常见的解释就是说当年你需要打开一个文件的时候,如果只是打开不关闭是危险或者不规范的操作,所以必须要有打开也要有关闭,如下代码: 123file = open("test.txt")data = file.read()file.close() 但是这里有两个问题: 一是可能忘记关闭文件句柄; 二是文件读取数据发生异常,没有进行任何处理。 所以为了安全起见推荐有以下改进方法: 12345file = open("test.txt")try: data = file.read()finally: file.close() 虽然更加安全,但是冗长以及理解更困难的问题也随之出现了。而with语法正好可以解决这个问题: 12with open("/tmp/foo.txt") as file: data...
行尾序列是个啥?
...
python的logging库记录
问题在最近的工作当中,需要使用到python的一个常见库叫做logging,这个库可以用于项目的日志记录,但是在我使用的过程当中却需要多个log对象分别输出到不同的日志文件当中的时候,我使用以下代码失败了: 1234567891011121314151617181920import logginglogging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s', datefmt='%a, %d %b %Y %H:%M:%S', filename='test.log', filemode='w')log = logginglog.debug('debug...
python的坑记录
在阅读别人博客的时候看到别人记录了一个python的坑,我觉得可能是一个今后会发生的一个错误,因此记录下来。直接上代码: 1234567def f(a, L=[]): L.append(a) return Lprint(f(1))print(f(2))print(f(3)) 打印出来的结果是: 123[1][1, 2][1, 2, 3] 这是因为, 作为默认参数, python在启动时就会将变量 L 建立, 我们在函数 f 内对 L 处理就会导致后来调用的 L 已经是修改过的 L 了, 我们可以通过打印 L 的内存地址来验证 123456789def f(a, L=[]): print(id(L)) L.append(a) print(id(L)) return Lprint(f(1))print(f(2))print(f(3)) 结果是 12345678945132896004513289600[1]45132896004513289600[1, 2]45132896004513289600[1, 2,...
分类
常见的机器学习分类有,支持向量机、决策树、KNN、朴素贝叶斯,以前在学习机器学习的时候就简单学过,现在需要用在图像分类上了。一时间蒙了,忘记怎么图像转以前的数据了,现在在GitHub上找到一个不错的例子,特此记录一下。 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126import osimport cv2import numpy as npfrom sklearn.model_selection import train_test_splitfrom sklearn.metrics import...

websocket/封面.jpg)












