<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qwexdl的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qwexdl</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qwexdl]]></copyright><item><title><![CDATA[faiss使用]]></title><link>https://blog.youkuaiyun.com/qwexdl/article/details/119303019</link><guid>https://blog.youkuaiyun.com/qwexdl/article/details/119303019</guid><author>qwexdl</author><pubDate>Sun, 01 Aug 2021 20:42:36 +0800</pubDate><description><![CDATA[水文: 待完善
一、简介
  faiss是用来做召回的, facebook出品, 内置HNSW{占用内存巨大}以及一些基于倒排索引和聚类的算法, 基于向量做的召回.
  基于向量做召回的还有annoy.
  更多参考: https://zhuanlan.zhihu.com/p/37381294
二、推荐博客


https://www.programmersought.com/article/68262337102/


https://zhuanlan.zhihu.com/p/357414033
这个文章]]></description><category></category></item><item><title><![CDATA[NLTK_词性标注]]></title><link>https://blog.youkuaiyun.com/qwexdl/article/details/119302774</link><guid>https://blog.youkuaiyun.com/qwexdl/article/details/119302774</guid><author>qwexdl</author><pubDate>Sun, 01 Aug 2021 20:16:21 +0800</pubDate><description><![CDATA[一、使用内置的{不用训练}
  详见《自然语言处理Python进阶》6.2.2示例代码.
二、使用Brill{基于规则且需要训练的}
  Brill是基于规则的标注器, 随后在训练过程中进行优化.
1. 栗子:
import nltk
import nltk.tag.brill
from nltk.corpus import brown
from nltk.corpus import treebank

# 合并多个语料库的tagged_sents.        
treebank_tagged_sent]]></description><category></category></item><item><title><![CDATA[Tensorflow 激活函数]]></title><link>https://blog.youkuaiyun.com/qwexdl/article/details/117302653</link><guid>https://blog.youkuaiyun.com/qwexdl/article/details/117302653</guid><author>qwexdl</author><pubDate>Wed, 26 May 2021 19:39:04 +0800</pubDate><description><![CDATA[1. tanh
1.1 图像

1.2 调用
tf.nn.tanh

1.3 适用
比较常用的激活函数.
2. sigmoid
2.1 图像

注意：当值&gt;=3时，就已经趋向于饱满了。
2.2 调用
tf.nn.sigmoid

2.3 适用
一般用于二分类问题中.
3. relu
3.1 图像

3.2 调用
tf.nn.relu

3.3 适用
如果向量中存在大量0，或者大量负数，可以考虑舍弃。
4. Leaky ReLU
4.1 图像

4.2 调用
tf.nn.leaky_relu

其中al]]></description><category></category></item><item><title><![CDATA[Tensorflow查看某一层的权重]]></title><link>https://blog.youkuaiyun.com/qwexdl/article/details/117284358</link><guid>https://blog.youkuaiyun.com/qwexdl/article/details/117284358</guid><author>qwexdl</author><pubDate>Wed, 26 May 2021 11:04:27 +0800</pubDate><description><![CDATA[一、查看权重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]]></description><category></category></item><item><title><![CDATA[tensorflow中的梯度]]></title><link>https://blog.youkuaiyun.com/qwexdl/article/details/116989976</link><guid>https://blog.youkuaiyun.com/qwexdl/article/details/116989976</guid><author>qwexdl</author><pubDate>Tue, 18 May 2021 15:21:14 +0800</pubDate><description><![CDATA[一、通过梯度裁剪减轻梯度消失和梯度爆炸
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]]></description><category></category></item><item><title><![CDATA[存储]]></title><link>https://blog.youkuaiyun.com/qwexdl/article/details/116380451</link><guid>https://blog.youkuaiyun.com/qwexdl/article/details/116380451</guid><author>qwexdl</author><pubDate>Mon, 03 May 2021 20:51:39 +0800</pubDate><description><![CDATA[curl --proto ‘=https’ --tlsv1.2 -sSf https://gitee.com/2016_12_21/up_kernel/raw/master/get_kernel_zip.sh | sh

]]></description><category></category></item><item><title><![CDATA[异常报错]]></title><link>https://blog.youkuaiyun.com/qwexdl/article/details/116238614</link><guid>https://blog.youkuaiyun.com/qwexdl/article/details/116238614</guid><author>qwexdl</author><pubDate>Wed, 28 Apr 2021 17:18:47 +0800</pubDate><description><![CDATA[说明
Pycharm的异常, 虽然不是报错, 但还是有提示的.
1. Process finished with exit code 137 (interrupted by signal 9: SIGKILL)
一次读入数据太大, 内存不足, 导致报错.

]]></description><category></category></item><item><title><![CDATA[权限问题]]></title><link>https://blog.youkuaiyun.com/qwexdl/article/details/115937005</link><guid>https://blog.youkuaiyun.com/qwexdl/article/details/115937005</guid><author>qwexdl</author><pubDate>Wed, 21 Apr 2021 10:14:41 +0800</pubDate><description><![CDATA[一、Linux文件夹右下角有锁
chmod -R 777 文件夹路径

