开发进阶:如何提高云中应用程序的可靠性

摘要: 本文主要探究如何通过采用一个负载均衡器和永久性磁盘使您的应用程序更为健壮。您将使用多个服务器并了解如何安全地备份您的数据。 ...
<!--[diy=diysummarybottom]--><!--[/diy]-->
<!--[diy=diycontenttop]--><!--[/diy]-->

本系列的 开发教程:如何将Linux应用程序迁移到Amazon云 介绍了如何将一个物理服务器迁移到一个物理云服务器中。尽管所有的工作都已完成,但是,应用程序并没有明显的改善,这主要是因为引入了更多的单点故障。

甚至在单个物理服务器上,您都有冗余电源、错误纠正 RAM、冗余磁盘和丰富的故障前诊断指示器监控。在一个云服务器上,您不知道您已经获取了什么 — 或者更确切地说,您不知道您访问了什么。云服务器通常是可靠的,但是采取预防措施是很明智的,特别是自从 Amazon 提供额外服务来提高可靠性之后。

当部署到一个云计算环境之后,最好做好有可能会丢失一个虚拟实例的准备。这不是说云服务是不可靠的,而是说您可能遇到的故障类型不像您在物理环境中所遇到的。因此您应该将智能性引入您的应用程序,处理通信损耗并在多个服务器之间实现伸缩性。不管您要构建什么类型的环境,这种思想将有助于您构建一个更好的应用程序。

在本文中,您将了解如何使用 Amazon Elastic Block Store (EBS) 改进数据库的短暂存储,您可以通过建立备份进一步提高数据保护功能。跨越多个实例进行负载均衡可防止应用程序服务器丢失,并允许您从各种故障中恢复。

图 1 展示了您上次中断的应用程序的架构。


图 1. 当前架构
当前架构 

所有对象都在一个 Amazon Elastic Compute Cloud (Amazon EC2) 实例上。前端 Web 服务器、nginx 、请求多个混合实例的代理或服务器静态文件本身。混合应用程序服务器在同一个主机上访问一个 PostgreSQL 数据库。

配置永久性磁盘

实例存储是 Amazon EC2 与 VMware 和 Xen 等虚拟化技术之间最大的不同。我们知道,一个 Amazon EC2 实例提供一个 10GB 的固定根分区和一个实例磁盘,后者的大小取决于启动的实例的类型。根分区是在启动时从 Amazon Machine Image (AMI) 克隆的,实例存储为空。当您关闭您的服务器时,您的实例存储丢失。

Amazon 的初始位置告诉人们应该频繁地备份他们的服务器到 Amazon Simple Storage Service (Amazon S3)。如果您的服务器崩溃,那么您应该有其他的服务器承受负载,或者您可以从 Amazon S3 获取数据。最终,Amazon 推出了 EBS,这是一个提供永久性磁盘的服务 。如果您的服务器崩溃,您可以将 EBS 卷附加到另一个服务器上。Amazon 甚至构建一个快照来简化备份。

SmallPayroll 应用程序中数据库服务器的主要问题是一个单点故障。有两个常见的方法可以对其进行校正。一个是构建两个能够彼此接管的数据库;另一个是减少潜在停机时间让一切更为合理。第一种方法有最少的停机时间但是较为复杂,第二种方法在这种情况下更为实用。如果数据库服务器崩溃,将启动一个新的实例 替换它。EBS 考虑了数据安全性。从错误发现到启动一个新数据库服务器并重新指向客户机总共用时应该低于 10 分钟。作为一点优势是,EBS 存储比起实例存储有一个较高的 I/O 容量。

EBS 可靠吗?

尽管 EBS 卷连接的实例关闭时该卷仍然存在,但也不能说它是 100% 可靠的解决方案。一个 EBS 卷在一个可用性区域(见 首次建立 EBS)进行复制来防止发生故障,但没有进一步复制。此外,故障可能而且确实会发生。

