1、取绝对路径
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
# 取绝对路径,即这份代码所在的路径
2、预训练基础模型
https://blog.csdn.net/Jorbo_Li/article/details/106248808
3、将生成的精度写入txt
# #############将生成的精度写入txt
f = open("E:\\sy\\my_success\\Shufflenet\\model_Weight.txt", 'a') # 若文件不存在,系统自动创建。'a'表示可连续写入到文件,保留原内容,在原
# 内容之后写入。可修改该模式('w+','w','wb'等)
f.write('Test set: Average loss: {:.4f}, Accuracy: {:.4f}'.format(
test_loss / len(cifar10_test_loader.dataset),
correct.float() / len(cifar10_test_loader.dataset)) ) # 将字符串写入文件中
f.write("\n") # 换行
# #############将生成的精度写入txt
4、文件夹分类
os.listdir(file_dir) #适用于目录下只有文件而没有文件夹的情况,返回一个文件
os.walk(file_dir) #适用于目录下包含文件夹及文件的情况,返回一个三元组
os.path.splitext(file_path) #分离文件名与扩展名 返回一个元组
os.mkdir(dir_name) #创建文件夹
shutil.move(src,dst) #将src移动到dst目录中
5、类的init中的参数在下面使用
class NCFMDataSet(Dataset):
def __init__(self, data_dir, mode="train") # 这里定义的mode
self.mode = mode
self.data_dir = data_dir
def _get_img_info(self): # 这里使用mode,使用init中的属性时,只能在类方法里用
if self.mode == "train":
...
elif self.mode == "valid":
...
6、namedtuple与dict
namedtuple 是只读的,第一 不能修改元祖,它还是元祖,第二 它是有序的。第三, 查找速度man, 它的优点呢? 占用内存小(和字典相比)
字典的特点 , 第一 ,value 的值是可以更改的,第二 ,查找速度快, 第三 字典 占用内存是比较大的。第四 ,字典是无序的, 这点和tuple 是完全不一样的。
具体看这里https://blog.csdn.net/u010339879/article/details/78458281
7、对张量在不同维度上的随机打乱理
理解张量:比如下面的那个四维张量,将这个随机向量生成,由内而外的维度是3,5,3,2
0维是2所在的维,对0维进行随机打乱是对2个进行随机打乱
1维是5所在的维,对1维进行随机打乱是对5个进行随机打乱
#先随机生成张量
import torch
a=torch.rand(2,3,5,3)
print(a)
# 在1那个维度进行随机打乱
a=a[:,torch.randperm(a.size()[1])]
print(a)
# 在0维度上进行随机打乱
a=a[torch.randperm(a.size()[0])]
print(a)
8、生成一维字符串列表
list = [str(i) for i in range(42)]
list