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

vps没问题访问不了网站外国网站建设

vps没问题访问不了网站,外国网站建设,网站建设方案word,电子商务网站建设与管理实验目的目录 前言 设置 单主机、多设备同步培训 工作原理 如何使用 使用回调确保容错 tf.data 性能提示 数据集批处理注意事项 调用 dataset.cache() 调用 dataset.prefetch(buffer_size) 政安晨的个人主页#xff1a;政安晨 欢迎 #x1f44d;点赞✍评论⭐收藏 收录专栏:…目录 前言 设置 单主机、多设备同步培训 工作原理 如何使用 使用回调确保容错 tf.data 性能提示 数据集批处理注意事项 调用 dataset.cache() 调用 dataset.prefetch(buffer_size) 政安晨的个人主页政安晨 欢迎 点赞✍评论⭐收藏 收录专栏: TensorFlow与Keras机器学习实战 希望政安晨的博客能够对您有所裨益如有不足之处欢迎在评论区提出指正 本文是使用 TensorFlow 对 Keras 模型进行多 GPU 训练的指南。 前言 在多台设备之间分配计算通常有两种方法 数据并行即在多个设备或多台机器上复制单个模型。它们各自处理不同批次的数据然后合并结果。这种设置有很多变体不同的模型副本合并结果的方式不同它们是在每个批次保持同步还是更松散地耦合等。 模型并行即一个模型的不同部分在不同设备上运行同时处理一批数据。这种方法最适用于具有天然并行架构的模型例如具有多个分支的模型。 本指南侧重于数据并行性尤其是同步数据并行性即模型的不同副本在处理每个批次后保持同步。同步性可使模型收敛行为与单设备训练时的收敛行为保持一致。 具体来说本文将教您如何使用 tf.distribute API 在单台机器上安装的多个 GPU通常为 2 到 16 个上对 Keras 模型进行训练只需对代码进行最小的修改单主机、多设备训练。这是研究人员和小规模行业工作流程最常见的配置。 设置 import osos.environ[KERAS_BACKEND] tensorflowimport tensorflow as tf import keras 单主机、多设备同步培训 在这种设置中一台机器上有多个 GPU通常为 2 到 16 个。每个设备将运行一个模型副本称为副本。为简单起见在下文中我们将假设使用 8 个 GPU但这并不影响其通用性。 工作原理 训练的每个阶段当前批次的数据称为全局批次会被分成 8 个不同的子批次称为局部批次。例如如果全局批次有 512 个样本那么 8 个局部批次中的每个批次将有 64 个样本。8 个副本中的每个副本都会独立处理一个本地批次它们先运行一个前向传递然后运行一个后向传递输出权重相对于本地批次上模型损失的梯度。源于本地梯度的权重更新会在 8 个副本中有效合并。由于这是在每一步结束时进行的因此各副本始终保持同步。 实际上同步更新模型副本权重的过程是在每个权重变量的层面上进行的。这是通过镜像变量对象完成的。 如何使用 要使用 Keras 模型进行单主机、多设备同步训练您需要使用 tf.distribute.MirroredStrategy API。下面是其工作原理 实例化 MirroredStrategy可选择配置要使用的特定设备默认情况下该策略将使用所有可用的 GPU。使用该策略对象打开一个作用域并在该作用域中创建所需的包含变量的所有 Keras 对象。通常这意味着在分发作用域内创建和编译模型。在某些情况下对 fit() 的首次调用也可能会创建变量因此最好也将 fit() 调用放在该作用域中。像往常一样通过 fit() 训练模型。 重要的是我们建议您使用 tf.data.Dataset 对象在多设备或分布式工作流中加载数据。 从结构上看是这样的 # Create a MirroredStrategy. strategy tf.distribute.MirroredStrategy() print(Number of devices: {}.format(strategy.num_replicas_in_sync))# Open a strategy scope. with strategy.scope():# Everything that creates variables should be under the strategy scope.# In general this is only model construction compile().model Model(...)model.compile(...)# Train the model on all available devices.model.fit(train_dataset, validation_dataval_dataset, ...)# Test the model on all available devices.model.evaluate(test_dataset) 下面是一个简单的端到端可运行示例 def get_compiled_model():# Make a simple 2-layer densely-connected neural network.inputs keras.Input(shape(784,))x keras.layers.Dense(256, activationrelu)(inputs)x keras.layers.Dense(256, activationrelu)(x)outputs keras.layers.Dense(10)(x)model keras.Model(inputs, outputs)model.compile(optimizerkeras.optimizers.Adam(),losskeras.losses.SparseCategoricalCrossentropy(from_logitsTrue),metrics[keras.metrics.SparseCategoricalAccuracy()],)return modeldef get_dataset():batch_size 32num_val_samples 10000# Return the MNIST dataset in the form of a [tf.data.Dataset](https://www.tensorflow.org/api_docs/python/tf/data/Dataset).(x_train, y_train), (x_test, y_test) keras.datasets.mnist.load_data()# Preprocess the data (these are Numpy arrays)x_train x_train.reshape(-1, 784).astype(float32) / 255x_test x_test.reshape(-1, 784).astype(float32) / 255y_train y_train.astype(float32)y_test y_test.astype(float32)# Reserve num_val_samples samples for validationx_val x_train[-num_val_samples:]y_val y_train[-num_val_samples:]x_train x_train[:-num_val_samples]y_train y_train[:-num_val_samples]return (tf.data.Dataset.from_tensor_slices((x_train, y_train)).batch(batch_size),tf.data.Dataset.from_tensor_slices((x_val, y_val)).batch(batch_size),tf.data.Dataset.from_tensor_slices((x_test, y_test)).batch(batch_size),)# Create a MirroredStrategy. strategy tf.distribute.MirroredStrategy() print(Number of devices: {}.format(strategy.num_replicas_in_sync))# Open a strategy scope. with strategy.scope():# Everything that creates variables should be under the strategy scope.# In general this is only model construction compile().model get_compiled_model()# Train the model on all available devices.train_dataset, val_dataset, test_dataset get_dataset()model.fit(train_dataset, epochs2, validation_dataval_dataset)# Test the model on all available devices.model.evaluate(test_dataset) 结果如下  INFO:tensorflow:Using MirroredStrategy with devices (/job:localhost/replica:0/task:0/device:CPU:0,) Number of devices: 1 Epoch 1/21563/1563 ━━━━━━━━━━━━━━━━━━━━ 7s 4ms/step - loss: 0.3830 - sparse_categorical_accuracy: 0.8884 - val_loss: 0.1361 - val_sparse_categorical_accuracy: 0.9574 Epoch 2/21563/1563 ━━━━━━━━━━━━━━━━━━━━ 9s 3ms/step - loss: 0.1068 - sparse_categorical_accuracy: 0.9671 - val_loss: 0.0894 - val_sparse_categorical_accuracy: 0.9724313/313 ━━━━━━━━━━━━━━━━━━━━ 1s 2ms/step - loss: 0.0988 - sparse_categorical_accuracy: 0.9673 使用回调确保容错 使用分布式训练时应始终确保有从故障中恢复的策略容错。最简单的处理方法是将 ModelCheckpoint 回调传递给 fit()以定期保存模型例如每 100 个批次或每个历元。然后您可以从保存的模型重新开始训练。 这里有一个简单的例子 # Prepare a directory to store all the checkpoints. checkpoint_dir ./ckpt if not os.path.exists(checkpoint_dir):os.makedirs(checkpoint_dir)def make_or_restore_model():# Either restore the latest model, or create a fresh one# if there is no checkpoint available.checkpoints [checkpoint_dir / name for name in os.listdir(checkpoint_dir)]if checkpoints:latest_checkpoint max(checkpoints, keyos.path.getctime)print(Restoring from, latest_checkpoint)return keras.models.load_model(latest_checkpoint)print(Creating a new model)return get_compiled_model()def run_training(epochs1):# Create a MirroredStrategy.strategy tf.distribute.MirroredStrategy()# Open a strategy scope and create/restore the modelwith strategy.scope():model make_or_restore_model()callbacks [# This callback saves a SavedModel every epoch# We include the current epoch in the folder name.keras.callbacks.ModelCheckpoint(filepathcheckpoint_dir /ckpt-{epoch}.keras,save_freqepoch,)]model.fit(train_dataset,epochsepochs,callbackscallbacks,validation_dataval_dataset,verbose2,)# Running the first time creates the model run_training(epochs1)# Calling the same function again will resume from where we left off run_training(epochs1) 执行结果如下 INFO:tensorflow:Using MirroredStrategy with devices (/job:localhost/replica:0/task:0/device:CPU:0,) Creating a new model 1563/1563 - 7s - 4ms/step - loss: 0.2275 - sparse_categorical_accuracy: 0.9320 - val_loss: 0.1373 - val_sparse_categorical_accuracy: 0.9571 INFO:tensorflow:Using MirroredStrategy with devices (/job:localhost/replica:0/task:0/device:CPU:0,) Restoring from ./ckpt/ckpt-1.keras 1563/1563 - 6s - 4ms/step - loss: 0.0944 - sparse_categorical_accuracy: 0.9717 - val_loss: 0.0972 - val_sparse_categorical_accuracy: 0.9710 tf.data 性能提示 在进行分布式训练时加载数据的效率往往至关重要。以下是一些确保 tf.data 管道尽可能快速运行的技巧。 数据集批处理注意事项 创建数据集时请确保使用全局批处理大小对数据集进行批处理。例如如果 8 个 GPU 中的每个都能运行 64 个样本的批次则全局批次大小为 512。 调用 dataset.cache() 如果在数据集上调用 .cache()数据集的数据将在第一次迭代后被缓存。随后的每次迭代都将使用缓存数据。缓存数据可以是内存中的数据默认也可以是你指定的本地文件中的数据。这可以在以下情况下提高性能 每次迭代时数据不会发生变化从远程分布式文件系统读取数据从本地磁盘读取数据但数据可以放在内存中而且工作流程对 IO 有很大限制例如读取和解码图像文件。 调用 dataset.prefetch(buffer_size) 创建数据集后几乎总是要调用 .prefetch(buffer_size)。这意味着您的数据管道将与模型异步运行在当前批次样本用于训练模型时新样本将被预处理并存储在缓冲区中。当前批次结束时下一批样本将被预取到 GPU 内存中。 这就是全部内容啦。
http://www.pierceye.com/news/572/

