重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
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
结果展示:
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联的支持。