当前位置: 首页 > news >正文

大冶市建设局网站装修公司名称大全

大冶市建设局网站,装修公司名称大全,瑞安 网站建设,公司电脑做网站对抗生成网络 知识点回顾#xff1a; 对抗生成网络的思想#xff1a;关注损失从何而来生成器、判别器nn.sequential容器#xff1a;适合于按顺序运算的情况#xff0c;简化前向传播写法leakyReLU介绍#xff1a;避免relu的神经元失活现象 对抗生成网络#xff08;GAN 对抗生成网络的思想关注损失从何而来生成器、判别器nn.sequential容器适合于按顺序运算的情况简化前向传播写法leakyReLU介绍避免relu的神经元失活现象 对抗生成网络GAN 知识点回顾 对抗生成网络的思想 思想就像在餐厅中有一个厨师生成器负责制作假菜一个评论家判别器负责区分真菜和假菜。厨师的目标是制作出评论家无法区分的假菜而评论家的目标是找出假菜。通过不断的对抗训练厨师的厨艺生成器的生成能力和评论家的鉴赏力判别器的判别能力都会不断提高。 对抗生成网络GAN由两个模型组成生成器和判别器。生成器的目标是生成尽可能真实的样本而判别器的目标是区分真实样本和生成样本。两者通过对抗训练不断优化最终达到纳什均衡。 损失来源GAN 的损失函数来自生成器和判别器之间的对抗。判别器的损失来自于它对真实样本和生成样本的误判生成器的损失来自于它生成的样本被判别器识别为假样本。 生成器和判别器 生成器厨师负责制作假菜目标是让评论家无法区分真假菜。类似于一个“伪造者”负责生成尽可能真实的样本。 判别器评论家负责区分真菜和假菜目标是找出所有的假菜。类似于一个“警察”负责区分真实样本和生成样本。 nn.Sequential 容器 定义nn.Sequential 是一个顺序容器用于按顺序堆叠多个神经网络层。这简化了前向传播的写法适合于层与层之间按顺序运算的情况。 LeakyReLU 介绍 定义就像是餐厅的菜谱按顺序列出每个烹饪步骤简化了厨师的烹饪流程。LeakyReLU 是 ReLU 的变种允许一小部分梯度通过避免神经元失活现象。类似于在烹饪过程中允许某些食材保留一定的原始风味避免某些食材完全失活从而丰富菜品的层次感。 公式LeakyReLU(x) max(0.01 * x, x)其中 0.01 是负斜率。 作业 对于心脏病数据集对于病人这个不平衡的样本用 GAN 来学习并生成病人样本观察不用 GAN 和用 GAN 的 F1 分数差异 步骤 数据准备加载心脏病数据集处理数据以适应 GAN 的输入要求。 定义生成器和判别器使用 nn.Sequential 定义生成器和判别器。 训练 GAN通过对抗训练生成器和判别器。 数据增强使用生成器生成额外的病人样本增加数据集的多样性。 模型训练使用原始数据集和增强后的数据集分别训练分类模型比较 F1 分数。 import pandas as pd import numpy as np import torch import torch.nn as nn import torch.optim as optim from sklearn.preprocessing import StandardScaler from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics import f1_score from sklearn.impute import SimpleImputer# 加载数据 df pd.read_csv(heart.csv)# 特征和标签分离 X df.drop(target, axis1) y df[target]# 检查缺失值 print(原始数据集中缺失值情况) print(df.isnull().sum())# 使用SimpleImputer填补缺失值 imp SimpleImputer(missing_valuesnp.nan, strategymean) X_imputed imp.fit_transform(X)# 将数据分为病人和健康人 X_patients X_imputed[y 1] X_healthy X_imputed[y 0]# 特征标准化 scaler StandardScaler() X_patients scaler.fit_transform(X_patients) X_healthy scaler.transform(X_healthy)# 将数据转换为PyTorch张量 X_patients_tensor torch.tensor(X_patients, dtypetorch.float32) X_healthy_tensor torch.tensor(X_healthy, dtypetorch.float32)# 定义生成器 generator nn.Sequential(nn.Linear(100, 128),nn.ReLU(),nn.Linear(128, 256),nn.ReLU(),nn.Linear(256, X_patients.shape[1]),nn.Tanh() )# 定义判别器 discriminator nn.Sequential(nn.Linear(X_patients.shape[1], 256),nn.LeakyReLU(0.2),nn.Linear(256, 128),nn.LeakyReLU(0.2),nn.Linear(128, 1),nn.Sigmoid() )# 定义损失函数和优化器 criterion nn.BCELoss() lr 0.0002 optimizer_g optim.Adam(generator.parameters(), lrlr) optimizer_d optim.Adam(discriminator.parameters(), lrlr)# 训练 GAN num_epochs 1000 batch_size 32for epoch in range(num_epochs):# 训练判别器# 真实样本real_data X_patients_tensor[torch.randint(0, X_patients_tensor.shape[0], (batch_size,))]real_labels torch.ones(batch_size, 1)d_real_loss criterion(discriminator(real_data), real_labels)# 生成样本noise torch.randn(batch_size, 100)fake_data generator(noise)fake_labels torch.zeros(batch_size, 1)d_fake_loss criterion(discriminator(fake_data.detach()), fake_labels)# 总损失和优化d_loss d_real_loss d_fake_lossoptimizer_d.zero_grad()d_loss.backward()optimizer_d.step()# 训练生成器noise torch.randn(batch_size, 100)fake_data generator(noise)g_loss criterion(discriminator(fake_data), real_labels)optimizer_g.zero_grad()g_loss.backward()optimizer_g.step()if epoch % 100 0:print(fEpoch [{epoch}/{num_epochs}] | D Loss: {d_loss.item():.4f} | G Loss: {g_loss.item():.4f})# 生成额外的病人样本 num_new_samples 100 noise torch.randn(num_new_samples, 100) generated_samples generator(noise).detach().numpy()# 反标准化生成的样本 generated_samples scaler.inverse_transform(generated_samples)# 将生成的样本添加到原始数据集中 X_generated pd.DataFrame(generated_samples, columnsdf.columns[:-1]) y_generated pd.Series([1] * num_new_samples, nametarget)# 合并原始数据集和生成的数据集 X_augmented pd.concat([df, X_generated]) y_augmented pd.concat([y, y_generated])# 使用 SimpleImputer 填补增强数据集中的缺失值 X_augmented_imputed imp.transform(X_augmented)# 使用原始数据集训练模型 X_train, X_test, y_train, y_test train_test_split(X_imputed, y, test_size0.2, random_state42) model LogisticRegression() model.fit(X_train, y_train) y_pred model.predict(X_test) f1_original f1_score(y_test, y_pred)# 使用增强后的数据集训练模型 X_augmented_train, X_augmented_test, y_augmented_train, y_augmented_test train_test_split(X_augmented_imputed, y_augmented, test_size0.2, random_state42) model_augmented LogisticRegression() model_augmented.fit(X_augmented_train, y_augmented_train) y_augmented_pred model_augmented.predict(X_augmented_test) f1_augmented f1_score(y_augmented_test, y_augmented_pred)print(fOriginal F1 Score: {f1_original:.4f}) print(fAugmented F1 Score: {f1_augmented:.4f}) import pandas as pd import numpy as np import torch import torch.nn as nn import torch.optim as optim from sklearn.preprocessing import StandardScaler from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics import f1_score from sklearn.impute import SimpleImputer# 加载数据 df pd.read_csv(heart.csv)# 特征和标签分离 X df.drop(target, axis1) y df[target]# 检查缺失值 print(原始数据集中缺失值情况) print(df.isnull().sum())# 使用 SimpleImputer 填补缺失值 imp SimpleImputer(missing_valuesnp.nan, strategymean) X_imputed imp.fit_transform(X)# 将数据分为病人和健康人 X_patients X_imputed[y 1] X_healthy X_imputed[y 0]# 特征标准化 scaler StandardScaler() X_patients scaler.fit_transform(X_patients) X_healthy scaler.transform(X_healthy)# 将数据转换为 PyTorch 张量 X_patients_tensor torch.tensor(X_patients, dtypetorch.float32) X_healthy_tensor torch.tensor(X_healthy, dtypetorch.float32)# 定义生成器 generator nn.Sequential(nn.Linear(100, 128),nn.ReLU(),nn.Linear(128, 256),nn.ReLU(),nn.Linear(256, X_patients.shape[1]),nn.Tanh() )# 定义判别器 discriminator nn.Sequential(nn.Linear(X_patients.shape[1], 256),nn.LeakyReLU(0.2),nn.Linear(256, 128),nn.LeakyReLU(0.2),nn.Linear(128, 1),nn.Sigmoid() )# 定义损失函数和优化器 criterion nn.BCELoss() lr 0.0002 optimizer_g optim.Adam(generator.parameters(), lrlr) optimizer_d optim.Adam(discriminator.parameters(), lrlr)# 训练 GAN num_epochs 1000 batch_size 32for epoch in range(num_epochs):# 训练判别器# 真实样本real_data X_patients_tensor[torch.randint(0, X_patients_tensor.shape[0], (batch_size,))]real_labels torch.ones(batch_size, 1)d_real_loss criterion(discriminator(real_data), real_labels)# 生成样本noise torch.randn(batch_size, 100)fake_data generator(noise)fake_labels torch.zeros(batch_size, 1)d_fake_loss criterion(discriminator(fake_data.detach()), fake_labels)# 总损失和优化d_loss d_real_loss d_fake_lossoptimizer_d.zero_grad()d_loss.backward()optimizer_d.step()# 训练生成器noise torch.randn(batch_size, 100)fake_data generator(noise)g_loss criterion(discriminator(fake_data), real_labels)optimizer_g.zero_grad()g_loss.backward()optimizer_g.step()if epoch % 100 0:print(fEpoch [{epoch}/{num_epochs}] | D Loss: {d_loss.item():.4f} | G Loss: {g_loss.item():.4f})# 生成额外的病人样本 num_new_samples 100 noise torch.randn(num_new_samples, 100) generated_samples generator(noise).detach().numpy()# 反标准化生成的样本 generated_samples scaler.inverse_transform(generated_samples)# 将生成的样本转换为 DataFrame generated_df pd.DataFrame(generated_samples, columnsX.columns)# 合并原始数据集和生成的数据集 augmented_df pd.concat([df, generated_df]) augmented_df[target] pd.concat([y, pd.Series([1] * num_new_samples)])# 使用 SimpleImputer 填补增强数据集中的缺失值 augmented_imputer SimpleImputer(missing_valuesnp.nan, strategymean) augmented_imputer.fit(X) # 使用原始特征来拟合 X_augmented_imputed augmented_imputer.transform(augmented_df.drop(target, axis1))# 使用原始数据集训练模型 X_train, X_test, y_train, y_test train_test_split(X_imputed, y, test_size0.2, random_state42) model LogisticRegression() model.fit(X_train, y_train) y_pred model.predict(X_test) f1_original f1_score(y_test, y_pred)# 使用增强后的数据集训练模型 X_augmented_train, X_augmented_test, y_augmented_train, y_augmented_test train_test_split(X_augmented_imputed, augmented_df[target], test_size0.2, random_state42) model_augmented LogisticRegression() model_augmented.fit(X_augmented_train, y_augmented_train) y_augmented_pred model_augmented.predict(X_augmented_test) f1_augmented f1_score(y_augmented_test, y_augmented_pred)print(fOriginal F1 Score: {f1_original:.4f}) print(fAugmented F1 Score: {f1_augmented:.4f}) ps如果你学有余力对于gan的损失函数的理解建议去找找视频看看如果只是用没必要学 浙大疏锦行
http://www.hkea.cn/news/14501032/

