- 结果输出到文件
import os
# 定义打印类
class Logging():
def __init__(self, filename):
self.filename = filename
def record(self, str_log):
filename = self.filename
print(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 shuffle
a=[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 loadmat
m_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 = True
random.seed(seed)
np.random.seed(seed)
os.environ['PYTHONHASHSEED'] = str(seed)
# 使用
set_seed(2021)