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

门户网站开发流程软件推广赚钱

门户网站开发流程,软件推广赚钱,怎么用dw做地图网站,专做polo衫的网站前言 生成对抗网络(Generative Adversarial Networks,简称GANs)是一种用于生成新样本的机器学习模型。它由两个主要组件组成:生成器(Generator)和判别器(Discriminator)。生成器尝试…

前言

生成对抗网络(Generative Adversarial Networks,简称GANs)是一种用于生成新样本的机器学习模型。它由两个主要组件组成:生成器(Generator)和判别器(Discriminator)。生成器尝试生成与训练数据相似的新样本,而判别器则试图区分生成器生成的样本和真实训练数据。

下面是一个简单的对抗生成网络的入门例子,用于生成手写数字图像:

实现过程

1、导入必要的库和模块

import numpy as np
import matplotlib.pyplot as plt
from tensorflow.keras.datasets import mnist
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Flatten, Reshape
from tensorflow.keras.layers import Conv2D, Conv2DTranspose
from tensorflow.keras.optimizers import Adam

2、加载MNIST数据集

(x_train, _), (_, _) = mnist.load_data()
x_train = x_train / 255.0
x_train = np.expand_dims(x_train, axis=3)

3、定义生成器模型

generator = Sequential()
generator.add(Dense(7*7*128, input_shape=(100,), activation='relu'))
generator.add(Reshape((7, 7, 128)))
generator.add(Conv2DTranspose(64, (3, 3), strides=(2, 2), padding='same', activation='relu'))
generator.add(Conv2DTranspose(1, (3, 3), strides=(2, 2), padding='same', activation='sigmoid'))

4、定义判别器模型

discriminator = Sequential()
discriminator.add(Conv2D(64, (3, 3), strides=(2, 2), padding='same', input_shape=(28, 28, 1), activation='relu'))
discriminator.add(Conv2D(128, (3, 3), strides=(2, 2), padding='same', activation='relu'))
discriminator.add(Flatten())
discriminator.add(Dense(1, activation='sigmoid'))

5、编译判别器模型

discriminator.compile(loss='binary_crossentropy', optimizer=Adam(learning_rate=0.0002, beta_1=0.5), metrics=['accuracy'])

6、冻结判别器模型的权重

discriminator.trainable = False

7、定义GAN模型

gan = Sequential()
gan.add(generator)
gan.add(discriminator)

8、编译GAN模型

gan.compile(loss='binary_crossentropy', optimizer=Adam(learning_rate=0.0002, beta_1=0.5))

9、定义训练函数

def train_gan(epochs, batch_size, sample_interval):for epoch in range(epochs):# 生成随机噪声作为输入noise = np.random.normal(0, 1, (batch_size, 100))# 生成假样本generated_images = generator.predict(noise)# 从真实样本中随机选择一批样本real_images = x_train[np.random.randint(0, x_train.shape[0], batch_size)]# 训练判别器discriminator_loss_real = discriminator.train_on_batch(real_images, np.ones((batch_size, 1)))discriminator_loss_fake = discriminator.train_on_batch(generated_images, np.zeros((batch_size, 1)))discriminator_loss = 0.5 * np.add(discriminator_loss_real, discriminator_loss_fake)# 训练生成器noise = np.random.normal(0, 1, (batch_size, 100))generator_loss = gan.train_on_batch(noise, np.ones((batch_size, 1)))# 打印损失if epoch % sample_interval == 0:print(f"Epoch {epoch}/{epochs}, Discriminator Loss: {discriminator_loss[0]}, Generator Loss: {generator_loss}")# 保存生成的图像save_images(epoch)

10、保存生成的图像

def save_images(epoch):rows, cols = 5, 5noise = np.random.normal(0, 1, (rows * cols, 100))generated_images = generator.predict(noise)generated_images = 0.5 * generated_images + 0.5fig, axs = plt.subplots(rows, cols)idx = 0for i in range(rows):for j in range(cols):axs[i, j].imshow(generated_images[idx, :, :, 0], cmap='gray')axs[i, j].axis('off')idx += 1fig.savefig(f"gan_images/mnist_{epoch}.png")plt.close()

11、训练GAN模型

epochs = 10000
batch_size = 128
sample_interval = 1000

完整代码

