1、np.newaxis 的功能是插入新维度。
import numpy as np
- Demo 1:
a=np.array([1,2,3,4,5])
b=a[np.newaxis,:]
print a.shape,b.shape
print a
print b
输出结果:
(5,) (1, 5)
[1 2 3 4 5]
[[1 2 3 4 5]]
- Demo 2:
a=np.array([1,2,3,4,5])
b=a[:,np.newaxis]
print a.shape,b.shape
print a
print b
输出结果
(5,) (5, 1)
[1 2 3 4 5]
[[1]
[2]
[3]
[4]
[5]]
可以看出np.newaxis分别是在行或列上增加维度,原来是(5,)的数组,在行上增加维度变成(1,5)的二维数组,在列上增加维度变为(5,1)的二维数组。
2、tf.cast(x, dtype, name=None):Casts a tensor to a new type.
将x的数据格式转化成dtype。例如,原来x的数据格式是bool,那么将其转化成float以后,就能够将其转化成0和1的序列。
a = tf.Variable([1,0,1])
b = tf.cast(a,dtype=tf.bool)
sess = tf.Session()
sess.run(tf.initialize_all_variables())
print(sess.run(b))
输出:
#[ True False True]
3、 tf.argmax(input, axis=None, name=None, dimension=None, output_type=tf.int64):Returns the index with the largest value across axes of a tensor. (deprecated arguments)
返回的是input中的最大值的索引号,如果input是一个向量,那就返回一个值,如果是一个矩阵,那就返回一个向量,这个向量的每一个维度都是相对应矩阵行的最大值元素的索引号, axis=1时返回行最大值下标,axis=0时返回列最大值下标。
A = [[1,3,4], [2,4,1]]
with tf.Session() as sess:
print(sess.run(tf.argmax(A, 1)))
print(sess.run(tf.argmax(A, 0)))
输出:
[2 1]
[1 1 0]
4、Optimizer:
tf.train.GradientDescentOptimizer
tf.train.AdadeltaOptimizer
tf.train.AdagradOptimizer
tf.train.AdagradDAOptimizer
tf.train.MomentumOptimizer
tf.train.AdamOptimizer
tf.train.FtrlOptimizer
tf.train.ProximalGradientDescentOptimizer
tf.train.ProximalAdagradOptimizer
tf.train.RMSPropOptimizer
各种优化器对比:
标准梯度下降法:标准梯度下降先计算所有样本汇总误差,然后根据总误差来更新权值
随机梯度下降法:随机梯度下降随机抽取一个样本来计算误差,然后更新权值
批量梯度下降法:批量梯度下降算是一种折中的方案,从总样本中选取一个批次(比如一共有10000个样本,随机选取100个样本作为一个batch),然后计算这个batch的总误差,根据总误差来更新权值。
5、ord()函数主要用来返回对应字符的ascii码,chr()主要用来表示ascii码对应的字符他的输入时数字,可以用十进制,也可以用十六进制。