- 博客(65)
- 收藏
- 关注
原创 数据模型相关知识
使用标准业务术语,遵守模型设计规范,先范式建模,再逆规范化,定义需完整且准确,应用成熟的建模模式,一定程度抽象,保证模型弹性,重要数据关系需强制建立,使用建模工具,与概念模型保持一致,解决概念模型中的多对多关系。概念模型要注重全局的理解,需要对整体架构做思考,通常是自上而下的模式,与业务反复沟通澄清需求,划定系统边界,避免方向性错误,业务主导,用一页纸整体展示。主键特点:唯一性,值不可重复,强制性,值不可以为空,永久性,不可改变,最小集合,不可掺杂多余的属性。唯一标识,非空约束,默认值。
2024-04-19 14:39:11
937
原创 SQL-多表查询
子查询返回的结果是单个值(日期,字符串,日期等)最简单的形式,这种子查询是标量子查询。SELECT 字段列表 FROM 表1 LEFT [ OUTER ] JOIN 表2 ON 条件 ...;SELECT 字段列表 FROM 表1 RIGHT [ OUTER ] JOIN 表2 ON 条件 ...;SELECT 字段列表 FROM 表1,表2 WHERE 条件。子查询返回的结果是一列(可以是多行),这种子查询称为列子查询。对于联合查询的多张表的列表必须保持一致,字段类型也需要保持一致。
2024-02-26 08:51:11
1548
原创 SQL-约束
约束是作用于表中字段上的规则,用于限制存储在表中的数据。目的:保证数据库中数据的正确、有效性和完整性。约束是作用于表中字段上的,可以再创建表/修改表的时候添加约束。外键约束外键用来让两张表的数据之间建立连接,从而保证数据的一致性和完整性。
2024-02-24 09:57:56
420
1
原创 SQL- left join 与group by联合使用实例
有一些顾客可能光顾了购物中心但没有进行交易。请你编写一个解决方案,来查找这些顾客的 ID ,以及他们只光顾不交易的次数。transaction_id 是该表中具有唯一值的列。此表包含 visit_id 期间进行的交易的信息。visit_id 是该表中具有唯一值的列。该表包含有关光临过购物中心的顾客的信息。
2024-02-21 10:37:53
1032
原创 SQL-FEFT JOIN (拼接表)
展示每位用户的 唯一标识码(unique ID );如果某位员工没有唯一标识码,使用 null 填充即可。这张表的每一行包含了该公司某位员工的 ID 和他的唯一标识码(unique ID)。在 SQL 中,(id, unique_id) 是这张表的主键。这张表的每一行分别代表了某公司其中一位员工的名字和 ID。按照一定规则,将表table1和表table2拼接起来。在 SQL 中,id 是这张表的主键。显示学生学号,姓名,课程和成绩。
2024-02-21 09:45:05
478
原创 SQL-2
刷题知识点:null不能用=这种判断,要用is null 或者is not null或者可用 ifnull来判断。明确:数据库DB是数据存储仓库。数据库管理系统(Database management system,DBMS),是操纵和管理数据库的大型软件SQL,操作关系型数据库的编程语言。DDL(数据定义语言)查询所有数据库查询当前数据库创建删除使用查询当前数据库所有表查询表结构查询指定表的建表语句创建CREATE TABLE 表名(字段1 字段1类型[COMMENT 表注释],
2024-02-20 14:14:44
845
原创 SQL语言1
'YYYY-MM-DD HH:MM:SS' 记录时间 TIMESTAMP。有小数点的数 DECIMA(m, n) #m是有几位数,n是有几位小数。(Binary Large Object)图片 影片 BLOB。创建数据库 CREATE DATABASE。‘YYYY-MM-DD’日期 DATA。展示数据库 SHOW DATABASE。字符串 VARCHAR(n)
2024-02-16 15:42:28
225
原创 验证平台,SV 和UVM
通过这种方法,激励可以被应用到设计和参考模型中,在某个抽象层次,通过被测设计和参考模型的输出被校对,黑盒验证存在下列主要的缺点:很难验证和设计相关的特点、很难调试、要求一个精确的参考模型。sv基本语法:2值逻辑(0,1)和4值逻辑(0,1,x,z,reg类型,verilog中用),有符号数(整型)与无符号数(bit),合并数据(内存空间更紧凑)与非合并数据(每个元素占用32bit内存空间),动态数据(数组大小不确定)和队列,关联数据(不需要连续空间,可以整数、字符串等),数组的方法。其他的是自下向上的。
2022-10-23 22:21:53
2180
1
原创 attention is all you need
减少顺序计算的目标也构成了Extended Neural GPU [20],ByteNet[15],和ConvS2S[8]的基础,所有这些都使用卷积神经网络作为基本构建块,并行计算所有输入和输出位置的隐藏表示。在这些模型中,关联来自两个任意输入或输出位置的数据所需的操作数,随着位置之间距离而增长,对于ConvS2S呈线性,对于ByteNet呈对数。这使得学习较远位置之间数据的依赖性变得更加困难。在Transformer中,这被减少到常数级的操作次数,尽管由于平均注意力加权位置而导致有效分辨率降低,如第3.2
2022-07-02 20:40:19
271
原创 python中@staticmethod
@staticmethod用于修饰类中的方法,使其可以再不创建类实例的情况下调用方法,这样做的好处是执行效率较高,当然也可像一般方法一样用实例调用该方法。该方法一般被成为静态方法。静态方法不可以引用类中的属性或方法,其参数列表也不需要约定的默认参数self。一般来说,要使用某个类的方法,需要先实例化一个对象再调用方法。使用@staticmethod和@classmethod,就可以不需要实例化,直接类名.方法名()调用。@staticmethod不需要表示自身对象的self和自身类的cls参数,和
2022-07-01 18:25:15
10806
原创 PyTorch定义模型中用到的self.register_buffer()
PyTorch中定义模型时,有时会遇到self.register_buffer('name',Tensor)的操作,该方法的作用是定义一组参数,该组参数的特别之处在于:模型训练时不会更新,即调用optimizer.step()后改组参数不会发生变化,只可人为地改变,但在保存模型时,该组参数又作为模型参数不可或缺的一部分被保存。...
2022-07-01 15:59:55
653
原创 java基本知识
数据类型:类型范围小的变量,可以直接赋值给类型范围大的变量。表达式的最终结果类型由表达式中的最高类型决定。byte、short、char是直接转换成int类型参与运算的。自增、自减++、--如果单独使用,放前后没区别非单独使用:在变量前,先进行变量自增/自减,再使用变量。非单独使用:在变量后,先使用变量,再进行变量自增/自减。赋值运算符:关系运算符:逻辑运算符:三元运算符:运算优先级:if适合做区间匹配switch适合做值...
2022-05-29 19:34:56
95
原创 pytorch:model.train()、grad()、.add()、.add_()、.mul()、.mul_()、.exp()、.exp_()、.step())
x.grad是查看所求得x的梯度值。add()和.add_()都能把两个张量加起来,但.add_是in-place操作,比如x.add_(y),x+y的结果会存储到原来的x中。Torch里面所有带"_"的操作,都是in-place的。x.mul(y)或x.mul_(y)实现把x和y点对点相乘,其中x.mul_(y)是in-place操作,会把相乘的结果存储到x中。值得注意的是,x必须是tensor, y可以是tensor,也可以是数。.exp()和.exp_()都能实现以e为底的指数,区别是.e
2022-04-04 17:07:16
1474
原创 pytorch:scatter_
我终于想明白这个函数的意思啦!!!scatter的意思:服务组件架构data.scatter_(dim,index,src)将src中数据根据index中的索引按照dim的方向填进data。import torchx=torch.tensor([[7, 2, 3,4, 5], [1.1, 2.2, 3.3, 4.4, 5.5]])y=torch.tensor([[0,1,2,0,0],[2,0,0,1,2]])print(x)y=torch.zeros(3,5).s
2022-04-02 17:13:55
1825
原创 codecs.open()、type()和isinstance()
查阅资料后和实验后,发现和open()的功能差不多,但在进行爬虫或者其他方式得到数据写入文件时会有编码不统一的问题,所以就一般都统一转换为Unicode编码。总之,用codeces,open()更便捷点。...
2022-04-01 17:05:40
187
原创 pytorch:model.zero_grad()和optimizer.zero_grad()、net.parameters()、requires_grad
两种方式都是把模型中参数的梯度设置为0。当optimizer =optim.Optimizer(net.parameters())时,二者等效。其中Optimizer可以是Adam、SGD等优化器。net.parameters()其中:parameters意思是参数在网络优化过程中,使用net.parameters传入优化器,对网络参数进行优化,网络开始训练时会随机初始化网络的参数,然后进行训练,也可根据设置,将网络参数设置为一个某一随机初始化开始学习,这样可能会加快网络的收敛。网络中的
2022-04-01 10:51:40
2806
原创 pytorch:反向传播前手动将梯度清零的原因
首先:清零代码:optmizer.zero_grad()optimizer.zero_grad() ## 梯度清零preds = model(inputs) ## inferenceloss = criterion(preds, targets) ## 求解lossloss.backward() ## 反向传播求解梯度optimizer.step() ## 更新权重参数
2022-03-31 22:00:21
1124
原创 python:map()
map()作为输入提供的迭代器的所有元素应用函数,可迭代的list、dict、str,返回可迭代的映射对象。是内置函数,不需要importmap(function,iterator1,iterator2,……)function:提供给map()的必须参数,应用于迭代器中所有可用的项目iterator:一个可迭代的必须对象,可是列表、元组。return:可迭代的映射对象。例如:实现将dict中的value取出并list,由于dict的key是range(4),则可使用map。a =
2022-03-31 21:59:39
183
原创 pytorch模型保存与加载:state_dict、load_state_dict
简而言之,pytorch保存模型时用的映射关系。pytorch中的state_dict是一个简单的python字典对象,将每一层与之对应的参数建立映射关系。只有参数可训练的layer才会保存到模型 的state_dict中,如卷积层、线性层。优化器optimizer也有一个state_dict,包含了优化器的状态以及被使用的超参数(lr、momentum、weight_decay)state_dict是定义了model或optimizer之后pytorch自动生成的,可直接调用。常用的保存sta
2022-03-31 15:23:51
6957
原创 pytorch:contiguous()
contiguous:连续的,邻近的调用contiguous时,会强制拷贝一份tensor,但两个tensor完全没有联系。则断开两个变量之间的依赖,也就是所谓的深拷贝。x = torch.randn(3, 2)y = torch.transpose(x, 0, 1).contiguous()print('修改前:')print('x-', x)print('y-', y)print('\n修改后:')y[0, 0] = 11print('x-', x)print('y-', y)
2022-03-31 10:35:20
1026
原创 squeeze 、unsequeeze
两者都是作用于tensor。记住单词:squeeze是挤压、塞入的意思unsqueeze(num)是增加维度,num代表增加维度所在的位置。squeeze(num)是减少维度,num代表的是减少维度所在的位置,所减少的维度只能是1维,也就是不存在数据的维度。import torcha=torch.arange(0,6)a=a.view(2,3)print(a.shape)#torch.Size([2,3])b=a.unsqueeze(1)print(b.shape)#torch
2022-03-30 22:01:18
1404
原创 pytorch中nn.Sequential与nn.ModuleList
nn.Sequential里面的模块按照顺序进行排列,所以必须确保前一个模块的输出大小和下一个模块的输入大小是一致的。内部已经实现forward函数,因此不用写forward函数。但在继承nn,Module类#例1:这是来自官方文档的例子seq = nn.Sequential( nn.Conv2d(1,20,5), nn.ReLU(), nn.Conv2d(20,64,5), nn.ReLU() )
2022-03-30 21:51:43
378
原创 梯度裁剪Grandient Clipping
神经网络是通过梯度下降来学习的。梯度爆炸问题一般会随着网络层数的增加而变得越来越明显。如果发生梯度爆炸,那么就是学过了,会直接跳过最优解。因此需要梯度裁剪,避免模型越过最优点。梯度裁剪有两种方法确定一个范围,参数的gradient超过,直接裁剪。比较直接,对应于pytorch中的nn.utils.clip_grad_value(parameters, clip_value). 将所有的参数剪裁到 [ -clip_value, clip_value] 根据若干参数的gradient组成的vect
2022-03-30 15:44:52
1145
原创 python中numpy数组切片问题
一维数组:用冒号切片[start:stop:step],step=-1时即为翻转读取。二维数组:取单个元素X[n0,n1]表示取第0维的第n0个元素,取第1维的第n1个元素。X[n1:n2,m1:m2]表示第0维从n1取到n2,第1维从m1取到m2import numpy as npa = [[0.13678488, 0.49035755, 0.05431084], [0.86536952, 0.66651492, 0.88161923]]a=np.array(a)
2022-03-29 15:51:03
640
原创 python:文本内容处理
readlines()逐行读数据strip()删除不要内容split()分片,成列表。rsplit()方法从右侧开始将字符串拆分为列表。如果未指定 "max",则此方法将返回与 split() 方法相同的结果。str.split(str="", num=string.count(str)).其中str=""是指按照什么标准拆分,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等num:分割次数。默认为 -1, 即分隔所有。replace(old,n
2022-03-29 10:08:03
100
原创 python threading 实现多线程
class MyThread(threading.Thread): def __init__(self, func, args=()): super(MyThread, self).__init__() self.func = func self.args = args def run(self): self.result = self.func(*self.args) def get_result(self): try: return self.result e.
2022-03-28 10:37:48
437
原创 python:关于文件加载及处理
#如果不存在路径,就创建一个这样的路径 if not os.path.exists(exp_path): os.mkdir(exp_path)os.path.exists():判断括号里的文件是否存在的意思,括号内的可以是文件路径.如果存在就返回True,不存在返回Falseos.mkdir():创建路径...
2022-03-28 10:14:32
1764
原创 argparse.ArgumentParser()用法解析
argument模块可以让人轻松编写命令行接口。程序定义它需要的参数,然后argument弄清如何从sys.argv解析出参数,argument还会自动生成帮助和使用手册,并在用户给程序传入无效参数时报出错误信息。使用流程:1、创建解析器parser=argparse.ArgumentParser()2、添加参数parser.add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choi
2022-03-27 21:12:39
7023
原创 add_variable
def add_variable(self, name, shape, dtype=None, initializer=None, regularizer=None, trainable=True, constraint=None, partitioner=None): 目的:向层添加一个新变量,或获取一个现有变量。参数:name:变量名称。shape:可变形状dtype:变量的类型,默.
2022-03-05 09:56:32
314
原创 domain adaptation 领域自适应
领域自适应是迁移学习中转导迁移学习的重要子问题。迁移学习是指两个不同领域的知识迁移过程,利用源领域中学到的知识帮助目标领域上的学习任务。源领域的训练样本数量一般远大于目标领域。迁移学习根据不同的迁移方式,分为两个类型,归纳迁移学习和转导迁移学习。归纳学习(Inductive Learniing)是希望在训练数据集上学习到使得期望风险(即真实数据分布上的错误率)最小的模型。与传统监督机器学习一样,是基于已有标记的训练数据集构建和训练机器学习模型,然后使用这个训练过的模型预测我们测试集的标签。转
2022-03-01 16:04:02
1136
原创 np.where
1、np.where(condition, x, y)满足condition,输出x,否则输出y2、np.where(condition)当括号内只有条件,没有x和y,满足条件,则输出该元素的坐标。a=array([[[ 0, 1, 2], [ 3, 4, 5], [ 6, 7, 8]], [[ 9, 10, 11], [12, 13, 14], [15, 16, 17]], [[1
2022-02-15 13:35:41
329
原创 tf.cast()
tf.cast(x,dtype,name=None)将x的数据格式转化为dtype,原来x的数据格式是bool,转化为flost后,则转化为0和1的序列。
2022-01-10 17:34:02
121
原创 tf.argmax
tf.argmax(inputs,axis)根据axis取值不同,返回每行或者每列最大值的索引。axis=0,则比较每列最大元素所在的索引记录下来。axis=1,则是每行最大索引记录下。test = np.array([[1, 2, 3], [2, 3, 4], [5, 4, 3], [8, 7, 2]])np.argmax(test, 0) #输出:array([3, 3, 1]np.argmax(test, 1) #输出:array([2, 2, 0, 0]注意!.
2022-01-10 16:51:25
344
原创 tf.identity()
tf.identity()函数用于返回一个和input一样的新的tensortf.identity( input, name=None )
2022-01-10 16:43:02
623
原创 tf.control_dependencies()
tf.control_dependencies()返回一个控制依赖的上下文管理器。with tf. control_dependencies():多次调用control_dependencies()能够被嵌套,并且在这种情况下,新的操作将对所有活动的上下文中的control_inputs组合有控制以来。...
2022-01-10 16:41:08
2000
原创 tf.Assert()
tf.Assert( condition,//条件 data,//数据 summarize=None, name=None )
2022-01-10 16:36:43
182
原创 tf.is_finite( )
tf.is_finite( )返回一个与A维数 相同的数组,如果A的元素为有限数,在对应位置返回逻辑1,如果无限或为None,在对应位置返回逻辑0,
2022-01-10 16:15:24
150
原创 tf.where()
tf.where()返回一个布尔张量中真值的位置。对于非布尔型张量,非0的元素都判为True。返回的是二维张量,第一个维度的数量,即行数表明有多少个为True值,同一行中的数据代表该True值在原张量中的位置。tf.where(input_tensor,a,b)作用:如果input_tensor对应位置为True,则张量a中的该位置处元素保留,反之,由张量b中相应位置的元素代替。...
2022-01-10 12:10:40
461
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人