pytorch 项目模板使用问题
当前自己在使用的一个简单的项目模板如下:
│ config.py
│ datasets.py
│ exp.py
│ main.py
│ nets.py
文件config.py
里面定义了常见的需要导入的包,以及对于整个项目都适用的常数。
类似于如下代码:
import random
import numpy as np
import torch
import torch.nn as nn
import torch.nn.functional as F
import torchvision
import os
import matplotlib.pyplot as plt
from nets import netA, netB, netC, netD
# 实验可复现
SEED = 1208
print("Random Seed: ", SEED)
random.seed(SEED)
np.random.seed(SEED)
torch.manual_seed(SEED)
if torch.cuda.is_available():
torch.cuda.manual_seed_all(SEED)
# 常数
model_dir = 'ckpt'
noise_dir = 'noise'
之后以下文件的第一行直接from config import *
,就可以方便的完成调用
│ datasets.py
│ exp.py
│ main.py
│ nets.py
问题
然而在使用中遇到一个奇怪的问题:定义的常数无法导入
pycharm能够正常识别出这个定义,然而代码执行一定出错
思考
在写代码的时候就有担心文件之间重复调用的问题,但是没有注意。出问题的语句位于config.py
from nets import netA, netB, netC, netD
写这行代码本来是方便其他文件调用定义好多个网络模型,然而缺网络在net.py
中第一行是from config import *
,这就导致两个文件重复调用出现错误