- 结果输出到文件
import os# 定义打印类
class Logging():def __init__(self, filename):self.filename = filenamedef record(self, str_log):filename = self.filenameprint(str_log)with open(filename, 'a') as f:f.write("%s\r" % str_log)f.flush()# 使用
log_dir = os.path.join(os.getcwd(), 'log')
if not os.path.exists(log_dir): os.makedirs(log_dir)
log_path = os.path.join(log_dir, 'baseline.log')
log = Logging(log_path)log.record('epoch[%d],TrainLoss[%.2f],TestLoss[%.2f],AUC[%.4f],KS[%.4f],time[%.1f + %.1f]' % (epoch, train_loss,test_loss, auc, ks, t1 - t0, t2 - t1))
- List相同规律打乱(可以2个以上数组)
from random import shufflea=[1,2,3,4]b=[11,22,33,44]c=list(zip(a,b))shuffle(c)a,b = zip(*c)# a (2, 4, 3, 1)# b (22, 44, 33, 11)
-
random相关
random.sample(population,k)
: 不放回抽取,从集群population中选取k个元素,返回一个列表,集群可以是list、tuple、str、set。 -
pickle 一次存取多个数据
a = {"a":1,"b":2}
b = {"a":2,"b":3,"c":4}
# 存数据
with open("data/dataset.pickle",'wb') as f:pickle.dump((a,b),f)
# 取数据
with open("data/dataset.pickle",'rb') as f:a,b = = pickle.load(f)
- mat 格式 转 txt格式
import pandas as pd
from scipy.io import loadmatm_rating = loadmat("rating_with_timestamp.mat")
m_trust = loadmat("trust_with_timestamp.mat")
# print(m_trust) # 通过打印,查看数据的KEY
df_rating = pd.DataFrame(m_rating['rating'])
df_trust = pd.DataFrame(m_trust['trust'])
# print(df_trust.head(5))
df_rating.to_csv("rating.txt", header=None, index=False, sep=" ")
df_trust.to_csv("trust.txt", header=None, index=False, sep=" ")
6.随机数种子
import os
import torch
import random
import numpy as np# 定义
def set_seed(seed):torch.manual_seed(seed)torch.cuda.manual_seed(seed)torch.cuda.manual_seed_all(seed)torch.backends.cudnn.deterministic = Truerandom.seed(seed)np.random.seed(seed)os.environ['PYTHONHASHSEED'] = str(seed)# 使用
set_seed(2021)