相关文章:

  • 做营销网站建设挣钱吗中山网站开发招聘
  • 如何看访问网站的dnswordpress按用户喜好排序
  • 电商运营自学网站丽水市莲都区建设局网站
  • 惠州城乡建设部网站手机棋牌app制作教程
  • 网络营销网站建设公司大连房产网
  • 为什么做游戏网站被封提高工作效率的方法不正确的是
  • 怎么提交网站关键词杭州cms建站模板
  • 做的好的装修公司网站提高网站建设水平
  • 费县网站建设个人网站源码html
  • ppt做视频的模板下载网站有哪些苏州优化网站公司
  • 园林绿化网站建设如何注册微信小程序商家
  • 微信小程序开发网站怎么制作一个简单的网页
  • 网站显示iis7护理专业简历
  • 做二手手机交易网站专业3合1网站建设电话
  • 网站别人能打开我打不开房地产建设企业网站
  • 太和网站建设广告推广服务平台
  • 国外网站用什么dns好WordPress搜索不通过数据库
  • 网上花店 网站源代码医院网站建设投标书
  • wordpress调用相关文章百度seo优化是什么
  • 网站建设实质wordpress的意思和读音
  • 网站是什么时候出现的wordpress企业免费主题下载
  • 网站建设要注意哪些事情一级网站建设
  • 自学html做网站要多久桂林论坛网
  • 做php网站方向要会什么做个手机网站多少钱
  • 江西恒通建设工程有限公司网站东莞网络公司网站建设
  • 如何做网站容易收录洞泾做网站
  • 网站建设的实训技术总结湖南交通建设监理协会网站
  • 慈溪建设局网站27WordPress主题
  • 艾辰做网站wordpress禁言插件
  • 网站怎么做qq微信登陆界面网站开发使用技术第二版答案