自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 简单的知识蒸馏

student_scratch = keras.models.clone_model(student)#新模型与原模型具有相同的结构,但不用原模型的权重,优化器等等。distiller.fit(x_train, y_train, epochs=3)#提炼教师到学生(让学生模型能学习教师模型的预测分布)# 知识蒸馏一般应该是从复杂的精度高的模型到简单的模型,让学生模型去学习教师模型的预测分布,但这个例子,因为简单的模型也。# 模型会同时考虑减少自身的预测损失(即提高预测准确性)和与教师模型预测分布的相似性。

2024-05-03 17:05:25 194 1

原创 对比学习用于分类任务

layers.RandomZoom((-zoom_factor, 0.0), (-zoom_factor, 0.0)),#随机缩放。self.contrastive_loss_tracker.update_state(contrastive_loss)#更新对比损失状态。probe_loss = self.probe_loss(labels, class_logits)#计算损失(带标签)probe_loss = self.probe_loss(labels, class_logits)#计算损失。

2024-05-02 12:18:26 581 1

原创 VIT(transformer在计算机视觉方面的应用)

patch_img = ops.reshape(patch, (patch_size, patch_size,3))#变形成(6,6,3)# print(patch_img.numpy().max(),type(patch_img))#每个小块图的像素大小都不一样。# 创建小区域图块(1,144,108)#原图(32,32,3),path_size=6,144是指144个小块,108是。#变形之后,(1,144,6*6*3),样本,小块,每个小块的像素值。

2024-04-30 13:35:51 844

原创 不同方式处理cifar10数据集

如果卷积核的大小是 (kernel_height, kernel_width),那么每个卷积核的形状就是 (kernel_height, kernel_width, 1)。#w形状会是(k_size,k_size,deep_in),每个卷积的参数个数其实是这个权重w的元素个数k_size*k_size*deep_in。#深度卷积,这个是捕捉像素间的位置信息,每个通道卷积核不同,每个卷积核的形状是(k_size,k_size,1),每个卷积核处理一个通道。这种卷积的目的是改变通道数,

2024-04-28 13:04:19 903

原创 keras卷积入门之mnist,测试准确率99.41%

plt.imshow(b11[i,:,:,:3])#i,第i个卷积,每个卷积在输入的每个通道权重不同,但每个通道共用权重,:3是plt显示前3个卷积滤镜的叠加,类似rgb3个通道的叠加颜色,你单独看每个通道是单独的颜色,合起来其实是3种颜色的合成色。print(x_train.dtype,x_train.max(),x_train.min())# 可以看到x_train变成float32,范围0-1。batch_size=batch_size,# 批次大小128。#在最后增加一维通道。

2024-04-27 10:03:29 473

原创 迁移学习和微调

image_batch, label_batch = test_dataset.as_numpy_iterator().next()#获取一个批次。# 在你的代码中,initial_epoch=history.epoch[-1]意味着训练将从history.epoch[-1]指定的epoch。# 批次数据,因此使用 predict_on_batch() 是合适的。# model.predict() 方法则更灵活,它接受一个 tf.data.Dataset 对象或一个 NumPy 数组作为输入,

2024-04-08 00:02:03 332

原创 使用数据增强和dropout的图像分类

dict_={'daisy':'雏菊','tulips':'郁金香','sunflowers':'向日葵','roses':'玫瑰','dandelion':'蒲公英'}# plt.rcParams['font.sans-serif'] = ['STKaiti'] # 如果没有sans-serif字体则回退到STKaiti。# plt.rcParams['font.sans-serif'] = ['STKaiti'] # 如果没有sans-serif字体则回退到STKaiti。

2024-04-07 20:12:56 852

原创 自定义训练循环

per_example_loss = loss_object(labels, predictions)#返回的是(batch_size,)因为指定了每个样本返回一个损失。在你提供的代码中,reduction=tf.keras.losses.Reduction.NONE 表示损失函数不会进行任何聚合操作,tf.keras.losses.Reduction 是一个枚举类,t_loss = loss_object(labels, predictions)#这里和训练时不一样,直接用的loss_object。

2024-04-07 16:32:58 303

原创 keras分布式训练