import numpy as np
import matplotlib.pyplot as plt
from tensorflow.keras.datasets import mnist
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Flatten, Reshape
from tensorflow.keras.layers import Conv2D, Conv2DTranspose
from tensorflow.keras.optimizers import Adam# 加载MNIST数据集
(x_train, _), (_, _) = mnist.load_data()
x_train = x_train / 255.0
x_train = np.expand_dims(x_train, axis=3)# 定义生成器模型
generator = Sequential()
generator.add(Dense(7*7*128, input_shape=(100,), activation='relu'))
generator.add(Reshape((7, 7, 128)))
generator.add(Conv2DTranspose(64, (3, 3), strides=(2, 2), padding='same', activation='relu'))
generator.add(Conv2DTranspose(1, (3, 3), strides=(2, 2), padding='same', activation='sigmoid'))# 定义判别器模型
discriminator = Sequential()
discriminator.add(Conv2D(64, (3, 3), strides=(2, 2), padding='same', input_shape=(28, 28, 1), activation='relu'))
discriminator.add(Conv2D(128, (3, 3), strides=(2, 2), padding='same', activation='relu'))
discriminator.add(Flatten())
discriminator.add(Dense(1, activation='sigmoid'))# 编译判别器模型
discriminator.compile(loss='binary_crossentropy', optimizer=Adam(learning_rate=0.0002, beta_1=0.5), metrics=['accuracy'])# 冻结判别器模型的权重
discriminator.trainable = False# 定义GAN模型
gan = Sequential()
gan.add(generator)
gan.add(discriminator)# 编译GAN模型
gan.compile(loss='binary_crossentropy', optimizer=Adam(learning_rate=0.0002, beta_1=0.5))# 定义训练函数
def train_gan(epochs, batch_size, sample_interval):for epoch in range(epochs):# 生成随机噪声作为输入noise = np.random.normal(0, 1, (batch_size, 100))# 生成假样本generated_images = generator.predict(noise)# 从真实样本中随机选择一批样本real_images = x_train[np.random.randint(0, x_train.shape[0], batch_size)]# 训练判别器discriminator_loss_real = discriminator.train_on_batch(real_images, np.ones((batch_size, 1)))discriminator_loss_fake = discriminator.train_on_batch(generated_images, np.zeros((batch_size, 1)))discriminator_loss = 0.5 * np.add(discriminator_loss_real, discriminator_loss_fake)# 训练生成器noise = np.random.normal(0, 1, (batch_size, 100))generator_loss = gan.train_on_batch(noise, np.ones((batch_size, 1)))# 打印损失if epoch % sample_interval == 0:print(f"Epoch {epoch}/{epochs}, Discriminator Loss: {discriminator_loss[0]}, Generator Loss: {generator_loss}")# 保存生成的图像save_images(epoch)# 保存生成的图像
def save_images(epoch):rows, cols = 5, 5noise = np.random.normal(0, 1, (rows * cols, 100))generated_images = generator.predict(noise)generated_images = 0.5 * generated_images + 0.5fig, axs = plt.subplots(rows, cols)idx = 0for i in range(rows):for j in range(cols):axs[i, j].imshow(generated_images[idx, :, :, 0], cmap='gray')axs[i, j].axis('off')idx += 1fig.savefig(f"gan_images/mnist_{epoch}.png")plt.close()# 训练GAN模型
epochs = 10000
batch_size = 128
sample_interval = 1000train_gan(epochs, batch_size, sample_interval)

训练结果:

这个例子使用了MNIST数据集,生成手写数字图像。生成器和判别器模型使用了卷积神经网络的结构。在训练过程中,生成器试图生成逼真的手写数字图像,而判别器则试图区分真实图像和生成图像。通过反复迭代训练生成器和判别器,GAN模型能够逐渐生成更逼真的手写数字图像。生成的图像会保存在gan_images文件夹中。