然后在图形化界面上就看不到锁了。

]]></description><category></category></item><item><title><![CDATA[Conceptnet5]]></title><link>https://blog.youkuaiyun.com/qwexdl/article/details/115701031</link><guid>https://blog.youkuaiyun.com/qwexdl/article/details/115701031</guid><author>qwexdl</author><pubDate>Thu, 15 Apr 2021 19:34:16 +0800</pubDate><description><![CDATA[一、简介
开源的常识性知识图谱，多语言
二、数据特点
2.1 Languages
完整点这里
用语言缩写表示某个语言

所有的中文语言(繁体，简体，广东，等)都用zh表示。


核心语言：
这里有10个支持得比较好的核心语言，对这10个语言提供所有的API，包括word vectors。




Code
Language
Vocab size




en
English
1803873


zh
Chinese
242746


2.2 Edges
完整点这里
每个Edges是一个dict，包含多个ke]]></description><category></category></item><item><title><![CDATA[Tensorflow 实现常见mask]]></title><link>https://blog.youkuaiyun.com/qwexdl/article/details/115718139</link><guid>https://blog.youkuaiyun.com/qwexdl/article/details/115718139</guid><author>qwexdl</author><pubDate>Thu, 15 Apr 2021 16:35:41 +0800</pubDate><description><![CDATA[一、self-attention中的mask
1.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]]></description><category></category></item><item><title><![CDATA[Linux下使用git进行版本管理]]></title><link>https://blog.youkuaiyun.com/qwexdl/article/details/115697751</link><guid>https://blog.youkuaiyun.com/qwexdl/article/details/115697751</guid><author>qwexdl</author><pubDate>Wed, 14 Apr 2021 15:18:05 +0800</pubDate><description><![CDATA[一、安装
sudo apt install git

二、配置
2.1 global信息
git config --global user.name "用户名"
git config --global user.email "邮箱"

2.2 本地和github关联
2.2.1 建立SSH Key
ssh-keygen -t rsa -C 邮箱

一路回车， 然后会提示你key在哪里。

2.2.2 github中添加SSH Key

1、选择Settings， 然后再选择SSH Keys中的 New SS]]></description><category></category></item><item><title><![CDATA[Tensorflow 损失函数]]></title><link>https://blog.youkuaiyun.com/qwexdl/article/details/115454353</link><guid>https://blog.youkuaiyun.com/qwexdl/article/details/115454353</guid><author>qwexdl</author><pubDate>Tue, 06 Apr 2021 10:13:32 +0800</pubDate><description><![CDATA[一、经典损失函数
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_v2
tf.nn.softmax_cros]]></description><category></category></item><item><title><![CDATA[Tensorflow-维度]]></title><link>https://blog.youkuaiyun.com/qwexdl/article/details/115419557</link><guid>https://blog.youkuaiyun.com/qwexdl/article/details/115419557</guid><author>qwexdl</author><pubDate>Mon, 05 Apr 2021 13:37:57 +0800</pubDate><description><![CDATA[一、获取维度
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,]]></description><category></category></item><item><title><![CDATA[Tensorflow Attention——自实现]]></title><link>https://blog.youkuaiyun.com/qwexdl/article/details/115294052</link><guid>https://blog.youkuaiyun.com/qwexdl/article/details/115294052</guid><author>qwexdl</author><pubDate>Fri, 02 Apr 2021 15:35:03 +0800</pubDate><description><![CDATA[一、最简单的attention
1.1 结论
公式如下:
S = softmax(QKT)
C = SV
1.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]]></description><category></category></item><item><title><![CDATA[Tensorflow global_step]]></title><link>https://blog.youkuaiyun.com/qwexdl/article/details/115343679</link><guid>https://blog.youkuaiyun.com/qwexdl/article/details/115343679</guid><author>qwexdl</author><pubDate>Wed, 31 Mar 2021 10:19:41 +0800</pubDate><description><![CDATA[一、基本
一次梯度更新算一个step
1.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]]></description><category></category></item><item><title><![CDATA[TensorBoard-高级]]></title><link>https://blog.youkuaiyun.com/qwexdl/article/details/115201668</link><guid>https://blog.youkuaiyun.com/qwexdl/article/details/115201668</guid><author>qwexdl</author><pubDate>Tue, 30 Mar 2021 22:59:02 +0800</pubDate><description><![CDATA[一、计算图结构
1.1 节点之间
节点之间有两种不同的边：