tf.keras.layers.Dense(64, activation='relu'),# 线性层(64),每个单元接收(13*13*32个w_i+b)tf.keras.layers.Conv2D(32, 3, activation='relu'),#卷积层(26,26,32)tf.keras.layers.Flatten(),# 扁平化(13*13*32),把上面32层排序成行(列)向量。tf.keras.layers.MaxPooling2D(),#最大池化(13,13,32)通过增加副本的数量,

2024-04-07 11:55:24 253

原创 对Fashion._mnist进行10分类ipynb

tf.keras.layers.Dense(10)#输出层,10个分值,对应模型对于输入数据应该属于这10个类别的置信度。plt.xlabel(class_names[train_labels[i]])#显示横轴标签为数字标签对应的真实类别。tf.keras.layers.Dense(128, activation='relu'),#线性转换层。tf.keras.layers.Flatten(),#扁平化处理成行向量。plt.subplot(5,5,i+1)#以子视图的形式展示。

2024-04-06 16:25:31 978

原创 cycle GAN

train_horse_dataset = train_horse_dataset.shuffle(BUFFER_SIZE)#缓冲区大小,可以随机刷新数据。total_disc_loss = real_loss + generated_loss#总的判别损失是这两个的和。#计算判别器y损失,判别器x是判别x_real和生成器F生成的x,判别器y是判别y_real和生成器G生成的y。os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'#设置tensorflow的日志级别。

2024-04-06 14:22:10 943

原创 pix2pix GAN

inp = tf.keras.layers.Input(shape=[256, 256, 3], name='input_image') #输入图像。tar = tf.keras.layers.Input(shape=[256, 256, 3], name='target_image')#目标图片。# 判别器接收 input_image 和生成的图像作为第一个输入。example_input, example_target = next(iter(test_ds.take(1)))#获取1个批次。

2024-04-05 21:59:34 492

原创 深度卷积生成对抗网络

checkpoint_dir 变量定义了检查点文件将被保存的目录路径,即 './training_checkpoints'。# 当传入 tf.train.latest_checkpoint(checkpoint_dir) 的返回值时,它将尝试从最新。# 以一个使用该种子作为输入的 Dense 层开始,然后多次上采样,直至达到所需的 28x28x1 的图像大小。# checkpoint.restore(...) 是一个方法,用于从指定的检查点文件中恢复模型的权重和状态。# 配符搜索创建文件列表的函数。

2024-04-05 14:06:34 572

原创 使用pytorch训练模型,并输出到tensorboard

model_path = 'model_{}_{}'.format(timestamp, epoch_number) #根据当前时间和当前轮次设置保存路径。tb_writer.add_scalar('Loss/train', last_loss, tb_x)# 写到tensorbord。avg_loss = train_one_epoch(epoch_number, writer) #返回的是最后1000个批次的平均损失。vloss = loss_fn(voutputs, vlabels)#计算损失。

2024-04-03 14:36:46 277

原创 pytorch中用tensorboard

label_img=images.unsqueeze(1),global_step=global_step) #加一维层(通道)optimizer = optim.SGD(net.parameters(), lr=0.001, momentum=0.9)#优化器,SGD。assert len(data) == len(labels) #断言:如果错误,会报错,程序不会向下执行。perm = torch.randperm(len(data)) #刷新过的索引。

2024-04-03 13:18:25 647 1

原创 bert-base-chinese另外的加载方法.txt

而是通过分词器(Tokenizer)对输入文本的处理来识别这些特殊标记。# 在Transformers库中,模型并不是通过数字本身来识别分割符的,input_text='bert-base-chinese该怎么用?context = "今天是晴天,气温适中,非常适合户外活动。question = "你好,请问今天天气怎么样?# 使用分词器对问题和上下文进行编码。# 在不计算梯度的情况下进行推理。# 定义问题和上下文。

2024-03-22 13:38:31 574

原创 bert_base_chinese入门

tensor_token=torch.tensor([inx_token])# tensor小写是int64,Tensor大写是float32。inx_token=tokenizer.encode(input_text)# 索引序列,加了开始索引101和结束索引102。# print(text_token)# [CLS],[SEP],[SEP],索引对应分词字符串。#句子对,开始索引101,句子间分割102,第二个句子的结束102。input_text1='我家的小狗是黑色的'