相关文章:

  • 建设银行遵义分行网站网易企业邮箱登入入口
  • 淘宝网站是谁做的印尼请人做网站
  • 园林景观设计公司做抖音推广措施seo社区
  • 网站定时数据切换怎么做的互联网创业就是做网站吗
  • 网站关键词百度指数wordpress移动广告不显示不出来
  • 怎么把自己做的网站挂到外网上住房和城乡建设部网站投诉电话
  • 制作网站软件下载wordpress演示
  • 视频网站开发代码wordpress 小程序哪个
  • 网站竞价托管建站价格会差
  • 石家庄网站建设网站建设凡科网站投票排行榜是怎么做的
  • 网站建设流程方案如何找有需求做网站的公司
  • 神鹰网站建设公司openresty wordpress
  • iis .net 网站架设自己建个网站需要什么
  • 网站后台登录地址怎么安全网站底部友情链接
  • 高端网站建设如何收费上海网站制作建设是什么
  • 深圳市国外网站建设服务机构做韩国外贸网站
  • 嘉兴seo网站建设费用网站制作 中企动力公司
  • 怎么选择郑州网站建设怎样在网站模板上做修改
  • 云南旅游网站开发公司广州做网站的公司哪家好
  • 做便民网站都需要哪些模块WordPress自动截取
  • 营销型网站怎么收费装潢公司网站模板
  • 平邑网站制作不是做有网站都叫狠狠
  • 免费源码html网站株洲本地新闻
  • 网站每年要交钱吗贴心的合肥网站建设
  • 网站建设与管理简单么oa系统的概念
  • 南昌住房建设局网站珠海网站建设企业
  • dede企业网站带留言板后台查询怎样免费做网站视频讲解
  • 网站做百度推广需要哪些条件怎么建立公司网站费用
  • 博罗网站建设费用创造一个网页
  • 漳州网站设计制作公众号编辑器排行榜