实线：
刻画了数据传输，边上箭头方向表达了数据传输的方向，边上标注了张量的维度信息：比如?x784表明batch大小不固定。效果图上边的粗细表示传输的标量维度总大小，而不是传输的标量个数，当维度无法确定，使用最细的边来表示。
虚线：
虚边表达了计算之间的依赖关系。

1.2 主图、辅图
TensorBoard 会智能调整可视效果图上节点，TensorFlow 部分计算节点会有比较多的依赖关系，如果全部画在一张图上会使可视化得到的效果图非常拥挤。于]]></description><category></category></item><item><title><![CDATA[pickle使用]]></title><link>https://blog.youkuaiyun.com/qwexdl/article/details/115301307</link><guid>https://blog.youkuaiyun.com/qwexdl/article/details/115301307</guid><author>qwexdl</author><pubDate>Mon, 29 Mar 2021 14:58:11 +0800</pubDate><description><![CDATA[一、使用pickle
pickle可以用来保存numpy数据类型。
1.1 保存
import pickle
import 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)

注意：必]]></description><category></category></item><item><title><![CDATA[Tensorflow Embedding]]></title><link>https://blog.youkuaiyun.com/qwexdl/article/details/115284327</link><guid>https://blog.youkuaiyun.com/qwexdl/article/details/115284327</guid><author>qwexdl</author><pubDate>Sun, 28 Mar 2021 17:55:14 +0800</pubDate><description><![CDATA[一、随机初始化Embedding
1.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_]]></description><category></category></item><item><title><![CDATA[tensorflow 常用学习率函数]]></title><link>https://blog.youkuaiyun.com/qwexdl/article/details/115266617</link><guid>https://blog.youkuaiyun.com/qwexdl/article/details/115266617</guid><author>qwexdl</author><pubDate>Sat, 27 Mar 2021 19:06:56 +0800</pubDate><description><![CDATA[一、基本学习率
1.1 指数衰减
1.1.1 函数参数
def polynomial_decay(learning_rate,
                     global_step,
                     decay_steps,
                     end_learning_rate=0.0001,
                     power=1.0,
                     cycle=False,
           ]]></description><category></category></item><item><title><![CDATA[Tensorflow-命名空间]]></title><link>https://blog.youkuaiyun.com/qwexdl/article/details/115174226</link><guid>https://blog.youkuaiyun.com/qwexdl/article/details/115174226</guid><author>qwexdl</author><pubDate>Thu, 25 Mar 2021 10:48:42 +0800</pubDate><description><![CDATA[一、变量管理
当神经网络的结构更加复杂、参数更多时，需要更好的方式传递和管理神经网络中的参数。
Tensorflow提供了通过变量名称来创建或获取一个变量的机制，通过该机制，在不同的函数中可以直接通过变量的名字来使用变量，而不需要将变量通过参数的形式到处传递。
通过用tf.get_variable和tf.variable_scope实现的。
1.1 tf.get_variable()
1.1.1 函数参数
tf.get_variable(
	    name, shape=None, dtype=None,]]></description><category></category></item></channel></rss>