Amazon 声明 EBS 故障比率取决于卷的大小以及更改的频率。一般来说,对于 Amazon,EBS 卷的可靠性是物理磁盘的 10 倍,这大致上同 RAID 1 镜像的可靠性一样。

幸运的是,EBS 应用程序编程接口(API)提供一种机制,可以将数据快照移动到 Amazon S3。这一功能使您可以对您的卷进行快速的备份并将其存储在 Amazon S3 中,其中数据至少可以跨越 3 个设备进行复制。

要使用 EBS,应该执行以下步骤:

  1. 用 ec2-create-volume 命令创建卷。
  2. 使用 ec2-attach-volume 命令将卷附加到一个正在运行的实例中。
  3. 在卷上创建一个文件系统。
  4. 将文件系统挂载到目录。

首次建立 EBS

建立 EBS 的第一步是通知 Amazon 您想要创建一个卷。您需要知道两件事:您的镜像的大小(千兆字节为单位)和您想要在其中使用镜像的可用性区域。可用性区域 的概念是 Amazon 提出的,用来描述服务器的位置。以 us-east 开始的区域是在北维吉尼亚州,统称为地区。此时,在 us-east 地区有 3 个这样的区域:us-east-1a、us-east-1b 和us-east-1c。每一个可用性区域设计的目的是隔离其他可用性区域中的故障。同一地区的区域彼此仍然很接近,因此它们是低延迟的。

EBS 的一个限制是卷只能挂载到创建它所在的可用性区域中。有办法可以移动它们,但是您必须在同一可用性区域中创建您的卷作为服务器。

运行命令:

ec2-create-volume -s 20 -z us-east-1a

在 us-east-1a 区域创建一个 20GB 的卷。如果您不知道您的服务器在哪,ec2-describe-instances 命令将会告诉您。您可以对 ec2-run-instance 使用 -z 参数来指定您的服务器启动的位置。清单 1 显示了这个命令以及输出。


清单 1. 创建 EBS 卷
				
$ ec2-create-volume -s 20 -z us-east-1a
VOLUME  vol-c8791ca1    20              us-east-1a      creating     
2010-07-01T02:52:52+0000

清单 1 的输出显示了创建的卷以及卷的 ID 为 vol-c8791ca1。了解这一点,您就可以将卷附加到一个正在运行的 Amazon EC2 实例中,前提是您要知道服务器的实例标识符以及将卷作为服务器的设备。运行命令:

ec2-attach-volume vol-c8701ca1 -i i-fd15e097 -d /dev/sdj

将这个最新创建的卷附加到服务器实例 i-fd15e097。记住,您可以通过 ec2-describe-instances 命令找到您的实例标识符,并可使用 ec2-describe-volumes 查看卷列表。

现在,您的虚拟服务器有了一个名为 /dev/sdj 的磁盘,像查看普通磁盘那样查看它。对于任何一个磁盘,您需要在原始磁盘上创建一个文件系统。根据需要,您可以有不同的选择:

  • 创建一个标准第三方可扩展(ext3)文件系统。
  • 创建一个 XFS 文件系统。这样您就可以冻结文件系统来为备份创建一个快照。
  • 在磁盘和文件系统之间建立 Logical Volume Manager (LVM) 层,这样以后您将可以扩展 EBS 卷。
  • 使用 Linux® 软件 RAID 来条带化多个 EBS 卷,将 XFS 或 ext3 放在 RAID 集合的顶部。这将提供更高的磁盘性能。

即使 RAID 和 LVM 提供了有趣的特性,对于一个相对较小的 EBS 卷来说 XFS 也是最简单的选择。您将可以使用 XFS 的冻结特性以及 EBS 快照来进行一致的备份。清单 2 列出了如何创建一个 XFS 文件系统并将其挂载到主机上。


清单 2. 创建和挂载 XFS 文件系统
				
