1.為了進行**復現,或者進行模型的改進,固定住隨機種子十分必要,不然所作的改進的提公升效果無從知曉,以下**可以確保每次訓練的過程一摸一樣
def seed_torch(seed=42):
seed = int(seed)
random.seed(seed)
os.environ['pythonhashseed'] = str(seed)
np.random.seed(seed)
torch.manual_seed(seed)
torch.cuda.manual_seed(seed)
torch.cuda.manual_seed_all(seed)
torch.backends.cudnn.deterministic = true
torch.backends.cudnn.benchmark = false
torch.backends.cudnn.enabled = true
torch.backends.cudnn.enabled = true #pytorch 使用cudann 加速,即使用gpu加速
torch.backends.cudnn.benchmark = false #cudnn使用的非確定性演算法自動尋找最適合當前配置的高效演算法,設定為false 則每次的演算法一致
torch.backends.cudnn.deterministic=true # 設定每次返回的卷積演算法是一致的
torch.manual_seed(seed) #為當前cpu 設定隨機種子
torch.cuda.manual_seed(seed) # 為當前的gpu 設定隨機種子
torch.cuda.manual_seed_all(seed) #當使用多塊gpu 時,均設定隨機種子
論深度學習模型的訓練方式
特點 隨機從資料中抽取樣本訓練 優點 操作簡單,上手容易。缺點 1.可能始終都會有一部分資料未參加訓練,造成資料浪費 2.可能使得訓練出來的模型有偏差,對小類樣本完全不能擬合 3.訓練時間較長,輪次較多。特點 將資料分割成兩份按照不同的比例劃分,每次按照順序取出資料,訓練完一次後保證訓練集和測試集不...
41 如何解決深度學習中模型訓練效果不佳的情況
選擇合適的損失函式 神經網路的損失函式時非凸的,有多個區域性最低點,目標是找到乙個可用的低點。非凸函式時凹凸不平的,但是不同的損失函式凹凸程度不同,比如平方損失和交叉熵損失相比後者起伏更大,且後者更容易找到乙個可用的最低點,從而達到優化的目的。選擇合適的批量尺寸 採用合適的批量尺寸進行學習,一方面可...
scikit learn中的隨機森林模型
和決策樹模型類似,scikit learn中的隨機森林模型也提供了基於普通decision tree的random forest學習器和基於隨機化extra tree的extratrees學習器。鑑於decision tree和extra tree差別甚小,本文以random forest為例進行介...