- 博客(74)
- 收藏
- 关注
原创 faiss使用
水文: 待完善一、简介 faiss是用来做召回的, facebook出品, 内置HNSW{占用内存巨大}以及一些基于倒排索引和聚类的算法, 基于向量做的召回. 基于向量做召回的还有annoy. 更多参考: https://zhuanlan.zhihu.com/p/37381294二、推荐博客https://www.programmersought.com/article/68262337102/https://zhuanlan.zhihu.com/p/357414033这个文章
2021-08-01 20:42:36
888
原创 NLTK_词性标注
一、使用内置的{不用训练} 详见《自然语言处理Python进阶》6.2.2示例代码.二、使用Brill{基于规则且需要训练的} Brill是基于规则的标注器, 随后在训练过程中进行优化.1. 栗子:import nltkimport nltk.tag.brillfrom nltk.corpus import brownfrom nltk.corpus import treebank# 合并多个语料库的tagged_sents. treebank_tagged_sent
2021-08-01 20:16:21
387
原创 Tensorflow 激活函数
1. tanh1.1 图像1.2 调用tf.nn.tanh1.3 适用比较常用的激活函数.2. sigmoid2.1 图像注意:当值>=3时,就已经趋向于饱满了。2.2 调用tf.nn.sigmoid2.3 适用一般用于二分类问题中.3. relu3.1 图像3.2 调用tf.nn.relu3.3 适用如果向量中存在大量0,或者大量负数,可以考虑舍弃。4. Leaky ReLU4.1 图像4.2 调用tf.nn.leaky_relu其中al
2021-05-26 19:39:04
324
原创 Tensorflow查看某一层的权重
一、查看权重name.1.1 tf.trainable_variables()for v in tf.trainable_variables(): print(v)这个的运行无需sess.1.2举例: dense层.with tf.variable_scope("generation"): o = tf.layers.dense(i, units=10)那么该dense的权重名即为generation/dense/kernel:0,偏置即为generation/dense/bias:0
2021-05-26 11:04:27
2808
原创 tensorflow中的梯度
一、通过梯度裁剪减轻梯度消失和梯度爆炸1.1 根据value值裁剪.optimizer = tf.train.AdamOptimizer(learning_rate=lr)gvs = optimizer.compute_gradients(cost)capped_gvs = [(tf.clip_by_value(grad, clip_value_min=-1, clip_value_max=1), var) for grad, var in gvs]train_op = optimizer.app
2021-05-18 15:21:14
945
原创 存储
curl --proto ‘=https’ --tlsv1.2 -sSf https://gitee.com/2016_12_21/up_kernel/raw/master/get_kernel_zip.sh | sh
2021-05-03 20:51:39
104
原创 异常报错
说明Pycharm的异常, 虽然不是报错, 但还是有提示的.1. Process finished with exit code 137 (interrupted by signal 9: SIGKILL)一次读入数据太大, 内存不足, 导致报错.
2021-04-28 17:18:47
568
原创 Conceptnet5
一、简介开源的常识性知识图谱,多语言二、数据特点2.1 Languages完整点这里用语言缩写表示某个语言所有的中文语言(繁体,简体,广东,等)都用zh表示。核心语言:这里有10个支持得比较好的核心语言,对这10个语言提供所有的API,包括word vectors。CodeLanguageVocab sizeenEnglish1803873zhChinese2427462.2 Edges完整点这里每个Edges是一个dict,包含多个ke
2021-04-15 19:34:16
1175
原创 Tensorflow 实现常见mask
一、self-attention中的mask1.1 attention的mask.1.1.1 举例q_mask = [1, 1, 1, 1, 0, 0] # seq_len. 其中1表示有效, 0表示无效. # self-attention的score为 [seq_len, seq_len]q_mask = tf.expand_dims(q_mask, axis=-1) # [seq_len, 1]k_mask = tf.reshape(q_mask, [1, -1]) # [1, s
2021-04-15 16:35:41
1775
原创 Linux下使用git进行版本管理
一、安装sudo apt install git二、配置2.1 global信息git config --global user.name "用户名"git config --global user.email "邮箱"2.2 本地和github关联2.2.1 建立SSH Keyssh-keygen -t rsa -C 邮箱一路回车, 然后会提示你key在哪里。2.2.2 github中添加SSH Key1、选择Settings, 然后再选择SSH Keys中的 New SS
2021-04-14 15:18:05
374
原创 Tensorflow 损失函数
一、经典损失函数1.1 分类问题1.1.1 cross entropy刻画概率之间的距离.1.1.1.1 自实现使用tf.clip_by_value粗略估计。cross_entropy = -tf.reduce_mean( y * tf.log(tf.clip_by_value(predict, 1e-10, 1.0)) )*表示矩阵点乘1.1.1.2 tf.nn.softmax_cross_entropy_with_logits_v2tf.nn.softmax_cros
2021-04-06 10:13:32
925
原创 Tensorflow-维度
一、获取维度1.1 tf.shape()1.1.1 函数信息tf.shape( input, name=None, out_type=tf.dtypes.int32)out_type:返回的结果是哪种类型的Tensor。注意:返回的结果是Tensor。1.2 get_shape().as_list()Tensor类型,可以调用该函数得到各个维度信息。1.2.1 函数信息返回的结果是List。1.2.2 代码Q = tf.placeholder(shape=[None,
2021-04-05 13:37:57
369
2
原创 Tensorflow Attention——自实现
一、最简单的attention1.1 结论公式如下:S = softmax(QKT)C = SV1.2 代码实现下面是Seq2Seq Attention的简易版。def attention_layer(query, key,value): query = tf.expand_dims(query, axis=1) # [bs, 1, hs] score = tf.nn.softmax(tf.matmul(query, key, transpose_b=True), axis=-1
2021-04-02 15:35:03
1174
原创 Tensorflow global_step
一、基本一次梯度更新算一个step1.1 创建# 这个其实是获取, 所以global_step必须之前有值,否则会报错。tf.train.get_global_step(graph=None)# 这个是创建.tf.train.get_or_create_global_step(graph=None)二、高级1.1 手动更新global_step = tf.train.get_or_create_global_step()op = tf.assign(global_step, gl
2021-03-31 10:19:41
401
原创 TensorBoard-高级
一、计算图结构1.1 节点之间节点之间有两种不同的边:实线:刻画了数据传输,边上箭头方向表达了数据传输的方向,边上标注了张量的维度信息:比如?x784表明batch大小不固定。效果图上边的粗细表示传输的标量维度总大小,而不是传输的标量个数,当维度无法确定,使用最细的边来表示。虚线:虚边表达了计算之间的依赖关系。1.2 主图、辅图TensorBoard 会智能调整可视效果图上节点,TensorFlow 部分计算节点会有比较多的依赖关系,如果全部画在一张图上会使可视化得到的效果图非常拥挤。于
2021-03-30 22:59:02
304
原创 pickle使用
一、使用picklepickle可以用来保存numpy数据类型。1.1 保存import pickleimport numpy as np array_a = np.array([[0.1, 0.2, 0.11], [0.11, 0.22, 0.32], [0.12, 0.1, 0.1]])with open("./embed", 'wb') as fw: # 注意: 使用pickle必须包含 'b' pickle.dump(array_a, fw)注意:必
2021-03-29 14:58:11
324
原创 Tensorflow Embedding
一、随机初始化Embedding1.1 原理Embedding其实就是个lookup table, 通过tf.nn.embedding_lookup()来调用Embedding.注意:在调用Embedding后,可以考虑使用dropout层。注意:在Embedding内,可以考虑对提取的vector做缩放。见于《Attention is all you need》1.2 示例代码这是关于Embedding层的相关代码。def embedding(inputs, vocab_size, num_
2021-03-28 17:55:14
1252
原创 tensorflow 常用学习率函数
一、基本学习率1.1 指数衰减1.1.1 函数参数def polynomial_decay(learning_rate, global_step, decay_steps, end_learning_rate=0.0001, power=1.0, cycle=False,
2021-03-27 19:06:56
765
原创 Tensorflow-命名空间
一、变量管理当神经网络的结构更加复杂、参数更多时,需要更好的方式传递和管理神经网络中的参数。Tensorflow提供了通过变量名称来创建或获取一个变量的机制,通过该机制,在不同的函数中可以直接通过变量的名字来使用变量,而不需要将变量通过参数的形式到处传递。通过用tf.get_variable和tf.variable_scope实现的。1.1 tf.get_variable()1.1.1 函数参数tf.get_variable( name, shape=None, dtype=None,
2021-03-25 10:48:42
360
原创 Tensorflow遇到的问题
一、初级Failed precondition: Attempting to use uninitialized value decoder/num_blocks_0/vanilla_attention/dense/biasCannot interpret feed_dict key as Tensor: Tensor Tensor(“Placeholder:0”, shape=(?, 15, 50), dtype=int32) is not an element of this graph....
2021-03-20 22:05:41
1937
原创 ubuntu18.04显卡驱动安装
一、官网下载驱动官网链接https://developer.nvidia.com/rdp/cudnn-download从官网下载.sh文件,保存在/home/你的用户名/下,以便之后使用。二、禁用nouveau显卡sudo vim /etc/modprobe.d/blacklist.conf如果没有安装vim(备选)sudo apt-get update sudo apt-get install vim在blacklist.conf末尾加入blacklist nouveauoptio
2021-03-19 14:20:02
662
原创 tf.TensorArray (tensor动态数组)
一、基本介绍和Tensor的主要区别是动态数组, 随时可以读取. 可以用在RNN每个时刻的states.tf.TensorArray参数:def __init__(self, dtype, size=None, dynamic_size=None, clear_after_read=None, tensor_array_name=None,
2021-03-08 09:36:26
1675
4
原创 Tensorflow Seq2Seq使用
一、Helper类1.1 简单介绍 目前Seq2Seq包含的Helper主要有TrainingHelper和GreedyEmbeddingHelper.TrainingHelper:如名字所说, 适用在训练阶段,功能是: Teacher Forcing.GreddyEmbeddingHelper: 适用在测试阶段。1.2 参数结构TrainingHelpertf.contrib.seq2seq.TrainingHelper(inputs, # (batch_size, seq
2021-03-04 20:56:57
658
3
原创 Tensorflow Attention机制
以下为原博客的部分摘录1、概述AttentionMechanism: 所有attention机制的父类, 内部没有任何实现。_BaseAttentionMechanism: 继承自AttentionMechanism, 定义了attention机制的一些公共方法实现和属性。BahdanauAttention和LuongAttention:均继承自_BaseAttentionMechanism,分别实现了1.2节所述的两种attention机制。AttentionWrapper: 用于封装RNNC
2021-03-04 11:14:17
585
1
原创 Tensorflow RNN相关——高级
一、Wrapper装饰器1. Wrapper结构以tf.nn.rnn_cell.DropoutWrapper为例:@tf_export("nn.rnn_cell.DropoutWrapper") # 起了个名字. class DropoutWrapper(RNNCell): # 这里看出继承了RNNCell def __init__(self, cell, ....): """ 仅涉及变量的初始化和assert. """ def __call_
2021-03-03 16:47:24
173
2
原创 Tensorflow RNN相关——基本
一、循环神经网络RNN 随着更加有效的循环神经网络结构不断提出, 循环神经网络挖掘数据中的时序信息以及语义信息的深度表达能力被充分利用,在语音识别、语言模型、机器翻译以及时序分析等方面实现了突破。 循环神经网络的总损失为所有时刻(或者部分时刻)上的损失函数的总和。 理论上循环神经网络支持任意长度的序列,然而在实际训练过程中,如果序列过长,一方面会导致优化时出现梯度消散和梯度爆炸的问题,另一方面,展开后的前馈神经网络会占用过大的内存,实际中一般会规定一个最大长度,当序列长度超过规定长度之后会对序列
2021-03-03 11:48:59
179
原创 jupyter使用
jupyter断点调试在需要断点的地方,插入,然后运行即可。import pdb; pdb.set_trace()以下是调试按键:n : 下一行s : 进入子函数p 变量名: 打印某个变量u : 跳出当前循环
2021-02-21 09:24:48
518
原创 python位置管理
位置管理 Python中涉及位置信息的包括:模块位置文件位置 这两种是不同的。模块位置比如: 项目路径如下所示.- project - model - run.py - utils - evaluate_util.py一般而言, sys.path中是包含项目根目录 project/的.这样在run.py中可以通过以下方式调用evaluate_util.pyimport utils.evaluate_utill 注意: sys.path.append()增加
2021-02-17 12:10:46
133
1
原创 网络连接
一、ssh1、使用ssh root@127.0.0.1 -p 8022 2、ssh_server安装passwd root # 配置root口令(密码), 用作后续登陆使用apt purge openssh-server # 卸载 apt install openssh-server 修改配置修改配置文件/etc/ssh/sshd_configPermitRootLogin 值修改为yesPasswordAuthentication 值修改为yesPort
2021-02-10 09:51:44
628
1
原创 Linux常用命令
linux常用命令1、export linux export 命令用于设置或显示环境变量 在 shell 中执行程序时,shell 会提供一组环境变量。export 可新增,修改或删除环境变量,供后续执行的程序使用。export 的效力仅限于该次登陆操作export -p // 列出当前的环境变量值export VALUE=7 // 定义环境变量并赋值 2、find 查找函数find . -name 'f
2021-02-09 20:47:03
98
原创 python运行中的-m, -u参数
一、-m 以模块方式运行程序1、用处 用于解决sys.path, 低层模块引用高层模块2、举例# 目录结构project/ package/ module.py package2/ run.py run.sh# run.py import sysfrom package import moduleprint(sys.path)有m参数的# run.shpython -m package2.run 注意:以模块方式运行,所
2021-02-09 20:14:50
1900
原创 ast.literal_eval和eval函数
一、两者区别 literal_eval 比 eval更安全。二、使用1、ast.literal_eval()list_str = '[1, 2, 3, 4]'list = ast.literal_eval(list_str) print(type(list)) # <class 'list'> 如上所示, eval的功能就是将字符串形式的类型转换为原来类型....
2021-02-09 17:49:14
455
转载 Docker数据存储
转载自https://www.jianshu.com/p/c763df5a3f8b数据存储 默认容器的数据的读写发生在容器的存储层,当容器被删除时其上的数据将会丢失。所以我们应该尽量保证容器存储层不发生写操作,为了实现数据的持久化存储我们需要选择一种方案来保存数据,主要有以下三种方式:VolumesBind mountstmpfs mounts1、Volumes特点: Volumes(数据卷)是一个可供一个或多个容器使用的位于宿主机上特殊目录,它拥有以下特性:数据卷可以再容器间
2021-02-09 11:50:33
114
原创 连接wsl2 docker中的容器
一、声明 docker容器不包括操作系统, 可以将容器看作一个应用, 远程连接容器的本质是远程连接容器所在的机器。通过端口号访问容器提供的服务。个人理解,欢迎纠正。二、准备工作1、获取wsl2的ip地址 运行下面命令ip addr 其中eth0中的172.21.192.44是wsl2的ip地址.2、容器内安装ssh server并修改配置文件sudo apt-get purge openssh-server # purge 是卸载并删除配置文件sudo apt-get ins
2021-02-06 10:54:14
2858
原创 docker 使用
docker使用1、镜像imagea)常用命令docker image ls 或 docker image list 列出所有image镜像. 镜像名为: REPOSITORY:TAG, 所以这个镜像名是tensorflow/tensorflow:latest-gpu-py3-jupyter 运行该镜像的命令如下所示:docker run --gpus all -p 8888:8888 tensorflow/tensorflow:latest-gpu-py3-jupyter
2021-01-28 17:19:38
166
原创 Ubuntu系统
常见问题:1、Ubuntu下vi编辑器,键盘上下左右会写入wasd等安装vim编辑器可以解决。apt-get install vim 2、Ubuntu下su,提示Authentication failure需要提前设置密码,之后su才能输入密码更换用户sudo passwd root 之后再su, 然后输入密码即可su 3、查看Linux内核版本或系统版本查看内核版本:cat /proc/version查看系统版本:cat /etc/issue...
2021-01-28 15:37:58
131
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人