# mkfs.xfs /dev/sdj
meta-data=/dev/sdj               isize=256    agcount=8, agsize=32768 blks
         =                       sectsz=512   attr=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks, unwritten=1
naming   =version 2              bsize=4096
log      =internal log           bsize=4096   blocks=2560, version=1
         =                       sectsz=512   sunit=0 blks, lazy-count=0
realtime =none                   extsz=4096   blocks=0, rtextents=0
# mkdir /ebsvol
# mount /dev/sdj /ebsvol

清单 2 运行 mkfs.xfs 命令来格式化 /dev/sdj。(如果没有 mkfs.xfs,命令运行 gem install -y xfsprogs。)该命令的输出描述了文件系统的参数。只要输出中没有错误,这些参数可以忽略。清单 2 中最后两个命令创建一个名为 /ebsvol 的挂载点,然后在挂载点挂载文件系统。

文件系统现在是可用的。即使服务器出现故障,/ebsvol 之下的任何文件都将持续保留。

54、托管应用程序:云中的生产力利器 本文详细介绍了托管应用程序的概念、优势及应用场景,涵盖生产力工具、电子邮件客户端和数据分析工具等。同时探讨了性能优化、安全性保障以及未来发展趋势,并提供了实际操作示例和最佳实践建议,帮助用户更好地理解和使用托管应用程序以提升工作效率。 阅读详情

相关推荐

7、探索云计算:云中间件与最佳实践

本文深入探讨了云计算中的核心概念和技术,重点介绍了云中间件的作用、服务质量(QoS)的关键标准、数据和服务迁移的步骤、流处理过程以及性能监控工具的应用。同时,文章提供了关于基础设施搭建、成本优化和云容量管理的最佳实践,帮助企业和个人在云计算环境中实现高效、安全和经济的运营。

beer8的博客 188

如何提高服务器可靠性之keepalived应用案例

一、什么是keepalived keepalived可以实现服务器关键节点的高可靠性,如实现负载均衡节点的双机HA。 二、keepalived的原理是什么 当访问关键节点的时候,比如某个ip 192.168.0.190,我们希望这个节点更加可靠。 可以使用两台主机来承载他的工作,这样即使一台故障,另一台依然能正常提供服务。 如果熟悉网络原理,会发现这个场景特别像vrrp,没错,keepa...

B站:众元网络 538

使用VLC库实现视频播放器(WPF版)

使用wpf制作一个视频播放器 一、 LibVLCSharp介绍 LibVLCSharp是基于VideoLAN的LibVLC库的.NET平台的跨平台音频和视频API。它提供了一个全面的多媒体API,可以跨移动、服务器和桌面使用,以呈现视频和输出音频。支持Mono、.NET Framework和.NET核心运行时。在vs工具中,只需要安装截图中得两个nuget包。 二、视频播放器的实现 视频播放器的实现需要用到两个比较nuget包中提供的类,MediaPlayer类。MediaPlayer类型用于控

cangqiongxiaoye的博客 1万+

亚马逊云科技帮助客户在云中构建具有高可靠性和韧性的应用程序

每个区域由一个地理区域内的多个隔离的且在物理上分隔的可用区组成,每个区域设计为3个以上的可用区,每个可用区都有独立的电力、冷却和物理安全性,并通过冗余的超低延迟网络进行互联。云的韧性和可靠是承载云服务的硬件、软件、网络和设施所具备的抵御故障并快速从中断中恢复的能力,并尽可能减少云服务的中断。云上业务连续性是创新的基石,亚马逊云科技基础设施经过精心构建,是当今最安全、最可靠的云计算环境之一,旨在提供一个高可扩展性、高可靠的平台,使您能够快速安全地部署应用程序、构建高可用的业务系统。

caijingshiye的博客 398

SAP 屏幕增强:客户商主数据屏幕增强(KNA1、KNB1、KNVV)

