1.deeplearning中权值初始化==》一般初始化为0, 初始值的不同,会影响到收敛的速度以及收敛的结果,所以在transfer learning中,已pre-trained model的权值作为后续layer的初始值能很好的加快收敛以及收敛的效果。同样的,在pre-trained model的基础上,进行fune-tuning也是同样的道理。
2.在权值初始化后,选择一个合适的optimizer,通过loss对权值的偏导数,利用gradient descent进行优化,然后通过反向传播对权值进行更新,迭代得到最优解。优化算法有SGD、GD、mini-batch GD、Moment、RMSprob、Adam,现在用的最多的是Adam,适用于所有的网络。
3.激活函数包括–sigmoid,relu, tanh,softmax, 使用激活函数的作用是消除线性影响, loss函数 MSE, Crossentropy。
4.LSTM中units的含义,units主要就是激活函数的个数,也就是隐藏神经元的个数,如下图中黄色框中的三个sigmoid和一个tanh, 三个sigmoid分别代表了遗忘门,输入门和输出门,tanh得到新的memory信息。
5.tensorflow中去上下三角矩阵:tf.linalg.band_part
tf.linalg.band_part(a, m, n), a => input m=> num_lower 下三角矩阵保留的副对角线数量,从主对角线开始计算,相当于下三角的带宽。取值为负数时,则全部保留。
n => num_upper 上三角矩阵保留的副对角线数量,从主对角线开始计算,相当于上三角的带宽。取值为负数时,则全部保留。
#
# examples:
# if 'input' is [[ 0, 1, 2, 3]
# [-1, 0, 1, 2]
# [-2, -1, 0, 1]
# [-3, -2, -1, 0]],
#
tf.linalg.band_part(input, 1, -1) ==> [[ 0, 1, 2, 3]
[-1, 0, 1, 2]
[ 0, -1, 0, 1]
[ 0, 0, -1, 0]],
tf.linalg.band_part(input, 2, 1) ==> [[ 0, 1, 0, 0]
[-1, 0, 1, 0]
[-2, -1, 0, 1]
[ 0, -2, -1, 0]]
# Useful special cases:
# tf.linalg.band_part(input, 0, -1) ==> Upper triangular part.
# tf.linalg.band_part(input, -1, 0) ==> Lower triangular part.
# tf.linalg.band_part(input, 0, 0) ==> Diagonal.
- np.newaxis => 主要是增加一个维度
x1 = np.array([1, 2, 3, 4, 5])
# the shape of x1 is (5,)
x1_new = x1[:, np.newaxis]
# now, the shape of x1_new is (5, 1)
# array([[1],
# [2],
# [3],
# [4],
# [5]])
x1_new = x1[np.newaxis,:]
# now, the shape of x1_new is (1, 5)
# array([[1, 2, 3, 4, 5]])
7.git的使用
git clone + path
也可查看git的 gitconfig文件,进行update
将文件clone至指定文件夹
1)在某个指定文件中,打开git bash
2)在【git bash】中输入【git init】
3)发现在文件夹中多出了【.git】文件夹
4)进入【.git】文件夹,你会发现一个【config】的局部配置文件
8.Android Studio报错unable to access android sdk add-on list解决方案
主动跳过,进去后build进行sdk的自动安装
9.deep learning nlp中Word2Vector
1)word2vec是自然语言处理中的一个非常重要的模型。word2vec是指把一个词转化成向量。
2)gensim库,gensim是一个很强大的已经封装好了word2vec模型的库,用于从原始的非结构化的文本中,无监督地学习到文本隐层的主题向量表达。可以将文本信息转换成稀疏vector,后续深入学习。
10. tfds.features.text.SubwordTextEncoder
能通过build_from_corpus得到encoder
encoder = tfds.features.text.SubwordTextEncoder.build_from_corpus(corpus_generator, target_vocab_size=2**15)
id = encoder.encode('hello world')
text = encoder.decode(id)
encoder.save_to_file(vocab_filename)
encoder1 = tfds.features.text.SubwordTextEncoder.load_from_file(vocab_filename)
- dataset.map() 函数只接受graph的tensor输入,无法接受带有numpy属性的。