每天都加一点点
ps:ctrl+F查找
A
argparse.ArgumentParser()
argparse是一个Python模块:解析命令行参数
import argparse
# (1) 声明一个parser,创建 ArgumentParser() 对象
parser = argparse.ArgumentParser()
# (2) 添加参数,调用 add_argument() 方法添加参数
parser.add_argument("parg") # 位置参数,这里表示第一个出现的参数赋值给parg
parser.add_argument("--digit",type=int,help="输入数字") # 通过 --echo xxx声明的参数,为int类型
parser.add_argument("--name",help="名字",default="cjf") # 同上,default 表示默认值
# (3) 读取命令行参数,使用 parse_args() 解析添加的参数
args = parser.parse_args()
# (4) 调用这些参数
print(args.parg)
print("echo ={0}".format(args.digit))
print("name = {}".format(args.name))
add_subparsers()
添加子命令(当程序复杂,不同功能需要不同参数时)
subparsers = parser.add_subparsers(dest='processor')
for k, p in processors.items():
subparsers.add_parser(k, parents=[p.get_parser()])
import argparse
parser = argparse.ArgumentParser(prog='PROG')
subparsers = parser.add_subparsers(help='sub-command help')
#添加子命令 add
parser_a = subparsers.add_parser('add', help='add help')
parser_a.add_argument('-x', type=int, help='x value')
parser_a.add_argument('-y', type=int, help='y value')
#添加子命令 sub
parser_s = subparsers.add_parser('sub', help='sub help')
parser_s.add_argument('-x', type=int, help='x value')
parser_s.add_argument('-y', type=int, help='y value')
args = parser.parse_args()
print('x', args.x, 'y', y
sys.argv[]
可以看作是一个列表,里边的项为用户输入的参数个数。所以才能用[]提取其中的元素。一个元素是程序本身,随后才依次是外部给予的参数。(我理解的相当于切片)
a = sys.argv[2:] #保存后,在命令行中输入python test.py naruto sasuke sakura kakashi #输出为一个列表——[‘sasuke’, ‘sakura’, ‘kakashi’]
B
C
contiguous()
将tensor的内存变为连续的。
有些tensor并不是占用一整块内存,而是由不同的数据块组成,而tensor的view()操作依赖于内存是整块的,这时只需要执行contiguous()这个函数,把tensor变成在内存中连续分布的形式。
注:在pytorch的最新版本0.4版本中,增加了torch.reshape(), 这与 numpy.reshape 的功能类似。它大致相当于 tensor.contiguous().view()。
DEFG
H
histc(scores, bins=self.args.bins)
进行直方图的统计,args.bins=16表示有16个区间
hist = torch.histc(scores, bins=self.args.bins)
I
items()
以列表返回可遍历的(键, 值) 元组数组
dict = {'1':'15岁',
'2':'14岁',
'3':'1岁',
}
print(dict.items())
for key,values in dict.items():
print(key + '已经' + values + '了')
===================================================
dict_items([('1', '15岁'), ('2', '14岁'), ('3', '1岁')])
1已经15岁了
2已经14岁了
3已经1岁了
JKLMNO
P
permute()
permute将tensor中任意维度利用索引调换。b=a.permute(2,0,1),permute里的参数对应的是张量a的维度索引,利用索引来对内部数据调换。
a.permute(2,0,1):把a的最后一个维度放到最前面(2对应的最后一个,位置发生了改变)。
Q
R
rpartition()
在最后一次出现参数字符串时分割字符串,并返回一个元组,其中包含部分前分隔符,参数字符串和后分隔符。
1:
string = "Python is fun"
print(string.rpartition('is '))
print(string.rpartition('not '))
string = "Python is fun, isn't it"
print(string.rpartition('is'))
输出:
('Python ', 'is ', 'fun')
('', '', 'Python is fun')
('Python is fun, ', 'is', "n't it")
==============================================================
2:
mod_str, _sep, class_str = import_str.rpartition('.')
S
set()
设置新的空对象的集合
self.global_labels = set()#新的空集合对象
同时也可去重
#通过set集合去重,global_labels记录去重之后的标签值(特征维度) self.global_labels = self.global_labels.union(set(data["labels_1"])) self.global_labels = self.global_labels.union(set(data["labels_2"]))
TU
V
view(-1, 1)
表示多少行不确定,但是有1列,对out进行reshape,reshape成1列,行数由列数决定(-1那里原本的数不变)
如果你不知道你想要多少行,但确定列数,那么你可以将行数设置为-1(你可以将它扩展到具有更多维度的张量。只有一个轴值可以是-1)。这是告诉系统Library:给我一个具有这么多列的张量,并计算实现这一点所需的适当行数
#view(-1, 1)表示多少行不确定,但是有1列 sigmoid_scores = torch.sigmoid(torch.mm(embedding,transformed_global.view(-1, 1)))
WXYZ