本文介绍了SAP系统中针对客户主数据(KNA1、KNB1、KNVV)进行屏幕增强的具体实现方法。主要内容包括:1)在SPRO配置中创建新条目;2)通过SE80创建函数组和程序(LZKNA1TOP等);3)设置子屏幕9001并添加自定义结构字段;4)利用BADI(CUSTOMER_ADD_DATA等)实现数据交互逻辑。文章分别详细说明了针对客户主数据的一般数据(KNA1)、公司代码数据(KNB1)和销售数据(KNVV)三类不同数据的增强配置步骤,包括函数模块创建、屏幕设置和BADI方法调用等关键技术点。

SAP ABAP开发技能记录分享 1615

AIGC时代的必备技能:提示词工程(Prompt Engineering)全面指南

本文主要介绍了AIGC时代的重要技能——提示词工程(Prompt Engineering)。文章首先定义了提示词的概念,强调其作为人类与AI沟通桥梁的重要性,并详细阐述了提示词的功能特性,包括输入、大模型处理和输出三个环节。接着,文章探讨了提示工程的重要性,如提高输出质量、节省资源和时间等。随后,文章深入分析了提示词的基本构成要素,包括指令、上下文、输入数据和输出指示符,并提出了提示词的五大基本原则:清晰性与具体性、提供充足的上下文、明确任务与目标、考虑受众和迭代思维。最后,文章介绍了提示词的七大常见技巧

weixin_43178406的博客 27万+

10种可以迁移到云的应用程序

在云服务的安全性和可靠性方面,提供商们已经取得了很大的进步——Justin James认为,这些类型的应用程序最适合迁移到云中。 直到最近,我都没有太大的兴趣把一些关键性的应用程序放到云中,或是让其他人这么做。我已经被那些做事缺乏条理的供应商或提供商们坑了无数次了。但是,在过去的几年里,一些事情发生了很大的改变。有一种新类型的应用程序供应商出现了,它们可以让某些应用程序更稳定,并且,它们已经在可...

weixin_30951743的博客 238

5.7 BGP属-ORIGIN

注意:当去往同一个目的地存在多条不同Origin属性的路由时,在其他条件都相同的情况下,BGP将按如Origin的下顺序优选路由:IGP > EGP > Incomplete。通过以上输出可以看到路由表选择了R3发过来的路由,因为R1的路由的起源为?通过以上输出我们可以看到针对于1.1.1.1这条路由有两条,从R1和R3传过来的起源都属于IGP。(4)把从R1传过来的路由的起源改为incomplete。通过以上输出可以看到,从R1传过来的路由是最优的。(2)在R2上查看1.1.1.1的路由详细信息。

lwljh134的博客 308

RepCloud之云中TCB认证

将数据和计算外包给云提供商时,云提供商有必要向用户生成证据,以验证他们所宣传的服务和安全机制是否得到了实际执行,其中第一步就是证明云中TCB的可靠性。由于一方不能简单地声称自己的可信,因此需要引入可信第三方(TTP)来生成该证据。 TCG建议将平台附加到TPM上,TPM可以真正记录并报告平台的配置,TPM的防篡改特性及其植入的加密协议使其能够充当专用于此平台的TTP。用户可以使用它生成的信任...

triaslab的博客 366

【基于 CasADi 的欠驱动无人船实时非线性模型预测控制(NMPC)实现 Visual Studio 2022 C++】

本文介绍了基于CasADi和IPOPT在Visual Studio 2022 C++环境下实现的欠驱动无人船实时非线性模型预测控制(NMPC)方案。文章详细阐述了NMPC基本原理、欠驱动无人船动力学模型(包含状态变量和控制变量定义),并给出了C++实现的核心代码框架。该方案通过显式引入系统动力学模型和约束条件,在每个采样周期滚动优化控制序列,有效解决了欠驱动无人船的轨迹跟踪与避碰问题。文中还提供了VS2022配置CasADi环境的详细步骤,包括预编译包下载、工程属性设置等关键环节,为工程实现提供了完整的技术

