方便小方法

  1. 结果输出到文件
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))
  1. 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)
  1. random相关
    random.sample(population,k): 不放回抽取,从集群population中选取k个元素,返回一个列表,集群可以是list、tuple、str、set。

  2. 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)
  1. 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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值