如何进行torchkeras的原理分析
发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,如何进行torchkeras的原理分析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。torchkeras 是在pytorch上实现的
千家信息网最后更新 2025年02月03日如何进行torchkeras的原理分析
如何进行torchkeras的原理分析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
torchkeras 是在pytorch上实现的仿keras的高层次Model接口。有了它,你可以像Keras那样,对pytorch构建的模型进行summary,compile,fit,evaluate , predict五连击。一切都像行云流水般自然。
听起来,torchkeras的功能非常强大。但实际上,它的实现非常简单,全部源代码不足300行。如果你想理解它实现原理的一些细节,或者修改它的功能,不要犹豫阅读和修改项目源码。
安装它仅需要运行:
pip install torchkeras
公众号后台回复关键词:torchkeras。获取项目git源代码和本文全部源码!
下面是一个使用torchkeras来训练模型的完整范例。我们设计了一个3层的神经网络来解决一个正负样本按照同心圆分布的分类问题。
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
import torch
from torch import nn
import torch.nn.functional as F
from torch.utils.data import Dataset,DataLoader,TensorDataset
from torchkeras import Model,summary #Attention this line!
一,准备数据
构造按照同心圆分布的正负样本数据。
%matplotlib inline
%config InlineBackend.figure_format = 'svg'
#number of samples
n_positive,n_negative = 2000,2000
#positive samples
r_p = 5.0 + torch.normal(0.0,1.0,size = [n_positive,1])
theta_p = 2*np.pi*torch.rand([n_positive,1])
Xp = torch.cat([r_p*torch.cos(theta_p),r_p*torch.sin(theta_p)],axis = 1)
Yp = torch.ones_like(r_p)
#negative samples
r_n = 8.0 + torch.normal(0.0,1.0,size = [n_negative,1])
theta_n = 2*np.pi*torch.rand([n_negative,1])
Xn = torch.cat([r_n*torch.cos(theta_n),r_n*torch.sin(theta_n)],axis = 1)
Yn = torch.zeros_like(r_n)
#concat positive and negative samples
X = torch.cat([Xp,Xn],axis = 0)
Y = torch.cat([Yp,Yn],axis = 0)
#visual samples
plt.figure(figsize = (6,6))
plt.scatter(Xp[:,0],Xp[:,1],c = "r")
plt.scatter(Xn[:,0],Xn[:,1],c = "g")
plt.legend(["positive","negative"]);
# split samples into train and valid data.
ds = TensorDataset(X,Y)
ds_train,ds_valid = torch.utils.data.random_split(ds,[int(len(ds)*0.7),len(ds)-int(len(ds)*0.7)])
dl_train = DataLoader(ds_train,batch_size = 100,shuffle=True,num_workers=2)
dl_valid = DataLoader(ds_valid,batch_size = 100,num_workers=2)
二,构建模型
我们通过对torchkeras.Model进行子类化来构建模型,而不是对torch.nn.Module的子类化来构建模型。实际上 torchkeras.Model是torch.nn.Moduled的子类。
class DNNModel(Model): ### Attention here
def __init__(self):
super(DNNModel, self).__init__()
self.fc1 = nn.Linear(2,4)
self.fc2 = nn.Linear(4,8)
self.fc3 = nn.Linear(8,1)
def forward(self,x):
x = F.relu(self.fc1(x))
x = F.relu(self.fc2(x))
y = nn.Sigmoid()(self.fc3(x))
return y
model = DNNModel()
model.summary(input_shape =(2,))
三,训练模型
我们需要先用compile将损失函数,优化器以及评估指标和模型绑定。然后就可以用fit方法进行模型训练了。
关于如何进行torchkeras的原理分析问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。
模型
问题
原理
分析
子类
训练
功能
同心圆
实际
实际上
数据
方法
更多
样本
正负
源代码
源码
项目
帮助
解答
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
服务器黑屏无网络
使命召唤16断开服务器
秘觉网络技术有限公司
香港服务器选择
教育机构手机数据库
甲骨文数据库安装流程
计算机应网络技术工资
即时通讯软件开发技术与实现
江苏软件开发网站有哪些
网络安全专业前景怎样
洛阳跑跑网络技术有限公司地址
fq服务器是什么
软件开发的周期多长
福州培养网络安全人才
重庆安卓应用软件开发需要多少钱
为啥饥荒联机服务器无应答
查看db2实例包含的数据库
配置服务器管理网
软件过程和软件开发
上海世界著名软件开发商
大学网络安全观后感500字
安全与网络安全的演讲稿
服务器管理口用几类网线
服务器跑代码什么意思
大学生应注意的网络安全问题
哈利波特每个服务器通吗
入选网络安全国家队
西安科技政策服务器综合管理系统
网络安全法对网络诈骗
照片在云数据库的类型