numpy的argmax
argmax常用在CNN中最后的全连接层输出后。
correct_prediction = tf.equal(tf.argmax(finalOutput,1), tf.argmax(y,1))
argmax返回的是最大数的索引.argmax有一个参数axis,默认是0,表示第几维的最大值,如果在2维数组中,axis=0表示按列比较的最大值的索引。
如果是三维,
import numpy as np
a = np.array([
[
[1, 5, 5, 2],
[9, -6, 2, 8],
[-3, 7, -9, 1]
],
[
[-1, 5, -5, 2],
[9, 6, 2, 8],
[3, 7, 9, 1]
]
])
print(np.argmax(a, axis=0))
np.argmax(a, axis=0)的含义是a[0][j][k],a[1][j][k] (j=0,1,2,k=0,1,2,3)中最大值的索引。从a[0][j][k]开始,a[0][j][k]对应的索引为((0,0,0,0),(0,0,0,0),(0,0,0,0)),拿a[0][j][k]和a[1][j][k]对应项作比较6大于-6,3大于-3,9大于-9,所以更新这几个位置的索引,将((0,0,0,0),(0,0,0,0),(0,0,0,0))更新为((0,0,0,0),(0,1,0,0),(1,0,1,0)).
zip
for t1, t2 in zip(xNew, wNew)
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。
a = [1,2,3]
b = [4,5,6]
c = [4,5,6,7,8]
zipped = zip(a,b) # 打包为元组的列表
[(1, 4), (2, 5), (3, 6)]
zip(a,c) # 元素个数与最短的列表一致
[(1, 4), (2, 5), (3, 6)]
zip(*zipped) # 与 zip 相反,可理解为解压,返回二维矩阵式
[(1, 2, 3), (4, 5, 6)]
也就是将a,b一一对应打包成元组。zip(xNew, wNew) 一个xNew 对应一个wNew.
.get_shape().as_list()
mergeFeatureMap.get_shape().as_list()
字典的 .item
d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59, 'Paul': 74 }
sum = 0
for key, value in d.items():
sum = sum + value
print(key, ':' ,value)
print('平均分为:' ,sum /len(d))
1
2
3
4
5
6
输出结果:
D:\Users\WordZzzz\Desktop>python3 test.py
Adam : 95
Lisa : 85
Bart : 59
Paul : 74
平均分为: 78.25
就是将字典的value和key 组成一起。
argparse
import argparse
2:parser = argparse.ArgumentParser()
3:parser.add_argument()
4:parser.parse_args()
argparse是python用于解析命令行参数和选项的标准模块.每一个add_argument方法对应一个你要关注的参数或选项;最后调用parse_args()方法进行解析;解析成功之后即可使用
urllib.request.urlopen
完成最基本的简单网页的 GET 请求抓取
可以发现除了第一个参数可以传递URL之外,我们还可以传递其它的内容,比如 data (附加参数), timeout (超时时间)等等。
urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)
data 参数是可选的,如果要添加 data ,它要是字节流编码格式的内容,即 bytes 类型,通过 bytes() 函数可以进行转化,另外如果你传递了这个 data 参数,它的请求方式就不再是 GET 方式请求,而是 POST 。