- 博客(31)
- 收藏
- 关注
原创 llvm_tutorial :Kaleidoscope_toyComplier_OptPass
如何添加优化器支持和添加JIT支持可以看到,这里IRBuidler有帮我们做一些优化,例如常量折叠。由于构建 LLVM IR 的所有调用都通过 LLVM IR 构建器,因此构建器本身会检查您调用它时是否存在持续的折叠机会。如果是这样,它只是进行常量折叠并返回常量而不是创建指令。...
2022-04-02 12:10:38 418
原创 llvm_tutorial :Kaleidoscope_toyComplier
#include <cctype>#include <cstdio>#include <cstdlib>#include <map>#include <memory>#include <string>#include <utility>#include <vector>#include <iostream>//===----------------------------------
2022-03-30 12:33:45 874
原创 深度学习---01
深度学习的关键:特征层不是专家工程师设计的,而是使用学习算法从数据中得来以全连接的形式存在激活函数是为了在其中引入非线性的机制监督学习从有限的数据中,监督网络去学习特征。简单来说,就是给定数据以及相应的标签,神经网络通过给定的数据和相应标签去学习数据之中的特征,最终达到输出相应结果这个目的打标签是监督学习的重要步骤反向传播尝试推导!...
2022-02-16 13:58:25 476
原创 安装AKG
详情见https://github.com/mindspore-ai/akg这里python要7.5.0版本好像 llvm我用的是9.0(貌似)基于CPU构建打开akg目录,找到tests目录,先构建环境,这个地方我卡了一下,因为这个路径是临时给创建的一个路径在这里可以看到路径,复制,加入到自己的环境变量中去export PYTHONPATH=/home/huangl/program/akg-master/python:/home/huangl/program/akg-master/tes
2022-01-16 15:25:09 439
原创 编译原理——预测分析程序 LR文法
递归下降分析器JavaCC能够自动生成一个自上而下的递归下降的语法分析程序,而这个语法分析程序是用java来描述的
2022-01-10 15:53:28 357
原创 编译原理——词法分析程序自动生成
可以利用这些概念的等价性,实现词法分析程序自动生成step1 针对程序语言的词汇表(也就是正规集)写出各类单词的正规式step2 利用正规式到NFA的转换算法,构造一个识别所有单词的NFAstep3 利用从NFA到DFA的转换算法...
2022-01-08 22:55:58 912
原创 编译原理_NFA与正规式
然后,反复使用下面三条规则,逐步消去节点,直到只剩下X和Y为止证明 对于任何正规式r 都有一个FA M(也就是自动机)与之等价使用数学归纳法step1step2也就是说r1和r2都成立的情况下,r中含有k个运算符有三个情况。第一个情况,加入两个新状态q0和f0.还有新的转换关系如图:第二个情况,设q1是唯一的初态,f2是唯一的终态,添加转换关系(也就是图中的弧)第三个情况,引入两个新的状态q0初态,f0终态,增加四个转换关系,这样可以将M1收尾对接所以结论成立.
2022-01-08 21:03:48 1738
原创 编译原理_正规集和正规式_有限自动机
**正规集和正规式**也就是说程序设计语言的合法单词是 正规集,而正规式可以用来表示正规集正规集是集合正规式的等价可以转换为集合的等价来证明将每一类的单词符号写成一个正规式,通过或运算将这些正规式连接起来就构整个单词表的正规式了,这样就可以讲词法描述出来了有限自动机一个DFA允许没有终止状态状态转换函数,即 f(0,a) = 1,就是现在状态为0时,输入a则转换到1.DFA也可以用来识别字符串DFA很容易用二维数组进行表示非确定有限自动机DFA 之所以
2022-01-08 19:48:20 5377 1
原创 编译原理-词法
符号表中记录了编译过程中的各种信息如果说一个单词最大长度不能超过128,则说明扫描缓冲区的长度为 256超前搜索字母开头的字母数字穿串词法规则
2022-01-07 16:21:46 65
原创 编译原理-文法
P->:P定义为a, 左边 非终结符 右边 非终结符与终结符的串下面一个文法的例子从文法的四元组角度来描述这个文法红色表示终结符绿色非终结符蓝色开始符号产生式集合如何根据上下文无关文法确定其所描述的语言呢?->表示 定义为,=>表示直接推出例子如下:例题如下:这个式子只有终结符 i,满足。这个式子可以通过推导出来这个G1文法的开始符为A,A定义为c或者Ab,A是非终结符,b,c是终结符从文法A可能的推导是什么下面是最左推导.
2022-01-07 15:38:47 603
原创 使用调度模板和 AutoTVM 以及 AutoSchedule优化 Operator
首先要知道为啥要用这个调优,上一篇说到,咱们tile选择的bn = 32,但是硬件后端多种多样,不一定说32就能得到最好的结果,所以AutoTVM和AutoSchedule可以帮我们在搜索空间中一个个尝试,找到最好的结果(但是哦,大家想一想,搜索空间有局限对不对?)使用AutoTVM进行调优import loggingimport sysimport numpy as npimport tvmfrom tvm import tefrom tvm.autotvm.task import Tas
2021-11-08 23:29:57 447
原创 An Overview of TVM and Model Optimization && TE
TVM模型转化所采取的步骤1.从框架导入模型,如果遇到问题,可以将其转换为ONNX2.转换为Relay,这是TVM的high-level model language.会对模型进行一些图优化3.lower to TE(张量表达式)。Relay运行的 FuseOps pass会将model划分为许多小的子图,将子图lower to TE表示。TE还提供了多个调度原语(such as tiling, vectorization, parallelization, unrolling, and fusion
2021-11-08 22:12:48 231
原创 深度学习 第十一讲 卷积神经网络(高级篇)
1.这个红圈圈画的块叫做Inception2.concatenate就是将块拼接起来(长宽一样 channel不同)3.Average pooling 人为指定stride =1,padding = 1(均值卷积核)4.1*1卷积 表示卷积核也是1*1,可以融合不同通道相同位置像素的值,也就是信息融合Inception module实现沿着channel的维度拼接起来 (dim = 1)import torchfrom torch.utils.data import DataLoa.
2021-08-01 00:15:08 743
原创 深度学习 第十讲 卷积神经网络(CNN)基础篇
import torchin_channels,out_channels = 5,10##输入通道数量 输出通道数量width,height = 100,100kernel_size = 3#也可以用[5,3]这样的元组#卷积核的大小,也就是filter的大小batch_size = 1input = torch.randn(batch_size, in_channels, width, ...
2021-07-31 20:08:12 212
原创 深度学习 第八讲 加载数据集
多线程window与linux使用的接口不同,若window报错import numpy as npimport torchimport matplotlib.pyplot as pltfrom torch.utils.data import Datasetfrom torch.utils.data import DataLoaderclass DiabaesDataset(Dataset): def __init__(self,filepath): xy ..
2021-07-31 02:44:57 163
原创 深度学习 第七讲 处理多维特征的输入
代码:import numpy as npimport torchimport matplotlib.pyplot as plt#C:\Users\huang\Anaconda\Lib\site-packages\sklearn\datasets\dataxy = np.loadtxt('diabetes.csv',delimiter = ',',dtype = np.float32)#读取数据,指定数据类型 float32#因为显卡上只支持32位,贵一点的显卡支持64x_dat...
2021-07-31 01:39:22 102
原创 深度学习 第六讲 logistics回归
import torchx_data = torch.Tensor([[1.0],[2.0],[3.0]])y_data = torch.Tensor([[0],[0],[1]])##这里y变成二分类class LogisticRegressionModel(torch.nn.Module): def __init__(self): super(LogisticRegressionModel,self).__init__() self.linear = ..
2021-07-30 20:09:08 118
原创 深度学习 第五讲 pytorch实现线性回归
训练过程在这里会使用 mini-batch风格!!!其中_init_函数必须实现,第一句调用父类方法第二句,用自带的Linear(1,1)构造w = 1,b = 1的函数forward方法必须实现,这就是
2021-07-29 14:55:34 126
原创 深度学习 第四讲 反向传播
对于简单模型可以这么求但是对于复杂的模型这样w(权重)太多,不可能挨个写解析式,而且这些函数很多嵌套函数,写起来也十分麻烦由于经过化简,均可以化简成y = w*x +b的形式所以每一层加一个非线性的函数(激活函数)我们知道链式求导法则反向传播 步骤step1先正向传播,算出lossstep2通过链式求导法则,可以一步步向前算出最终要求的 loss对指定w的偏导数例子代码import torchx_data = [1.0,2.0,3.0]y_data =.
2021-07-29 03:08:32 92
原创 深度学习 第三讲 梯度下降
代码import numpy as npimport matplotlib.pyplot as pltimport mpl_toolkits #这句可以不要from mpl_toolkits.mplot3d import Axes3Dx_data = [1.0,2.0,3.0]y_data = [5.0,8.0,11.0]w = 0.0def f(x): return x*w###所有的样本的损失就叫做costdef cost(x,y): cost = 0 f
2021-07-29 00:51:30 44
原创 Numpy学习---代码
NUMPY学习import numpy as npimport matplotlib.pyplot as pltdef numpy_sum(n): a = np.arange(n) ** 2 b = np.arange(n) ** 3 return a+b#print(numpy_sum(10))x = np.array( [ [1,2,3],[4,5,6] ])#print(x)#arange(开始,结束,步长)x.shape
2021-07-28 16:51:27 125
原创 深度学习 第二讲 pytorch
深度学习 第二讲 pytorch模型为y = w *ximport numpy as npimport matplotlib.pyplot as pltx_data = [1.0,2.0,3.0]y_data = [2.0,4.0,6.0]##模型为def f(x): return x*wdef loss(x,y): y_predict = f(x) return (y_predict - y)**2w_list = []###权重的损失值mse_lis
2021-07-28 16:43:29 71
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人