1)一直想解决如果在tensorflow中按照需求组装向量,于是发现了这个函数
tf.nn.embedding_lookup(params, ids, partition_strategy=’mod’, name=None, validate_indices=True, max_norm=None)
除了前两个参数,其他参数暂时还不知道怎么使用。然而这并不影响实现程序。
params放全部的向量,也就是在文本学习中的所有字符对应的向量
ids放置索引的数组,也就是要挑选出来的字符的索引号。
2) 在reshape中shape 数组中[-1,...],其中的-1是把几个维度给总起来,例子如下
#X(128 batch, 28 steps, 28 inputs)
#==>(128*28,28)
X = tf.reshape(X[:,:], [-1,n_hidden_units])
本来X的维度是128*28*28,经过reshape之后变为(128*28)*28
这跟平时数组中的-1不一样,不再是选取数组的最后一个元素了。
3)tf.slice
slice(
input_,
begin,
size,
name=None
)
这个的使用跟平时还是有区别的,其中size中有-1,则代表余下的全部取出
4)__init__是在类声明时被使用,__call__是在类生成的对象作为函数使用时,被调用
5)name_scope 用来管理“操作”(op),variable_scope 用来管理变量
tensorflow学习笔记(十七):name&variable scope
6)乘号* 和 multiply等价
7)这篇文章对conv2d讲的比较细
【TensorFlow】tf.nn.conv2d是怎样实现卷积的?
8)anaconda 环境配置,选择 http://www.jianshu.com/p/d2e15200ee9b
conda info -e
9)交叉熵函数
sigmoid_cross_entropy_with_logits
softmax_cross_entropy_with_logits
两个函数有较大区别,第一个是事物可以被判别到多个类别,第二是事物只能被判到一个类别。