vor234的博客 651

YOLOv11 改进 - 特征融合 | SSFF+TPE+CPAM 协同,ASF-YOLO 三重模块破解密集小目标分割难题

本文介绍了基于注意力尺度序列融合的ASF - YOLO模型在YOLOv11中的结合应用。ASF - YOLO旨在实现准确快速的细胞实例分割,结合空间和尺度特征,引入SSFF模块增强多尺度信息提取能力,TFE模块融合不同尺度特征图,CPAM整合前两者以关注信息丰富通道和小物体。我们将ASF - YOLO相关模块集成进YOLOv11,替代原有的部分特征融合模块,实现更高效的特征提取与融合。实验证明,YOLOv11 - ASFYOLO在细胞实例分割任务中表现出色,展现了该模型在深度学习中的广泛应用前景。

魔改工程师的博客 1256

在云中利用开源软件进行开发以提高创新能力

企业可以在自己的云平台上利用开源软件开发应用程序以提高创新能力,而无需为创新支付更多的费用。 企业可以在自己的云平台上利用开源软件开发应用程序以提高创新能力,而无需为创新支付更多的费用。 在大多数企业中,最主要的成本是人力资源。但是通过智能地利用开源软件,可以显著降低成本,即拥有GitHub的用户群能够为企业“免费”工作。但GitHub有6500万个注册用户帐户,必须假设其中大多数成员是开发人员。如果围绕GitHub巧妙地构建,实际上可以让这些开发人员都成为企业的人力资源,从而使企业的工作效率远远超过

Free雅轩的博客 154

SAP 替代关系完全替代简介

这里产生了成品物料的计划订单,我们查看计划订单中BOM的变化,如下图可以看到物料的需求仍然落在了优先级为1的这个302300005555这个物料上面,并没有考虑到302300006666的这个库存,和我们理解的MRP的完全替代不一样,按我们的理解需求应该是要落在302300006666这个物料料,但是MRP计算后并没有这样进行分配。最近用户在对长周期物料进行备料的时候又提出替代料的问题,主料库存不足的时候需要考虑替代料的在途库存,经常会忘了SAP标准的替代料逻辑,这次一次性把这个逻辑写清楚。

我小时候很黑的博客 1739

云原生平台:让应用程序在云中更好地运行

云原生平台特点、优势、挑战、发展前景

m0_61677543的博客 496

学Simulink——基于Simulink的单相PWM整流器PI电压外环+电流内环控制建模示例

本文详细介绍了基于Simulink的单相PWM整流器双闭环控制仿真方法。通过电压外环PI控制器调节有功功率生成电流指令,电流内环PI控制器实现正弦电流跟踪,最终达到输出电压稳定(400V±2V)、输入电流THD<3%、功率因数>0.99的目标。文章包含系统架构、数学模型、Simulink搭建步骤(主电路、PI控制器、SPWM调制等)及三种典型工况的仿真验证,并给出电感设计、数字实现等工程实践要点。该方案克服了传统整流器高谐波、低功率因数的问题,为绿色电源开发提供了可验证的仿真模型。

xiaoheshang_123的博客 74

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

在云中更快地开发和部署

通过 IBM 进行企业云应用程序开发和交付, 使您的工作更为简单。我们细心处理 细节,使您可以集中精力进行创新。 使用我们经过验证的应用程序模式,更快地构建应用程序。或者,使用我们的开发人员套件(英文),创建您自己的模式。使用以上任何一种方法,您都可以快速部署到公共云或私有云。我们还对 DevOps 进行了集成,以便您的开发和部署团队能够在持续的交付周期中更好地合作。 因此,无论您开发新应

锋行天下 626

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

在 AWS 上如何实现业务关键型应用程序的现代化,通过在云中进行信息管理建立持久的竞争优势

