- 博客(20)
- 资源 (1)
- 收藏
- 关注
原创 基于MindStudio对PraNet模型推理全流程
MindStudio是一套基于华为昇腾AI处理器开发的AI全栈开发平台,包括基于芯片的算子开发、以及自定义算子开发,同时还包括网络层的网络移植、优化和分析,另外在业务引擎层提供了一套可视化的AI引擎拖拽式编程服务,极大的降低了AI引擎的开发门槛,全平台通过Web的方式向开发者提供以下4项服务功能。MindStudio除了具有工程管理、编译、调试、运行等一般普通功能外,还能进行性能分析,算子比对,可以有效提高工作人员的开发效率。除此之外,MIndStudio具有远端环境,运行任务在远端实现,对于近端的个人设备
2022-07-01 18:45:58 746
原创 Go语言 - RPC框架
1.什么是RPCRPC - Remote Procedure Calls 远程函数调用相当于本地将参数上传到云端,云端根据形参计算返回结果,并返还给本地。2.RPC需要解决的问题函数映射数据转换成字节流网络传输3.一次RPC的完整过程IDL文件:通过一种中立的方式来描述接口,使得不同平台上运行的对象可以互相通信,例如thrift,proto生成代码:通过编译器工具把IDL文件转换成语言对应的静态库编解码:传输过程中用于打包与解压通信协议:规范了数据在网络中
2022-05-27 17:03:35 909
原创 Go语言 - 架构初探
1.什么是架构?架构:有关软件整体结构与组件的抽象描述,用于直到软件系统各个方面的设计。架构在方法选择上起着重要的指导作用。2.蛋糕问题与架构种类如何做蛋糕?如何卖蛋糕?1.只开一家蛋糕店,自己动手做,边做边卖:单机架构All in one,所有的东西都在一个进程里,部署在一个机器上。优点:简单缺点:运维需要停服,用户体验较差承载能力有限2.雇佣多个蛋糕师傅,并用大堂经理管理师傅:单体架构在单机架构的基础上,将进程部署到多个机器上。优点:具备水平扩容
2022-05-22 14:58:45 492
原创 Go语言 - 网络与服务
1.从输入URL到显示网页都经历了哪些步骤呢?DNS解析 - TCP建连 - TLS握手 - HTTP请求2.域名1.Host管理:时效差,维护难2.DNS:全球有13台根服务器,树状结构3.自建DNS系统:提高效率与安全性4.企业角度来看,更需要搭建权威DNS如何搭建?常见开源DNS:bind、nsd、knot、coredns3.接入HTTPS协议1.http是明文请求,容易被抓包与篡改2.对称加密:客户端与服务器同时持有一份密钥,但存在密钥被截获的问题3.非对
2022-05-21 13:14:21 465
原创 Go语言 - 后端网络
1.网络接入协议/概念MAC地址路由协议同网段:配置网段即可默认添加静态路由。获取对端MAC直接发包跨网段:配置网关路由。获取网关MAC地址发包ARP协议逻辑同网段才能发送ARP,因为广播不能跨网段ARP请求广播,ARP应答单播 免费ARP:新加来的机器没收到广播,就积极告诉其他机器自身的mac地址,以便于其他机器更新,防止IP冲突 ARP代理:虚拟网络,劫持ARP请求去做一些操作...
2022-05-20 13:49:04 743
原创 Go语言 - 内存管理
1.自动内存管理又称GC,保证内存使用的正确性与安全性任务:为新对象分配内存, 找到存活对象, 回收死亡对象的内存空间GC的一些概念:Mutator:业务线程,分配新对象,修改对象指向关系Collector:GC线程,找到存活对象,回收死亡对象的内存空间,必须感知对象指向关系的改变,防止父对象被回收而子对象没有被回收Serial GC:只有一个collector执行Parrallel GC:支持多个collector同时回收GCConcurrent GC:mutator(
2022-05-14 15:51:01 427
原创 Go语言 - 高质量编程与性能调优
1.高质量编程边界条件考虑完备异常处理易读易维护规范编码:格式化代码格式注释:解释作用,返回值,或是报错原因命名:缩略词大写,变量不需要导出时全小写作用域小的变量命名尽量简洁作用域广的变量,或是函数的形参命名要有上下文信息函数名不要携带包名上下文信息控制流程:冗余的else尽量省略尽量保持代码最短缩进,例如if err := doSomething(); err != nil { return err}错误判定与输出日志
2022-05-11 13:22:32 239
原创 Go语言 - 并发实践
1.一些并发相关概念Goroutine协程:协程:用户态,轻量级线程,栈MB级别线程:内核态,线程跑多个协程,栈KB级别使用go func(){}()匿名函数即可启用协程通过通信共享内存,channel:make(chan type, cap),分为有缓冲与无缓冲通道无缓冲通道,即cap为0,要求发送方和接收方的goroutine同时准备好,才能完成发送和接收操作,如果有一个还没准备好,会导致另一个goroutine被阻塞。有缓冲通道,cap不为0,可以缓解生成消费的压力。
2022-05-08 13:10:56 290
原创 Go语言 - 基础
1.什么是Go语言高性能、高并发语法简单标准库丰富静态编译,占用空间小快速编译跨平台垃圾回收2.语法特性变量与常量声明可以不声明类型,编译器隐式判断if条件语句不加括号,执行语句必须加大括号没有while,用for替代switch的case默认自带break,switch条件语句可以为空支持切片以及切片操作range快速遍历索引与值变量类型后置使用指针来实现引用传递定义函数时,函数名前指定结构体等对象可以实现接口功能字符串支持 ‘+’
2022-05-07 13:42:03 659
原创 约瑟夫环讲解
问题描述略过最简单的是用队列模拟,没有死的人回到队列末尾,死的人移出队列,直到队列长度为1例如:11个人依次叫号,叫到3死1,2,3,4,5,6,7,8,9,10,11 —>2,3,4,5,6,7,8,9,10,11,1 —>3,4,5,6,7,8,9,10,11,1,2 —>3移出队列...直到队列仅剩一人: 7用队列进行模拟,代码:def solution(self, n: int, k: int) -> int: q = [
2022-05-04 12:54:46 340
原创 Python数据结构与算法分析(第二版)答案 - 第五章(仅供参考)
本人手写或借阅资料,仅供参考,有错误欢迎指正。本章需调用第三章课后作业部分内容import randomfrom homework.homework3 import UnorderedListimport timeit#5.1 进行随机实验,测试顺序搜索算法与二分搜索算法在处理整数列表时的差异#顺序搜索def sequentialsearch(ml, v): pos = 0 found = False while pos < len(ml) and n
2022-04-24 14:45:41 5858
原创 Python数据结构与算法分析(第二版)答案 - 第一章(未完)
本人手写或借阅资料,仅供参考,有错误欢迎指正。#1.1 Fraction(分数)的getNum()以及getDen()#1.2 所有分数一开始就是最简形式#1.3 实现下列简单的算术运算:__sub__、__mul__和__truediv__#1.4 实现下列关系运算:__gt__、__ge__、__lt__、__le__和__ne__#1.5 修改Fraction 类的构造方法,使其检查并确保分子和分母均为整数。如果任一不是整数,就抛出异常#1.6 对于负数分母,gcd已实现,熟悉
2022-04-23 16:22:27 4499
原创 Python数据结构与算法分析(第二版)答案 - 第三章(未完)
本人手写或借阅资料,仅供参考,有错误欢迎指正。import randomfrom pythonds.basic import Stack, Queue, Deque#中序表达式到后序表达式的转换#3.1 修改从中序到后序的转换算法,使其能处理异常情况。def infixToPostfix(indixexpr): prec = {'*':3, '/':3, '+':2, '-':2, '(':1} opStack = Stack() tokenList = ind
2022-04-22 19:49:02 6075
原创 Python数据结构与算法分析(第二版)答案 - 第二章(仅供参考)
import timeit#2.1 设计一个实验,证明列表的索引操作为常数阶。#2.2 设计一个实验,证明字典的取值操作和赋值操作为常数阶。if 1: for i in range(1000, 100001, 2000): t = timeit.Timer("random.randrange(%d) in x" % i, "from __main__ import random, x") x = list(range(i)) lidx_tim.
2022-04-20 18:36:12 4918 3
原创 Python数据结构与算法分析(第二版)答案-第四章(仅供参考)
import randomimport timeitfrom turtle import *import turtlefrom pythonds import Stack#递归: 进制转换def toStr(n, base): convertstring = '0123456789abcdef' if n < base: return convertstring[n] else: return toStr(n//base, bas.
2022-04-20 16:34:56 3921
原创 逐句讲解:在PyTorch下使用gpu进行图像风格迁移
1.优化的目标是提供内容信息的图片的复制。2.损失函数由内容损失和风格损失两方面构成。上代码:from PIL import Imageimport matplotlib.pyplot as pltimport numpy as npimport torchimport torch.optim as optimfrom torchvision import transforms, modelsdevice = torch.device('cuda' if torch.cuda
2021-10-08 22:00:31 725
原创 逐句讲解:在PyTorch框架下使用gpu训练MNIST手写数据集(附代码)
from os.path import joinfrom tqdm import tqdmimport pandas as pdimport torchvisionimport torchimport torch.nn as nn# 设置device,使得网络和数据能够在gpu上运行device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')# 定义卷积+激活函数类,定义方法要继承nn.Module.
2021-10-04 18:42:04 1084
原创 深度学习100题-知识点总结
1.Boosting对于训练集中的每个样本建立权值wi,表示对每个样本的权重, 其关键在与对于被错误分类的样本权重会在下一轮的分类中获得更大的权重。同时加大分类误差概率小的弱分类器的权值,使其在表决中起到更大的作用,减小分类误差率较大弱分类器的权值,使其在表决中起到较小的作用。2.Bagging对原始样本进行划分,使得多个模型在互不相同的数据上进行训练,同时与彼此模型之间进行参数共享,实现高度正则化。Dropout可以看作是一种极端的Bagging。3.主成分分析法(PCA)PCA提
2021-10-01 17:05:21 961
原创 梯度下降法与牛顿法
目录1. 前言2.梯度下降法3.牛顿法1. 前言在机器学习与深度学习领域中,通常需要构建模型来进行预测,而损失函数则是代表着当前模型输出的结果与真实结果之间差距的一种量化。由此可知,损失函数越小,模型训练的也就越好。梯度下降法与牛顿法是优化模型,减少损失函数值的两种基本方法,同时两者的本质都是迭代。损失函数通常会有被很多参数制约,在本文中使用来进行表示和推理(X为向量,可以包含多个权重和偏差),当然我们的最终目的是为了求出这些权重和偏差。2.梯度下降法简单概述一下:依据梯..
2021-09-30 20:22:23 1081
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人