摘要: attention的本质 通过计算Query和一组Key的相似度(或者叫相关性/注意力分布),来给一组Value赋上权重,一般地还会求出这一组Value的加权和。 一个典型的soft attention如下公式所示: 先用Query求出分别和一组Key计算相似度,计算相似度的方法有很多种,常用的有点 阅读全文
posted @ 2019-04-22 16:14 sbj123456789 阅读(3357) 评论(0) 推荐(0) 编辑
摘要: 直接看 https://pytorch.org/docs/stable/nn.html 就行了 阅读全文
posted @ 2019-04-17 14:18 sbj123456789 阅读(436) 评论(0) 推荐(0) 编辑
摘要: Python 3.7版本,函数的参数可以通过冒号来进行注释 str 这里都表示注释,而不是强制确定的类型(Python是动态类型的) 冒号后表示参数的注释,如果需要默认赋值再在后面加等号即可 箭头后表示返回值的注释 参考: https://www.cnblogs.com/Stitchez/p/100 阅读全文
posted @ 2019-04-16 17:02 sbj123456789 阅读(1473) 评论(0) 推荐(0) 编辑
摘要: 要用到Pycharm专业版(社区版没有此功能),学生应该有免费的。 参考: https://www.cnblogs.com/superjn/p/8624605.html 阅读全文
posted @ 2019-04-14 20:53 sbj123456789 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 从贝叶斯的角度 判别模型估计的是条件概率分布(后验概率),p(y | x) 生成模型估计的是联合概率分布 p(y, x) = p(y | x) * p(x) 从模型建立的角度 判别模型是直接用决策模型做类别区分/计算概率。 生成模型是首先学习出一个模型,即首先建立样本的联合概率概率密度模型P(X,Y 阅读全文
posted @ 2019-03-19 23:05 sbj123456789 阅读(528) 评论(0) 推荐(0) 编辑
摘要: 不要在模型里用for做运算 向量化运算能大大提高运算效率,写Python机器学习模型时最好不要使用for循环 注意每层参数的shape变化 写网络时,注意变量的shape变化是否正确,可以在注释中记录一下,调试时可以print一下 记得用随机种子 python机器学习时,涉及到随机的步骤有:数据切分 阅读全文
posted @ 2019-03-17 20:15 sbj123456789 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 矩阵乘法 点乘 m*n np.multiply(m,n) 向量乘 np.dot(m,n) np.matmul(m,n) 阅读全文
posted @ 2019-03-16 20:54 sbj123456789 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 要求 用Python中numpy库手写一个单层神经网络(严格来说是用逻辑回归做二分类问题),用GD(Gradient Descent)作为optimizer。 Gradient Descent 见西瓜书 Stochastic Gradient Descent 相当于每次只随机挑出一条数据forwar 阅读全文
posted @ 2019-03-12 21:59 sbj123456789 阅读(470) 评论(0) 推荐(0) 编辑
摘要: 描述 将8个皇后放在8*8的棋盘上,要求这8个皇后两两不能在同一水平、垂直或对角线上,求所有放置方法。 求解 这是一道经典的递归问题(当然也可以暴力枚举,但不够雅观简洁),8*8的棋盘递归后转变为7*7的棋盘来解决,7*7的棋盘递归后转变为6*6的棋盘来解决,……,但这里的问题是前面的放置会影响后面 阅读全文
posted @ 2019-03-12 20:01 sbj123456789 阅读(288) 评论(0) 推荐(1) 编辑
摘要: random() 取随机数 Math.random() #取一个[0, 1)的随机数 (以下方法不是Math里的,需要import java.util.Random;) Random r1 = new Random(); #取一个[0, 1)的随机数,种子默认为系统时间 Random r1 = ne 阅读全文
posted @ 2019-01-21 15:27 sbj123456789 阅读(575) 评论(0) 推荐(0) 编辑