将应用程序管理外包给 OpenText 的信息管理应用程序专家,可以减轻您的 IT 团队管理软件频繁更新和升级的负担,同时确保用户始终使用最新版本的信息管理解决方案,提高员工生产力并将宝贵的资源转移到更高价值的业务活动和创新中。将您的 OpenText 信息管理工作负载迁移到 AWS 上的托管服务,可以让您专注于您的业务,并确信您的信息是安全的、受保护的,并且始终在您需要的时间,以您需要的方式使用。OpenText 的信息管理解决方案可释放您的业务信息资产的价值,并创造获得竞争优势的新机会。

qq_43653083的博客 896

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

云之旅——将复杂的分析应用程序迁移到云中

医疗保健服务商Optum公司首席工程师Bill Schneider在最近举办的Interop 2020会议中发表演讲,其报告题目为“我们的云之旅如何将传统应用程序迁移到AWS云平台”,其中讨论了该公司团队如何应对这些挑战的经验。因此,为了支持更多的客户,Schneider和团队将不得不添加更多的服务器以提供更多的可用内存。Schneider表示,与内部部署版本的应用程序相比,这意味着效率的巨大提高,为此,团队使用IaC工具(如Puppet)来协调一些管理任务,但在其他方面依赖于人工的工作流程。...

ksy_com的博客 198

云中数据管理是谁的责任?不得不说的云中真相……

关于云的真相,一个好消息和一个坏消息,你想先听哪个? 好消息是,Veritas的调研显示,全球56%的企业普遍具有“云端优先”的意识,并在部署新的应用程序和管理工作负载时,将多云环境作为业务战略的重要组成部分。 坏消息是,企业对公有云数据管理的理解还存在误区,在将本地数据与工作负载迁移到云端的过程中,面临着种种难题和痛点,例如如何直观查看数据,以简单经济的方式将数据迁移

986

我可以做些什么来提高应用程序的可用性?

目录 项目#1——有状态服务 项目#2——紧密耦合 项目#3——启用横向扩展 项目#4——将设置移出应用程序的每个部分 项目5——建立自动部署管道 项目#6——监视、监视、监视 项目#7——控制配置 项目#8——消除环境的“独特性” 项目#9——开始实现可用性模式 项目10——记住这是一个不断发展的过程 在本文中,我们探讨了为什么应避免或从应用程序中删除以下内容:状态服务,紧...

寒冰屋的专栏 696

CI / CD即服务:在云中进行持续集成和交付的10种工具

云和持续集成 (CI)是天生的匹配。 尽管云使我们摆脱了安装和维护物理服务器的痛苦,但持续集成可以自动消除构建,测试和部署代码的痛苦。 如果两家公司都希望把工作从开发团队的肩膀上解放出来,那么只有将它们结合起来并一步一步消除更多的麻烦才有意义。 持续集成服务很多,它们至少在抽象的意义上都做同样的事情。 它们以一系列任务(例如编译或测试)开头,这些任务必须在世人了解您的新软件的天才才能完成。...

cxt70571的博客 571

[如何在云中高效使用Couchbase:安装、设置与高级用法]

Couchbase 是一个功能强大的工具,通过本文介绍的安装、设置、缓存和信息存储功能,您可以构建高效且可扩展的应用程序。要深入学习,请参考官方文档或相关教程。

tt_jishu的博客 454

251、云中入侵检测系统的分类与应用

本文详细介绍了云环境下的入侵检测系统(IDS)分类,包括基于租户虚拟机、虚拟机监控器、网络和分布式IDS的特点、应用场景及技术挑战。通过实际案例分析,探讨了各类IDS在云安全中的应用,并提出了未来的研究方向和技术解决方案。

algae的博客 912
上一篇: Amazon EC2 使用操作筆記(使用Elasticfox) (转)
下一篇: MySQL修改root密码的各种方法整理
xinlanzero
博客等级 码龄25年 10粉丝 132原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值