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)交叉熵函数

softmax_cross_entropy_with_logits

两个函数有较大区别,第一个是事物可以被判别到多个类别,第二是事物只能被判到一个类别。