- 博客(56)
- 资源 (1)
- 收藏
- 关注
原创 昇腾glm3大模型lora微调及推理
ChatGLM3 是智谱AI和清华大学 KEG 实验室联合发布的新一代对话预训练模型。ChatGLM3-6B 是 ChatGLM3 系列中的开源模型,在保留了前两代模型对话流畅、部署门槛低等众多优秀特性的基础上,ChatGLM3-6B 引入了如下特性:更强大的基础模型,更完整的功能支持,更全面的开源序列。
2024-03-29 17:31:26 505
原创 pytorch快速入门中文——07(TensorBoard)
在中,我们向您展示了如何加载数据,如何通过定义为nn.Module子类的模型提供数据,如何在训练数据上训练该模型以及在测试数据上对其进行测试。为了了解发生的情况,我们在模型训练期间打印一些统计数据,以了解训练是否在进行中。但是,我们可以做得更好:PyTorch 与 TensorBoard 集成在一起,TensorBoard 是一种工具,用于可视化神经网络训练运行的结果。本教程使用说明了其某些功能,可以使用将其读入 PyTorch。我们将从。
2023-06-29 09:58:39 1424
原创 pytorch快速入门中文——06(torch.nn)
现在,我们有了一个通用的数据管道和训练循环,您可以将其用于使用 Pytorch 训练许多类型的模型。要了解现在可以轻松进行模型训练,请查看示例笔记本。当然,您需要添加很多内容,例如数据扩充,超参数调整,监控训练,迁移学习等。这些功能可在 fastai 库中使用,该库是使用本教程中所示的相同设计方法开发的,为希望进一步推广其模型的从业人员提供了自然的下一步。我们承诺在本教程开始时将通过示例分别说明torch.nnDataset和DataLoader。
2023-06-29 09:40:19 778
原创 pytorch快速入门中文——05
在幕后,每个原始的 Autograd 运算符实际上都是在张量上运行的两个函数。正向函数从输入张量计算输出张量。反向函数接收相对于某个标量值的输出张量的梯度,并计算相对于相同标量值的输入张量的梯度。在 PyTorch 中,我们可以通过定义的子类并实现forward和backward函数来轻松定义自己的 Autograd 运算符。然后,我们可以通过构造实例并像调用函数一样调用新的 Autograd 运算符,并传递包含输入数据的张量。在此示例中,我们将模型定义为而不是,其中是三次的勒让德多项式。
2023-06-29 09:30:00 583
原创 pytorch快速入门中文——04(训练图片分类器)
之前从“神经网络”部分复制神经网络,然后对其进行修改以获取 3 通道图像(而不是定义的 1 通道图像)。让我们使用分类交叉熵损失和带有动量的 SGD。
2023-06-28 17:32:21 1504
原创 pytorch快速入门中文——03
您只需要定义forward函数,就可以使用autograd为您自动定义backward函数(计算梯度)。您可以在forward函数中使用任何张量操作。模型的可学习参数由返回让我们尝试一个32x32随机输入。注意:该网络的预期输入大小(LeNet)为32x32。要在 MNIST 数据集上使用此网络,请将图像从数据集中调整为32x32。注意torch.nn仅支持小批量。整个torch.nn包仅支持作为微型样本而不是单个样本的输入。例如,nn.Conv2d将采用的 4D 张量。如果您只有一个样本,只需使用。
2023-06-28 17:20:34 958
原创 pytorch快速入门中文——02
是 PyTorch 的自动差分引擎,可为神经网络训练提供支持。在本节中,您将获得有关 Autograd 如何帮助神经网络训练的概念性理解。
2023-06-28 17:02:36 1120
原创 pytorch快速入门中文——01
无缝替换NumPy,并且通过利用GPU的算力来实现神经网络的加速。通过自动微分机制,来让神经网络的实现变得更加容易。
2023-06-28 16:56:08 1191
原创 python中的函数——笔记
不仅Python函数是真正的对象,任何Python对象都可以表现得像函数。为此,只需实现实例方法__call__。实现__call__方法的类是创建函数类对象的简便方式,此时必须在内部维护一个状态,让它在调用之间可用,例如BingoCage中的剩余元素。装饰器就是这样。装饰器必须是函数,而且有时要在多次调用之间“记住”某些事[例如备忘(memoization),即缓存消耗大的计算结果,供后面使用。创建保有内部状态的函数,还有一种截然不同的方式——使用闭包。
2023-03-07 09:58:06 385 1
原创 python的文本和字节序列
可以肯定的是,某些字节流不是ASCII,因为其中包含大于127的字节值,而且制定UTF-8和UTF-16的方式也限制了可用的字节序列。因此,从Python 3的str对象中获取的元素是Unicode字符,这相当于从Python 2的unicode对象中获取的元素,而不是从Python 2的str对象中获取的原始字节序列。:编码是在码位和字节序列之间转换时使用的算法。一种重要的编码,是其他编码的基础,例如cp1252和Unicode(注意,latin1与cp1252的字节值是一样的,甚至连码位也相同)。
2023-03-06 10:12:26 524
原创 python字典和集合——笔记
也就是说,如果有一个类继承了dict,然后这个继承类提供了__missing__方法,那么在__getitem__碰到找不到的键的时候,Python就会自动调用它,而不是抛出一个KeyError异常。如果给这个类一个映射,它会返回一个只读的映射视图。因为Python会设法保证大概还有三分之一的表元是空的,所以在快要达到这个阈值的时候,原有的散列表会被复制到一个更大的空间里面。1.1如果一个对象是可散列的,那么在这个对象的生命周期中,它的散列值是不变的,而且这个对象需要实现__hash__( )方法。
2023-03-05 12:49:31 526
原创 python中的序列——笔记
ABC语言时一个致力于为初学者设计编程环境的长达十年的研究项目。Python也从ABC那里继承了用统一的风格去处理序列数据这一特点。不管是哪种数据结构,字符串、列表、字节序列、数组、XML元素,抑或是数据库查询结果,它们都共用一套丰富的操作:迭代、切片、排序,还有拼接。在切片和区间操作里不包含区间范围的最后一个元素是Python的风格,这个习惯符合Python、C和其他语言里以0作为起始下标的传统。这样做带来的好处如下。
2023-02-28 21:03:59 1015
原创 【论文学习】RNN Encoder–Decoder机器翻译
在本文中,作者提出了一种称为RNN编码器-解码器的新型神经网络模型-由两个循环解码器组成神经网络。一个RNN作为编码器将一系列符号编码为固定长度的向量表示,另一个RNN作为解码器将固定长度的向量表示形式解码为另一个符号序列。所提出模型的编码器和解码器是联合训练的,最大化在给定源序列的情况下得出目标序列的条件概率。通过使用RNN编码器- 解码器计算的短语对的条件概率作为现有对数线性中的附加功能模型。
2022-10-11 14:56:36 1254
原创 torch.nn.utils.rnn下面pack_padded_sequence和pad_packed_sequence方法
这个函数主要做了两件事: pad 和封装,因为在rnn模型中,一般先将batch中的数据按照一个时间步一个时间步喂入模型的,这个包的主要作用就是将按照样本堆叠的数据,抽取出时间步这个维度重新堆叠。batch_first: batch 是否在第一位,默认值是False,上面的例子指定为了True,因为是二维,方便观察理解,一般放入lstm或者gru是需要时间步放在第一位的。需要注意的是,默认条件下,我们必须把输入数据按照序列长度从大到小排列后才能送入 pack_padded_sequence ,否则会报错。.
2022-08-11 11:14:06 1054
原创 随笔记录——pandas 中 Dataframe.to_dict()
在工作中,使用pandas时,常常需要将dataframe中的数据按照指定的格式输出给下游使用,很多时候,下游指定的格式并不是很特别,而是比较常见的,这时,我们就不需要自己专门定义方法去处理了,可以先看一下有没有现成的方法可以调用,会节省我们很多时间,提高我们程序的效率。下面我介绍一下dataframe的一个格式化输出的方法,to_dict()1、 使用默认的to_dict()格式化输出df = pd.DataFrame({'col1': [1, 2], 'col
2022-03-30 14:21:30 2693
原创 使用torch随机初始化参数
1、从均匀分布中生成值w = torch.zeros(3, 5)wOut[75]: tensor([[0., 0., 0., 0., 0.], [0., 0., 0., 0., 0.], [0., 0., 0., 0., 0.]])torch.nn.init.uniform_(w, a=10, b=15)Out[76]: tensor([[11.8949, 11.0836, 10.6348, 13.4524, 12.8051], [14.5289
2022-03-21 18:09:46 2646
原创 随笔记录——pytorch创建tensor函数
1、通过复制数据构造张量1.1 torch.tensor()torch.tensor([[0.1, 1.2], [2.2, 3.1], [4.9, 5.2]])Out[111]: tensor([[0.1000, 1.2000], [2.2000, 3.1000], [4.9000, 5.2000]])torch.tensor([0, 1]) Out[112]: tensor([0, 1])torch.tensor([[0.11111, 0.222222, 0.
2022-03-21 15:23:01 2002
原创 随笔记录——pytorch一元通用函数
1、获取一维tensor中的最大值import torcha = torch.randn(1, 3)aOut[4]: tensor([[-0.6893, -0.3273, 0.6810]])torch.max(a)Out[5]: tensor(0.6810)1.1、 二维或者更多维数据中,获取各个维度的最大值a = torch.randn(4, 4)aOut[7]: tensor([[ 0.0531, 0.1278, 0.0252, -0.7423], [ 0
2022-03-16 18:40:20 3354
原创 随笔记录——混淆矩阵(机器学习)
正确率在分类问题中最常见的指标是正确率(Accuracy),表示模型预测正确的样本比例。 正确率的定义如下:Accuracy=TP+TNTN+FN+FP+FNAccuracy = \frac{TP + TN}{TN+FN+FP+FN}Accuracy=TN+FN+FP+FNTP+TN正确率指标在样本不均衡的时候不是一个很好的度量模型好坏的指标。例如在文本情绪分类数据集中,正面的样本占比为80%,负面的内容占比只有20%。如果一个分类模型将所有的样本都预测为正面,这个模型显然是一个无用的模型,但是它的.
2022-03-16 11:21:48 1034
原创 pytorch错误——Torch not compiled with CUDA enabled
在Mac上面调试textCNN 分类模型,在调试时发现运行到这一句报错:报错内容为: Torch not compiled with CUDA enabled调查发现, 是跟pytorch和cuda版本不兼容有关, 但是我想到我的mac上并没有显卡,所以这里不应该这么调用cuda,只需要指定下使用cpu。device = torch.device('cpu')s = torch.from_numpy(ndarray).long().to(device)完结。。。...
2022-03-15 11:25:05 4578 1
原创 pyahocorasick使用(ac自动机)
一、简介pyahocorasick是一个快速高效的库,用于精确或近似的多模式字符串搜索,这意味着您可以在一些输入文本中同时找到多个关键字字符串。字符串“索引”可以提前构建,并保存(作为pickle)到磁盘,以便以后重新使用。该库提供了一个ahocarasick Python模块,您可以将其用作Trie之类的普通dict,或者将Trie转换为自动机,以实现高效的Aho-Carasick搜索。二、安装pip install pyahocorasick三、使用1.新建自动机可以将Automaton类
2022-03-15 10:54:20 1997
原创 随笔记录(扩展)——np.where
where基本使用15.1、使用where 按照条件查询出两个字段的值xarr = np.array([1, 2, 3, 4, 5])yarr = np.array([-1, -2, -3, -4, -5])cond = np.array([True, False, True, False, False])np.where(cond, xarr, yarr)Out[174]: array([ 1, -2, 3, -4, -5])15.2、使用where在原有的array中填充常数a
2022-03-14 14:48:07 1267
原创 随笔记录——torch.squeeze/torch.unsqueeze
使用squeeze()移除输入的tensor中,大小为1的维度import torchx = torch.zeros(2, 1, 2, 1, 2)y = torch.squeeze(x)y.shapetorch.Size([2, 2, 2])使用squeeze()移除输入的tensor中,指定维度的大小为1的维度y = torch.squeeze(x, 0)y.shapetorch.Size([2, 1, 2, 1, 2])y = torch.squeeze(x, 1)y.sha
2022-03-08 14:42:19 161
原创 随笔记录——numpy.pad()
1.直接对列表两端进行填充a = list(range(1, 6))np.pad(array=a, pad_width=(2, 3), mode='constant', constant_values=(100, -100))Out[12]: array([ 100, 100, 1, 2, 3, 4, 5, -100, -100, -100])其中array: 需要pad的列表pad_width: 填充到每个轴边缘的数值,在这里,就是说在 左边填充两个元素,
2022-03-07 15:56:02 2759
原创 随笔记录——python中的日期和时间数据处理
一、标准库中的日期和时间处理1、使用datetime包计算时间1.1 使用datetime包获取当前时间from datetime import datetimenow = datetime.now()nowOut[3]: datetime.datetime(2022, 3, 4, 17, 16, 55, 703231)now.year, now.month, now.dayOut[4]: (2022, 3, 4)1.2、计算两个datetime的时间差delta = datet
2022-03-04 18:24:33 586
原创 随笔记录——pandas(数据联合)
5、根据索引合并DataFrame中用于合并的键是它的索引。在这种情况下,你可以传递left_index=True或right_index=True(或者都传)来表示索引需要用来作为合并的键:df1 = pd.DataFrame({'col1':range(5), 'col2':['a', 'b', 'c', 'd', 'e']})df1Out[91]: col1 col20 0 a1 1 b2 2 c3 3 d4
2022-03-03 14:39:24 664
原创 随笔记录——pandas(数据联合与合并)
包含在pandas对象的数据可以通过多种方式联合在一起:pandas.merge根据一个或多个键将行进行连接。对于SQL或其他关系型数据库的用户来说,这种方式比较熟悉,它实现的是数据库的连接操作。pandas.concat使对象在轴向上进行黏合或“堆叠”。combine_first实例方法允许将重叠的数据拼接在一起,以使用一个对象中的值填充另一个对象中的缺失值。1.1、两个df都存在相同key,进行mergedf1 = pd.DataFrame({'col1':range(6), 'col1_
2022-03-01 16:01:14 2707
原创 随笔记录——numpy4(伪随机数生成)
numpy.random模块填补了Python内建的random模块的不足,可以高效地生成多种概率分布下的完整样本值数组。22、指定均值方差,生成符合正态分布的随机数np.random.normal(loc=0, scale=0.1, size=10)Out[8]: array([ 0.04967142, -0.01382643, 0.06476885, 0.15230299, -0.02341534, -0.0234137 , 0.15792128, 0.07674347,
2022-02-25 11:45:33 2466
原创 随笔记录——numpy3(线性代数)
21、np中的线性代数相关函数矩阵乘法、分解、行列式等方阵数学。21.1 矩阵乘法x = np.random.randint(low=0, high=20, size=(2, 5))y = np.random.randint(low=0, high=20, size=(5, 3))xOut[238]: array([[16, 11, 1, 18, 13], [10, 10, 15, 10, 3]])yOut[239]: array([[ 2, 19, 4],
2022-02-24 18:29:22 501
原创 随笔记录——numpy2
12、 数组转置arr = np.arange(12).reshape((4, 3))arrOut[114]: array([[ 0, 1, 2], [ 3, 4, 5], [ 6, 7, 8], [ 9, 10, 11]])arr.TOut[115]: array([[ 0, 3, 6, 9], [ 1, 4, 7, 10], [ 2, 5, 8, 11]])12.1、矩阵內积np.dot(
2022-02-21 11:22:56 782
原创 随笔记录——numpy1
10、假设每个人名都和data数组中的一行相对应,并且我们想要选中所有’nana’对应的行。names = np.array(['nana', 'zhengzheng', 'fangfang', 'zhengzheng', 'nana', 'dingding', 'huanhuan'])data = np.random.rand(7, 5)dataOut[83]: array([[0.36880059, 0.8395524 , 0.1620856 , 0.43745294, 0.60072609]
2022-02-18 15:54:55 459
原创 随笔记录——numpy
1、生成随机数import numpy as npdata = np.random.randn(2, 3)dataarray([[-0.06180816, -0.34319508, 0.28056151], [-0.15430366, -0.7140969 , -1.67410168]])#####1.1 给随机数加上一个data*10array([[ -0.61808156, -3.43195079, 2.80561508], [ -1.54303661
2022-02-16 18:37:06 439
原创 随笔记录——pandas 中 按条件过滤字符串类型的值
一、使用~对字符串值取反:1、测试数据test_df total_bill tip smoker day time size tip_pct57 26.41 1.50 No Sat Dinner 2 0.0567970 16.99 1.01 No Sun Dinner 2 0.05944748 28.55 2.05 No Sun Dinner 3 0.071804146 18.64 1.36 No Thur Lunch 3 0.072961130 19.08 1.50 No Thur Lun
2021-01-08 16:47:07 429
原创 读书记录——pandas中的分组方法groupby(二)
续接读书记录——pandas中的分组方法groupby(一)。6、逐级多列运用聚合函数1)简单例子#使用 小费数据集。进行测试tips = pd.read_csv('/Users/daxu/vsCodePy/study_ws/pydata-book/examples/tips.csv')# 增加维度属性,小费比例tips['tip_pct'] = tips['tip'] / tips['total_bill']#对 day 和 smoker 来进行分组grouped = tips.group
2021-01-07 18:42:44 523
原创 读书记录——pandas中的分组方法groupby(一)
pandas的group分组1、第一个简单案例1)数据和依赖包准别import pandas as pdimport numpy as npimport randomdf = pd.DataFrame({'key1': ['a', 'a', 'b', 'b', 'a'], 'key2': ['one', 'two', 'one', 'two', 'one'], 'data1': np.random.randint(5, 100, 5), 'data2': np.random.randint(5,
2021-01-07 17:49:49 1829
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人