您好,登錄后才能下訂單哦!
Pytorch中使用tensorboard中如何添加網絡結構add_graph,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
from torch.utils.tensorboard import SummaryWriterimport torchimport torchvisionfrom torchvision import datasets,transformsfrom torch.autograd import Variableclass Model(torch.nn.Module):def __init__(self):super(Model,self).__init__()self.conv1=torch.nn.Sequential(#輸入torch.Size([64, 1, 28, 28])torch.nn.Conv2d(1,64,kernel_size=3,stride=1,padding=1),# 用于搭建卷積神經網絡的卷積層,主要的輸入參數有輸入通道數、# 輸出通道數、卷積核大小、卷積核移動步長和Padding值。# 輸出維度 = 1+(輸入維度-卷積核大小+2*padding)/卷積核步長 #輸出torch.Size([64, 64, 28, 28])torch.nn.ReLU(),#輸出torch.Size([64, 64, 28, 28])torch.nn.Conv2d(64,128,kernel_size=3,stride=1,padding=1),#輸出torch.Size([64, 128, 28, 28])torch.nn.ReLU(),torch.nn.MaxPool2d(stride=2,kernel_size=2)# 主要的輸入參數是池化窗口大小、池化窗口移動步長和Padding值#輸出torch.Size([64, 128, 14, 14]))self.dense=torch.nn.Sequential(#輸入torch.Size([64, 14*14*128])torch.nn.Linear(14*14*128,1024),#class torch.nn.Linear(in_features,out_features,bias = True)#輸出torch.Size([64, 1024])torch.nn.ReLU(),torch.nn.Dropout(p=0.5),# torch.nn.Dropout類用于防止卷積神經網絡在訓練的過程中# 發生過擬合,其工作原理簡單來說就是在模型訓練的過程中,# 以一定的隨機概率將卷積神經網絡模型的部分參數歸零,以達# 到減少相鄰兩層神經連接的目的。這樣做是為了讓我們最后訓# 練出來的模型對各部分的權重參數不產生過度依賴,從而防止# 過擬合。對于torch.nn.Dropout類,我們可以對隨機概率值# 的大小進行設置,如果不做任何設置,就使用默認的概率值0.5。torch.nn.Linear(1024,10)#輸出torch.Size([64, 10]) )def forward(self,x):#torch.Size([64, 1, 28, 28])x = self.conv1(x)#輸出torch.Size([64, 128, 14, 14])x = x.view(-1,14*14*128)#view()函數作用是將一個多行的Tensor,拼接成一行,torch.Size([64, 14*14*128])x = self.dense(x)#輸出torch.Size([64, 10])return x transform = transforms.Compose([transforms.ToTensor(),transforms.Normalize(mean=[0.5],std=[0.5])])data_train = datasets.MNIST(root = "./data/",transform=transform,train = True,download = True)data_loader_train = torch.utils.data.DataLoader(dataset = data_train,batch_size = 64,shuffle = True)# images, labels = next(iter(data_loader_train))#迭代器# torch.Size([64, 1, 28, 28])images = torch.randn(64, 1, 28, 28)model = Model()writer = SummaryWriter()for i in range(5): images = torch.randn(64, 1, 28, 28) writer.add_graph(model, input_to_model=images, verbose=False)writer.flush()writer.close()# tensorboard --logdir=runs
結果展示:
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。