2024-03-21 23:54:25 408

原创 bert源码分析之tokenization

sub_tokens.append(cur_substr)# 能到这的,cur_substr肯定有值,就在sub_tokens里加进cur_substr。if is_bad: #如果是UNK(包括整个分词,没一部分在词汇里能找到和,即便有一些找到了,但有一个找不到,也是UNK)split_tokens.extend(self._run_split_on_punc(token))#追加列表形式的词汇。token = self._run_strip_accents(token)# 过滤掉重音符的词汇。

2024-03-20 22:12:40 910

原创 transformer进阶

def forward(self,query,key,value,mask=None):# (2,4,512)--样本数,序列长度,词维度。# 传入时形状是 (2, 8, 4, 64),之后q与k转置相乘,(2,8,4,64)@(2,8,64,4)=(2,8,4,4)# 要明白传入的key,query,value形状是(2, 8, 4, 64),后面两个轴是(序列长度,分成组的词向量维度)self.dropout=nn.Dropout(dropout)#定义dropout层,dropout,置0的比率。

2024-03-19 07:32:25 1027

原创 下载NLP_gluedata数据集的脚本

parser.add_argument('-d', '--data_dir', help='要保存的文件夹路径:', type=str, default='glue_data')parser.add_argument('-t', '--tasks', help='要下载哪些文件',type=str, default='all')默认值是 'all',表示下载所有任务的数据。parser.add_argument('--path_to_mrpc', help='要提取的MRPC路径',extractall。

2024-03-19 01:16:14 985

原创 transformer入门学习(二)

def forward(self,query,key,value,mask=None):# (2,4,512)--样本数,序列长度,词维度。# 传入时形状是 (2, 8, 4, 64),之后q与k转置相乘,(2,8,4,64)@(2,8,64,4)=(2,8,4,4)# 最后就形成了一个方阵.最后除的那个是常数,只是为了把数据变小(2,8,4,64)@(2,8,64,4)=(2,8,4,4)# 因为选定偶数列,所以seq_cxl_[:,::2]形状是(200,50)==(200,1)*(1*50)

2024-03-15 16:42:57 377

原创 transformer入门

input1=torch.LongTensor([[1,2,4,5],[4,3,2,9]])# 模拟(2,4)形状的输入,2两个样本,4每个样本是长度为4的词汇序列。# 传入时形状是 (2, 8, 4, 64),之后q与k转置相乘,(2,8,4,64)@(2,8,64,4)=(2,8,4,4)*-(math.log(10000.0)/cxl_len))# 步长2,偶数列(1*50)# 最后就形成了一个方阵.最后除的那个是常数,只是为了把数据变小(2,8,4,64)@(2,8,64,4)=(2,8,4,4)

2024-03-14 20:13:47 355

原创 pytorch入门

yhq=optim.SGD(model.parameters(),5e-3)#优化器,parameters()在模型内,也被变成gpu tensor。a.numpy()# 当requires_grad=True时,用tensortensor.detach().numpy(),相当于深拷贝。[transforms.ToTensor(),#把原来的ndarray(h,w,c)变成饿了(c,h,w)plt.scatter(x.numpy(),y.numpy(),c='red')# detach属于深拷贝。

2024-03-11 19:28:41 402

原创 VGG16滤镜可视化和类激活图

print('x,uint8的期望,方差,最大值,最小值:',x.mean(),x.std(),x.max(),x.min())# print('x标准化后的期望,方差,最大值,最小值:',x.mean(),x.std(),x.max(),x.min())# print('x裁剪后的期望,方差,最大值,最小值:',x.mean(),x.std(),x.max(),x.min())

2024-03-06 15:24:35 971 1

原创 CNN可视化

print('第{}个滤镜的形状,均值,标准差:'.format(i),img_i.shape,img_i.mean(),img_i.std())# print('乘以64后的标准差,均值:',img_i.std(),img_i.mean())# 方差变成64。# print('中心化后的标准差,均值:',img_i.std(),img_i.mean())

2024-03-05 14:08:41 442

原创 CNN借用别人模型

set_trainable之后,trainable params: 9,177,089,自己设置的(2097408+257),base_model的7079424。if layer.name=='block5_conv1':# 如果是block5_conv1(它是Ture的话,它后边的层也会是True)# inputs_batch(20,150,150,3),labels_batch(20,)里面是0,1。print('冻结别人模型之后:',len(model_.trainable_weights))

2024-03-04 18:31:41 917 1

原创 卷积神经网络增强数据

卷积神经网络增强数据

2024-03-04 02:22:21 883 1

原创 过拟合问题

5.增强数据,想一下,我们给电脑的数据无非就是输入和输出,电脑要找到为何这个输入映射到了输出,比如在图片神经网络时,我们变换图片的位置,旋转,都是为了让机器学到,变换位置,旋转不是得到y的因素,换言之,这些不重要,不是被贴上标签的真正原因,这样电脑就会试图抓更重要的因素。#input_shape输入的单个数据的形状,16神经元个数,relu激活函数。#input_shape输入的单个数据的形状,16神经元个数,relu激活函数。# 电脑过度拟合训练数据,当给他新的数据时,却找不到规律,

2024-03-03 17:37:43 327

原创 波士顿房价预测(回归)

64个神经元,隐层一,激活函数relu,test_data.shape[1],shape中的0索引,是样本数,1是13个特征。# verbose=2显示详细,verbose=0,1的话显示不好,我们要安心知道训练状态,# verbose=2显示详细,verbose=0,1的话显示不好,我们要安心知道训练状态,# 参数:优化器,一阶导数,之后调和平均,损失函数:误差平方均数,mae:绝对值误差均值。#这个没有经过曲线平滑,在第35次迭代时,验证mae平均值最小,索引是从0开始的,

2024-03-02 19:32:53 1038

原创 新闻单标签多分类

start_char=1,进入新的一篇新闻的标志, oov_char=2,只映射最常用的1万字,超出范围的映射2,#为啥索引-3,因为它的0,1,2索引是'padding,start of sequence,unknown',训练数据,训练标签,测试数据,测试标签,8982个训练样本,2246个测试样本。#128个神经元,隐层一,激活函数relu,10000,单个新闻样本的特征列。#128个神经元,隐层一,激活函数relu,10000,单个新闻样本的特征列。

2024-03-02 15:20:11 948

原创 电影影评二分类(DNN)

1万个最常用单词映射,超出1万的,oov_char=2,都会被映射成2,start_char=1是某个影评的起始位置。# 但是可能你选最常用的5万字,它就能映射到,不在1万个常用字内的都用2表示,比方说train_data[0][0],#获取数字映射的单词,1,2已经有默认映射了,1代表某个影评的起始位,2表示这个单词不在1万个常用字里。#index_from=3,这样1,2都有映射的东西了,3之后才是真正的单词,imdb属于二分类。# 对应14,那有this的影评第14列就应该是1,这个有个隐藏的。

2024-03-02 12:04:18 881

原创 keras张量

keras张量

2024-03-01 21:29:13 321 1

原创 深度学习DNN

输入图片形状是(28x28),也可以写成(28*28,)因为图片是。fm=ks.datasets.fashion_mnist# 德国时装多分类。# #能把标签处理成机器容易识别的行式,one-hot编码。#6万个训练数据,1万个测试数据,每个样本形状28*28。#因为目标分类是10种,所以目标层神经元10个。#128个神经元,激活函数relu,隐藏层。# #分成5行5列的子视图。# #不显示刻度。# #不显示轴。#one-hot编码。#误差,准确率,评估。

2024-03-01 21:22:56 433 2

原创 kali 安装google拼音和jupyter notebook

配置jupyter 启动项可以网上查,基本就是 gen-jupyter_configure.py。之后找那个notebookApp_dir='/home/kali/jupyter_ai'之后安装jupyter 6.2.12.不要安装7以上的,那个不支持插件。create -n ai python==3.10.13创建虚拟环境。之后可以在fcitx里设置添加google拼音。先按esc退出,之后输入:wq。先安装minicond。

2024-02-25 22:26:01 348 1

原创 kali linux换源,汉化,设置中文字体

sudo apt-get install ttf-wqy-microhei ttf-wqy-zenhei xfonts-wqy #安装中文字体。#在使用apt install命令安装软件包时,相关的.deb文件会被下载到/var/cache/apt/archives/目#录下,apt autoclean#它也会清除已检索包文件的本地仓库,但只会删除那些不会再被下载且几乎无用的文件。sudo apt clean #清除遗留在/var/cache中的已取回的包文件的本地仓库。# 中科大,报错,不好用。

2024-02-25 22:16:41 409 1

原创 matplotlib常用图形

折线图# 0-10的15个随机数display(y)# 两行一列子视图# 没有x坐标时默认是0,1...n的自然数display(y)# 两行一列子视图# 没有x坐标时默认是0,1...n的自然数条形图# x轴标签# 数据只表示柱高# 误差width=0.35# yerr误差# bottom叠上去man指堆上去plt.title('柱状图',pad=60)# 准备数据,y轴数据,有两种不同数据,每种6个。

2024-01-04 16:16:08 818 1

原创 matplotlib图形绘制

(子视图3,(1,2)表示从第二行,第三列开始画,rowspan表示合并了两行。# 子视图5,[1,0][2,2][3,4]3个点,从第三行,第二列开始画。view.set_title('一小时温度变化图',c='r')view.set_xlabel('时间',c='r')view.set_ylabel('温度',c='r')# 子视图4,起点1,2,终点3,4,从第三行,第一列开始画。plt.plot(x,y1,label='北京')plt.plot(x,y2,label='上海')

2024-01-04 16:05:31 846 1

原创 矩阵的伴随矩阵(代数余子式法)

获取A[i,j]的余子式,记住:余子式,行列式都是数值。#返回A[i,j]的代数余子式,代数余子式就是在余子式。# 内层循环获得的是每一行每个元素的代数余子式。#(A*)=|A|^(n-2)A,A伴随矩阵的伴随矩阵。#创建(len(A),len(A))空矩阵。# 检测伴随矩阵是否正确AA*=A*A=|A|E。# 检测逆矩阵AA^(-1)=A^(-1)A=E。# 每次遍历都获得该行的代数余子式。#获取矩阵的第i行,第j列的代数余子式。# |A*|=|A|的n-1次幂。# A逆=1/A_hs*A_bs。

2023-12-10 23:55:18 117 1

原创 python特殊矩阵

反对称矩阵的和,差,数乘都反对称,乘积不再反对称,因为(AB).T=B.TA.T。#对称矩阵的和,差,数乘都对称,乘积不再对称,因为(AB).T=B.TA.T。#对角阵满足交换律,相加,相乘都是对角阵。# 反对称矩阵B=-B.T。#对称矩阵A=A.T。

2023-12-10 20:35:30 50 1

原创 python分块矩阵,矩阵初等变换,初等方阵

将第四行的3倍加到第一行上去,记作E(i,j(k)),表示将第j行的k倍加到第i行。#初等方阵E左乘A会把A第二行乘以2,右乘A会把A第二列乘以2.# 第一行减去第二行的两倍(也即加第二行的-2倍,都一样的)# 第一行减去第四行的3倍(也即加第四行的-3倍,都一样的)# 初等方阵左乘会交换A的一三行,右乘会交换A的1,3列。# 交换两行1,3 记作E(i,j),交换i,j两行。# 初等方阵在左乘A时把第三行乘以3加到A的第一行。#初等方阵右乘A时是把A的第一列乘以3加到了第三列。

2023-12-07 11:06:28 65 1

处理wiki9标签的脚本

处理wiki9标签的脚本

2024-03-21

NLP10大标准数据集

NLP10大标准数据集

2024-03-21

enwik9和wikfill.pl在里面

NLP需要的enwik9,维基百科的一些词汇素材,还有wikifil.pl处理标签的脚本

2024-03-21

fastText和cooking测试验证集

fastText和cooking测试验证集

2024-03-21

NLP10个数据集glue-data

CoLA,MNLI等,在这个py文件的文件夹路径的终端输入Python 这个文件的名称就行,我自己改的,原先别人的那个脚本有点bug

2024-03-19

卷积神经网络学习用到的猫狗图片

在卷积神经网络学习,借用别人模型的使用中用到的猫狗图片,分为训练集,验证集和测试集

2024-03-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除