Sitemap

A list of all the posts and pages found on the site. For you robots out there is an XML version available for digesting as well.

Pages

Posts

深度学习入门(一):Tensor

less than 1 minute read

Published:

Numpy

  • 主要特点:Numpy的核心是ndarray,这是一个多维数组,用来存储同质数据类型的元素。
  • 创建一维数组 data=np.array([1,2,3,4])
  • 创建二维数组 data=np.array([[1,2,3,4],[4,5,6,7]])
  • 创建全0数组 data=np.zeros(shape=(5,3)) shape(5,3)表示创建5行3列的数组
  • 创建全1数组 data=np.ones(shape=(5,3))
  • 创建全空数组data=np.empty(shape=(5,3)) 这里的数据都是无限小的,无限接近于0但不是0
  • 创建有连续序列的数组arrange data = np.arange(10,16,2) # 10-16的数据,步长为2所以这里的data是10 12 14
  • 创建有连续间隔的数组 linspace在一个指定区间内按照指定的步长,将区间均等分,生成的是一个线段类型的数组。生成的线性间隔数据中,是有把区间的两端加进去的 data= np.linspace(1,10,20) # 开始端1,结束端10,且分割成20个数据,生成线段
  • 创建随机数组 data = np.random.rand(3,4) 也可以用 data=np.random.randint(2,5,size=(4,5))
  • 改变数组形状 data.reshape
  • 数组转置 ` np.array`
  • 数组维度 data.ndim
  • 数组形状 data.shape
  • 数组中的元素个数 data.size
  • 数组的数据类型 data.dtype
  • 计算数组的平均值 numpy.mean(arr, axis=None, dtype=None, out=None) 参数axis表示沿着哪个轴进行计算,默认为None,表示计算整个数组的平均值;dtype表示返回结果的数据类型,默认为float64;out表示将结果存储在指定的数组中
  • 计算数组的中位数 numpy.median(arr, axis=None, out=None)
  • 计算数组的标准差 numpy.std(arr, axis=None, dtype=None, out=None)
  • 计算数组的方差 numpy.var(arr, axis=None, dtype=None, out=None)
  • 计算数组的最小值 numpy.min(arr, axis=None, out=None)
  • 计算数组的最大值 numpy.max(arr, axis=None, out=None)
  • 计算数组的元素之和 numpy.sum(arr, axis=None, dtype=None, out=None)
  • 计算数组的元素乘积 numpy.prod(arr, axis=None, dtype=None, out=None)
  • 计算数组的累积和 numpy.cumsum(arr, axis=None, dtype=None, out=None)
  • 一维数组切片。切片操作是左闭右开的,即包括起始位置,但不包括结束位置。例如,如果我们想要获取从索引1到索引3的元素,可以使用切片操作arr[1:4],结果为[2, 3, 4] arr = np.array([1,2,3,4,5]) print(arr[1:4])
  • 多维数组切片。data[0:1,0:2] 本质上就是进行一维一维的分解操作
  • 数组垂直堆叠 stacked_vertically = np.vstack((array1, array2))
  • 数组水平堆叠 stacked_horizontally = np.hstack((array1, array2))
  • 保存数组 np.save('my_array.npy', data)
  • 加载数组 loaded_data = np.load('my_array.npy')

Micro23-Spatula

less than 1 minute read

Published:

一些需要记录的问题

GPU在小的矩阵上表现糟糕,因为小矩阵的吞吐量非常低。并且,小型super node阻碍了GPU的利用率。

如何训练一个LLM

less than 1 minute read

Published:

模型的训练过程

  • 预训练(Pretraining)
  • 监督微调(Supervised Finetuning)
  • 奖励建模(Reward Modeling)
  • 强化学习(Reinforcement Learning)

MiniSAT

less than 1 minute read

Published:

Solver.h

  • newVar 方法用于创建新的布尔变量,允许用户定义变量的极性和是否作为决策变量。
  • addClause 方法用于向求解器添加不同形式的子句(如单位子句、二元子句、三元子句等)。
  • solve 系列方法实现了不同的求解方式,可以传入假设条件,也可以不带任何假设地搜索解。
  • value, modelValue 等方法可以用于获取当前求解过程中的变量和文字的状态。
  • 提供 setConfBudget 和 setPropBudget 等方法用于设置求解器的冲突和传播预算,帮助控制资源消耗。
  • 内部数据结构
    • clauses 和 learnts 分别存储问题的原始子句和学习到的子句。
    • trail 和 trail_lim 用于保存分配给文字的决策顺序,帮助在搜索中进行回溯。
    • activity 是用于启发式搜索的变量活动度,用于决定哪些变量将被优先选中。
    • order_heap 是一个优先队列,管理当前待决策变量的顺序。
  • 求解器的几个核心功能
    • 子句附加和分离: attachClause 和 detachClause 实现了对子句的附加与删除。
    • 冲突分析: analyze 方法实现了冲突子句的回溯分析,计算出学习子句,并决定回溯的层次。
    • 启发式决策: pickBranchLit 方法选择下一个用于分支的变量。
    • 垃圾收集: garbageCollect 和 checkGarbage 方法用于管理内存,确保在必要时进行垃圾回收。

Modern C++学习笔记(三)

1 minute read

Published:

智能指针与内存管理

  • std::shared_ptr
    • 它能够记录多少个 shared_ptr 共同指向一个对象,从而消除显式的调用 delete,当引用计数变为零的时候就会将对象自动删除。std::make_shared 就能够用来消除显式的使用 new,所以std::make_shared 会分配创建传入参数中的对象, 并返回这个对象类型的std::shared_ptr指针
      #include <iostream>
      #include <memory>
      void foo(std::shared_ptr<int> i) {
          (*i)++;
      }
      int main() {
          // auto pointer = new int(10); // illegal, no direct assignment
          // Constructed a std::shared_ptr
          auto pointer = std::make_shared<int>(10);
          foo(pointer);
          std::cout << *pointer << std::endl; // 11
          // The shared_ptr will be destructed before leaving the scope
          return 0;
      }
      

SMT Switch API 总结

less than 1 minute read

Published:

首先假设我们有一个 TransitionSystem 叫做sts

Combinational Equivalence Checking

less than 1 minute read

Published:

Improvements to Combinational Equivalence Checking: ICCAD 2006

  • main contributions:
    • use of fast logic synthesis
    • development of “intelligent simulation”
    • use of CNF-based SAT fot circuits

GPT好用的指令

less than 1 minute read

Published:

翻译中文,并且润色指令

I am writing a paper for a prestigious academic journal. I have expressed these sentences in the following section. Please translate them into English for me, and please reword them so that the text is clear, coherent, concise, and make sure that they flow smoothly from paragraph to paragraph. Remove jargon. Use a professional tone and provide me with the results in tabular form, with the original text in the first column and the embellished results followed in the second column

形式化方法综述

less than 1 minute read

Published:

论文题目

硬件设计的形式化验证研究进展及趋势

约束求解公开课笔记

less than 1 minute read

Published:

两种计算思维

  • 符号主义(约束求解):问题可以清晰描述 Typical:定理证明
  • 连接主义(机器学习):问题难以清晰描述 Typical:模式识别

portfolio

publications

talks

teaching