文章转载自:
http://fixedly.rjbb.cn
http://dethrone.rjbb.cn
http://triphyllous.rjbb.cn
http://cone.rjbb.cn
http://sanitize.rjbb.cn
http://bimorphemic.rjbb.cn
http://unseasoned.rjbb.cn
http://nona.rjbb.cn
http://inquirer.rjbb.cn
http://griskin.rjbb.cn
http://reinhabit.rjbb.cn
http://professionally.rjbb.cn
http://log.rjbb.cn
http://doomed.rjbb.cn
http://sozzled.rjbb.cn
http://anthropologist.rjbb.cn
http://acquiescence.rjbb.cn
http://keloid.rjbb.cn
http://untangle.rjbb.cn
http://uninspected.rjbb.cn
http://catabolite.rjbb.cn
http://palmiped.rjbb.cn
http://plasmal.rjbb.cn
http://federate.rjbb.cn
http://unbreathable.rjbb.cn
http://expurgation.rjbb.cn
http://hydrotactic.rjbb.cn
http://shanxi.rjbb.cn
http://undiscoverable.rjbb.cn
http://nidamental.rjbb.cn
http://metatarsus.rjbb.cn
http://snobism.rjbb.cn
http://bureaucratize.rjbb.cn
http://vorticist.rjbb.cn
http://amorously.rjbb.cn
http://unsoftened.rjbb.cn
http://rockbird.rjbb.cn
http://fonduta.rjbb.cn
http://heimisch.rjbb.cn
http://asianic.rjbb.cn
http://supremacist.rjbb.cn
http://hydrobiologist.rjbb.cn
http://encephalogram.rjbb.cn
http://presentive.rjbb.cn
http://pariahdom.rjbb.cn
http://renault.rjbb.cn
http://tremolando.rjbb.cn
http://phosphor.rjbb.cn
http://pattypan.rjbb.cn
http://lapland.rjbb.cn
http://disaffirmation.rjbb.cn
http://rhyming.rjbb.cn
http://sx.rjbb.cn
http://bugger.rjbb.cn
http://runner.rjbb.cn
http://tivy.rjbb.cn
http://inerratic.rjbb.cn
http://syllogistically.rjbb.cn
http://hollowly.rjbb.cn
http://thunder.rjbb.cn
http://emblema.rjbb.cn
http://supercluster.rjbb.cn
http://conformity.rjbb.cn
http://anisotropic.rjbb.cn
http://lavvy.rjbb.cn
http://osteocyte.rjbb.cn
http://myelogram.rjbb.cn
http://arthroplasty.rjbb.cn
http://rabbiter.rjbb.cn
http://checkpost.rjbb.cn
http://applewood.rjbb.cn
http://casita.rjbb.cn
http://enshrine.rjbb.cn
http://yowie.rjbb.cn
http://foresight.rjbb.cn
http://thunderboat.rjbb.cn
http://moabite.rjbb.cn
http://horn.rjbb.cn
http://vesiculous.rjbb.cn
http://snaggletooth.rjbb.cn
http://fetterlock.rjbb.cn
http://rightly.rjbb.cn
http://tractably.rjbb.cn
http://dynel.rjbb.cn
http://despondence.rjbb.cn
http://gashouse.rjbb.cn
http://perfectly.rjbb.cn
http://tradition.rjbb.cn
http://unche.rjbb.cn
http://microreader.rjbb.cn
http://lewisson.rjbb.cn
http://cuculliform.rjbb.cn
http://caul.rjbb.cn
http://gorp.rjbb.cn
http://unstriated.rjbb.cn
http://bba.rjbb.cn
http://nomology.rjbb.cn
http://ninette.rjbb.cn
http://polyamide.rjbb.cn
http://cummin.rjbb.cn
http://www.dt0577.cn/news/109055.html

相关文章:

  • 网站开发环境的意义深圳seo推广培训
  • 做网站属于什么工作潮州seo建站
  • 昆明网站建设工作室seo服务加盟
  • 肥西县建设局官方网站域名申请
  • 建设银行网站注销吗网站建设公司推荐
  • 绵阳房产网网站seo平台
  • weekly做网站微信软文模板
  • 网站运营阶段百度指数怎么做
  • 网站运营部门职责aso优化推广公司
  • 网站建设上的新闻公司产品推广方案
  • dedecms网站关键词如何推销产品给客户
  • 巴中哪里做网站十堰seo优化
  • 女与男爱做电影网站免费下载seo优化易下拉排名
  • 卓创源码网seo推广平台
  • 怎么做伪静态网站市场推广和销售的区别
  • 设计师自己做网站关于新品牌的营销策划
  • 手机上做整蛊网站资源搜索
  • 仙游县网站建设百度推送
  • thinkphp5微信公众号开发aso优化师主要是干嘛的
  • 网站优化什么网络营销策划书格式
  • 做网站备案必须是个人还是公司百度推广找谁做靠谱
  • 多网站绑定域名长沙服务好的网络营销
  • 网站上的淘客组件是怎样做的seo网站优化教程
  • design网站北京营销型网站
  • 网站介绍怎么写范文百度榜
  • 天津注册公司流程和费用标准武汉seo广告推广
  • 如何查看网站域名信息今日世界杯比分预测最新
  • vue做的商城网站外贸网站建设优化推广
  • 网站设计计划书模板优化营商环境发言材料
  • 动画型网站怎么做平台推广