使用ADMT v3.0 域迁移 账户

两台域控制器实现ad帐号的迁移 两台域控制器实现ad迁移的方法如下:       利用Microsoft   Active   Directory   Migration   Tool可以在两个独立的AD域之间迁移用户、组、计算机等账号,其中2.0版可以实现迁移用户账号密码,本文档描述了如何在两个独立的Win2K   AD域之间实现迁移AD用户账户、密码的步骤。   (win2003也实用)  操作步骤     1、 在目标 阅读详情

ADMT  Ver3优于Ver2,用Ver3可避免一些操作错误。
**建议安装Windows Resource Kit Tools,其中的acctinfo.dll对验证账户SID_histroy很有帮助。
****
具体用法:
            安装Rktools后,在其目录下的acctinfo.all复制到”%windir%/system32/”     下
            开始〉运行(Alt+R)输入:regsvr32  %windir%/system32/acctinfo.dll”
            卸载: ”regsvr32 /u ……”
**
视情况可选安装ADAM,具体工具使用方法可登陆微软Technet或工具自带帮助文件。

**
我用的Virtual PC2007搭建的虚拟环境
**本步骤是以吕老师实验说明为基础,并结合ADMT v3.0帮助文档写成,所有步骤本人已经验证通过。

环境
 
   三台Windows server 2003 SP2 Ent域服务器,两台Windows XP perfessional SP2客户端,在一个网络192.168.100.0/24中。
目的:把一个域中的用户和组迁移到另一台域中,保证登录密码不能变,访问权限不能变。

下面开始这个试验的细节步骤。请仔细阅读。

1.
    
三个域,分别是xnycool.com、new.com和old.com。(我这里做xnycool.com的DC是为了做网关,其实网关指向自己也应可以,但其他实验也要用,就做了;为了方便记忆,把源域配置成old.com,目标域配置成new.com,,希望大家能看懂 J)。
域控制器分别是:dc.xnycool.com>Gateway domain controller;olnewdc.old.com>source domain controller.和newdc.new.com>destination domain controller.
在很多情况下,都是从windows2000 server迁移到windows server 2003,不过这两种环境下的操作没有太多的不同。
    
两台客户机,都安装xp sp2 cn.以后我们将配置成oldxp.old.com和newxp.new.com。
具体配置如列表1:
 
 
 
 
 
 
 
   
  VPC
dc.xnycool.com
(win svr 2003)
  olddc.old.com
 (win svr 2003) 
  newdc.new.com
  (win svr 2003)
  oldxp.old.com
 ( xp)
  newxp.new.com
 (xp )
  IP
  
192.168.100.1/24
  192.168.100.10/24
  
  192.168.100.100/24
  
  192.168.100.11/24
  
  192.168.10.110/24
  
  Admin password 
  P@ssw0rd
  P@ssw0rd
 P@ssw0rd
  Null
  Null
  DNS
127.0.0.1
  127.0.0.1
  
  127.0.0.1
  
  192.168.100.10
  
  192.168.100.100
  
备用 DNS
Null
192.168.100.100
192.168.100.10
这是第 4 步的设置
    因为我用的重新封装,所以密码设成一样了,注意DC的密码复杂度的要求。PC没有设置密码。
    
安装AD的时候,连同DNS一起安装 (AD,WINS,DNS,DHCP)

2.

    
在系统安装基本完成后添加一些OU,user, group。
列表2:
   
  
  olddc.old.com
  
 newdc.new.com
  
  OU
  
 oldou
  
  newou
  
  User
 password 
 olduser0, olduser1,olduser2,olduser3
  Olduser!!
  newuser1
  Newuser!!
  Security group
  
  oldgroupp
  
   
  
    把olduser1,olduser2和olduser3添加到oldgroup中
3.
    
把两台PC分别加入域,并且用各自域的administrator登入。
在olddc.old.com中新建文件夹oldgroup并在其中新建oldgroup.txt,赋予oldgroup组 Full Control,
    
再新建文件夹onlyuser3,并在其中新建olduser3.txt,赋予olduser1,olduser2 Readonly和olduser3 Full Control。
用olduser*分别登录oldxp,在oldgroup.txt和olduser3.txt中写入: “olduser*在迁移前修改”.(只读的当然不能改了),保存.
这里olduser0是验证权限用,其余四个用户(olduser1,olduser2,olduser3和newuser1)用于验证SID History。
4.
    
配置olddc和newdc的dns,设置条件转发,如表1。这一步在接下来的信任域中是很有用的。

5.
    
在两台DC中插入windows server2003系统盘,安装SUPPORT/TOOLS/ SUPTOOLS.MSI,这其中有接下来需要的程序命令netdom。这个命令用于配置域信任属性。在newdc.new.com中安装Active Directory Migration Tool v3.0,并且默认安装MSSQL server Desktop Engine。(一般DC上不会安装SQL,如果安装了就使用已有SQL吧),建议在olddc上也安装,因为要用到密码迁移服务,安装完后重启电脑。

    
好了,所有的准备工作都已经做完了,接下来就开始作迁移了。以上的准备工作都是相当重要。一定要仔细看步骤,认真对照。

6.
    
提升两台DC的域功能,在AD域和信任关系中右击域控制器,选择提升域功能级别...可以提升到windows2003,但提升到这个级别是不可逆的。


7.
   
在new.com中添加old.com的信任关系。在AD域和信任关系中,展开ADST(AD域和信任关系) 右击new.com, 选择属性。在信任列表中点击新建信任 > 下一步 > 
输入old.com, 下一步>双向, 下一步> 只是这个域>全域性认证>下一步 

输入与管理员密码:P@ssw0rd , 下一步 > 下一步 >
从提示信息可以看到trust建立完成, 下一步
>
这里询问方向,这里我们要使用双向信任直到最后完成。

    
最后会弹出一个消息对话框说当启用外部信任后SID过滤就启用了。在后面的用户迁移中我们要关闭这个功能。
    
其命令行是:netdom trust TrustingDomainName/d:TrustedDomainName /quarantine:No/uo:domainadministratorAcct /po:domainadminpwd(ADMT帮助文件中有)

    
完成以上的步骤可以用一条命令,在newdc.new.com中, cmd输入:
netdom trust old.com /uo:administrator /po:P@ssw0rd /d:dist /ud:administrator /pd:P@ssw0rd /add /twoway /enablesidhistory

8.
    
在做用户迁移中需要对方的administrator权限,所以要把这两个域的administrator用户或者domain admins组加入到对方的administrators组中,建议选择加入domain admins组,administrator也是这个组中的成员。



9.
    
在迁移密码的时候需要生成一个数据库,.pes文件,用于存放密码。在newdc.new.com的cmd中输入命令:
admt key /option:create /sourcedomain:old.com /keyfile:c:/keyfile /keypassword:password(
这个密码可有可无 )
完成后,在C盘中就会生成keyfile.pes这个文件,然后把这个文件复制到olddc.old.com的C:/下,可以用共享的方法。在这里我对数据库文件创建了个密码。这个密码可有可无。


10.
    
现在就要开始在olddc.old.com中安装PES(Password Export Server)服务了,这个服务用于域间资源迁移,在整个迁移过程中其核心作用。现在来安装PES(pwdmig.msi)。这个安装文件在newdc.new.com中,路径是:C:/WINDOWS/ADMT/PES/。安装ADMT后才有。

     
在说明一点这个程序在系统光盘中也有,路径在/I386/ADMT/PWDMIG。这个是2.0版本的,测试下来和3.0不兼容。

     
开始安装PES,


    
直至安装完成提示重新启动。
    
如果你没有在9中设置密码,密码提示框是不会出现的。建议选择: new/administrator登陆,这样在newdc迁移过程中能直接读取olddc中数据库里的信息。
重启后,PES默认是不自动启动的,这需要手动让它运行。
    
打开services.msc,右击Password Export Server Service, 然后点 Start。现在PES才开始运行。注意,迁移完所有的资源后,关闭他,其实重启下olddc就可以了。


11.
    
接下来回到newdc开始做迁移了。我先迁移哦oldgroup,先迁移组或成员,对结构关系才不会改变。打开AD迁移工具。右击Active Directory迁移工具,点组账户迁移向导。
下一步>源和目的不能选错>下一步>从域中选择组>添加 >输入 oldgroup>确定 >
选择
newou>
这里要勾选迁移 SIDs 到 目标域,这是我们的目的。


next
下去后会弹出三个tip,一一确定,分别是询问开启源域的审核,目标域的审核,和在源域 DC中创建SOUR$$$组。接下来就是输入old.com的管理员用户名和密码,下一步在Object Property Exclude中询问是否需要排除某些属性,默认不排除任何属性, 下一步 
随后的 冲突管理中询问当出现冲突的时候采取的策略,一般来说当迁移到一个新安装的dc中,是不会出现冲突的。这里按照默认的选择,下一步
到此就完成了向导, finish. 结束后,系统提示迁移完成,可以查看相应的log,并可以在newou中查看结果

oldgroup
已经迁移过来了。迁移过来了是否就能同以前一样使用呢?我们要测试才知道。

12 .
    
在此之前我们在olddc.old.com中用建立了两个共享文件夹,其权限参考3。在oldgroup组中的用户对oldgroup共享文件夹有完全权限。现在我们把newuser1加入到oldgroup中,看看newuser1是否能修改oldgroup.txt。通过网络邻居访问oldgroup,发现没有足够的权限。其原因是,当建立域间外部信任的时候,SID筛选会自动启用,只有关闭SID筛选功能才能访问。
在newdc.new.com中输入:
 
Netdomtrust old.com /domain:new.com /quarantine:no /usero:administrator /passwordo:P@ssw0rd

好了现在再看看,能不能访问了

组oldgroup的SIDHistory验证结束。

13 .
    
现在来迁移用户同样右击,点用户账户迁移向导.前面设置和组迁移操作无异,

当操作到这里,注意选择,选择迁移密码。如果选择生成复杂密码,会把新的密码写入一个文件中。以后登录就是用生成的新密码,而不是原来的密码。就违背了我们当初的要求。下一步

如果出现与PES连接不上,说明Password Export ServerService没有手动开启或正常安装。参考 10

确认选中迁移用户 SIDs 到目标域。

接下来根据自己的情况选择吧。

迁移后,用olduser1登录到newxp,访问共享文件。

能完全控制了。查看共享文件夹的属性发现,用户也更改了。

说明用户彻底迁移过去了。
在olduser登录new域时,注意到用户登录后需要更改密码了。这是迁移策略所致,迁移日志中记录已禁用“密码永不过期”。查看下账户选项 .

如果不希望下次登录需要修改密码,修改其属性。


14 .
    
迁移计算机。这个功能不好用也不常用。当需要迁移计算机的时候,只需要重新在加入目标域就可以了。如果是olddc,迁移后重新安装系统并加入域即可。然后把修改client的DNS指向到newdc就可以,即192.168.10.5。

15 .
    
所有的这些都完成了,就把信任域关系给删除。


    
好了,现在彻底完成这项试验了。

16.

   关于组策略的所有设置,迁移后将不会变,用户配置文件在计算机迁移后仍可用。
   比如:olduser1在迁移前在oldxp上自动生成olduser1文档,用户和计算机都迁移后,登陆会慢些,自动生成olduser1.NEW文档,olduser1用户只能打开这两个文档,我想这就是解决SID历史过渡问题。

本文出自 “夕石” 博客,请务必保留此出处http://xnycool.blog.51cto.com/72572/43971

41、从 Windows 2000/2003 迁移到 Windows Server 2008 指南 本文详细介绍了从 Windows 2000/2003 迁移到 Windows Server 2008 的完整指南,包括提升森林功能级别、移动 AD 集成 DNS 区域到应用程序分区,以及使用 Active Directory 迁移工具(ADMT v3.1)进行多域合并迁移的具体步骤。同时提供了迁移流程图、步骤对比表格、注意事项与常见问题解答,帮助管理员顺利完成迁移工作,并充分利用 Windows Server 2008 的新特性。 阅读详情

相关推荐

12、Windows系统用户、组、计算机管理及系统恢复与Web服务指南

本文详细介绍了Windows系统中用户、组和计算机的管理方法,涵盖账户创建、权限分配、自动化操作及故障排除,并深入讲解了系统恢复策略与Web服务管理。内容包括使用Active Directory Users And Computers、命令行工具及ADMT进行账户迁移,通过Windows备份和影子副本实现数据恢复,以及IIS 6.0的安装、配置与元数据库备份。结合流程图与实际操作步骤,帮助管理员提升系统安全性、可靠性与运维效率。

2w3e4r5t6y的博客 56

ADMT的使用

ADMT(Active Directory Migration Tool)可用于在两个域之间移植用户,组已经计算机服务等信息。其安装文件位于/i386/ADMT下,缺省安装即可。使用ADMT前必须确保两个域之间能互相ping通,而且目标域必须是native mode的。你可以通过管理工具-〉ADUC,右键FQDN,选择raise domain functional level,然后从下拉框中选

vivian315bj的专栏 3495

60、多域管理、信任关系与目录业务连续性

本文深入探讨了多域环境下的活动目录管理、信任关系配置及目录业务连续性维护。内容涵盖多域设计原则、ADMT迁移工具的应用、各类信任关系(如森林信任、外部信任、快捷信任)的特点与配置方法,并通过实际操作示例和案例分析帮助读者掌握跨域认证与资源访问的实现。同时,强调了目录服务的高可用性、备份恢复、性能监控以及主动式管理在保障业务连续性中的关键作用,为IT管理员提供了系统性的实践指导。

n8m7b6v5c4的博客 43

使用ADMT实现域用户和组的迁移

在windowsserver2008的AD维护工作中,我们可能需要将当前域的用户账户和组转移到另外一个域中(这个动作我们称之为迁移)。在雅利安星际疫苗接种公司工作的windows网络管理员号称不重疫苗也能顶的灵灵狗同志,正在为一件棘手的工作事件发愁。雅利安公司因为研制出可以成功抵御十全星际流感的疫苗,在整个银河系名声大震,巴斯股(3009年最火爆的星际股市)也一路狂涨...

weixin_33982670的博客 759

保姆级教程:用Python脚本一键把选股结果导入通达信自选股(附完整代码)

本文提供了一份详细的Python自动化教程,教你如何将选股结果一键导入通达信自选股。通过解析通达信文件结构、编写Python脚本实现股票代码转换和批量导入,大幅提升量化交易效率。教程包含完整代码示例,特别适合使用通达信(TDX)的投资者和量化交易开发者。

weixin_30915951的博客 359

Hypermesh静力学仿真分析与模态分析-02

hypermesh中对较复杂实体进行静力学分析和模态分析,包含材料属性添加,载荷设置等等

Look_forward_的博客 6780

ADMT3.1快速迁移域用户账户和组

在windowsserver2008的AD维护工作中,我们可能需要将当前域的用户账户和组转移到另外一个域中(这个动作我们称之为迁移)。在雅利安星际疫苗接种公司工作的windows网络管理员号称不重疫苗也能顶的灵灵狗同志,正在为一件棘手的工作事件发愁。雅利安公司因为研制出可以成功抵御十全星际流感的疫苗,在整个银河系名声大震,巴斯股(3009年最火爆的星际股市)也一路狂涨...

weixin_34418883的博客 188

【机器人开发】四足机械狗(并联结构)URDF建模与Simscape仿真全流程解析

本文详细解析了四足机械狗(并联结构)从URDF建模到Simscape仿真的全流程开发。内容涵盖SolidWorks建模要点、URDF文件导出与优化、Matlab/Simscape环境搭建,以及并联机构特有的运动控制和步态规划实现,为机器人开发者提供了一套完整的解决方案。

weixin_30642561的博客 529

使用AD迁移工具 ADMT3.1对域进行迁移 ------本域

转自:http://angerfire.blog.51cto.com/198455/231185在windows server 2008 的AD维护工作中,我们可能需要将当前域的用户账户和组转移到另外一个域中(这个动作我们称之为迁移)。在雅利安星际疫苗接种公司工作的windows 网络管理员号称不重疫苗也能顶的灵灵狗同志,正在为一件棘手的工作事件发愁。雅利安公司因为研制出可以...

weixin_34107739的博客 368

ROS2中间件选型指南:FastDDS与CycloneDDS零拷贝机制对比与实战

在机器人开发中,通信中间件是连接分布式节点的核心纽带,其性能直接影响系统的实时性与可靠性。DDS作为ROS2默认的通信标准,通过发布订阅模型和QoS策略,为高频大带宽场景提供了灵活的数据分发能力。并行计算与高性能传输的需求,推动了零拷贝技术的演进——从传统序列化到共享内存乃至指针传递,旨在减少数据复制开销、降低延迟。在激光雷达点云、相机图像等场景下,中间件的选型尤为关键。FastDDS凭借与ROS2的深度集成和丰富文档成为入门首选,而CycloneDDS在低延迟和资源占用上表现更优,借助iceoryx实现了

weixin_28726391的博客 259

什么事LLVM和Clang?Clang与GCC有什么区别?Clang如何使用?

这个问题主要讲Xcode编译器的认知,在学习iOS之前有必要学习一下Objective-C的编译环境。 在了解LLVM和Clang之前,先得了解一下什么是编译器。 编译器是一种计算机程序,它将某种编程语言(高级编程语言)写成的源代码转换成另一种编程语言(低级编程语言)。一个现代编译器的主要工作流程为:源代码->预处理器->编译器->目标代码->链接器->可执行程序...

Welcome~ 9724

ADMT3.1快速迁移域用户账户和组[为企业维护windows server 2008系列十四]

在windows server 2008 的AD维护工作中,我们可能需要将当前域的用户账户和组转移到另外一个域中(这个动作我们称之为迁移)。 在雅利安星际疫苗接种公司工作的windows 网络管理员号称不重疫苗也能顶的灵灵狗同志,正在为一件棘手的工作事件发愁。 雅利安公司因为研制出可以成功抵御十全星际流感的疫苗,在整个银河系名声大震,巴斯股(3009年最火爆的星际股市)也一路狂涨。同时,兼并了...

weixin_34377065的博客 311

(四)C++自制植物大战僵尸游戏启动流程

鼠标左键单机VS2022上方工具栏中进行项目启动。第一次启动项目需要编译项目中所有代码文件,编译生成需要一定的时间。不同性能的电脑需要消耗的时间差别可能较大,通常在几分钟到几十分钟之间。编译成功后会自动启动运行游戏。qi编译成功后自动启动运行游戏如下图。

尔灵尔亿的博客 2466

Active Directory域控制器升级迁移实战指南

Active Directory(AD)作为企业身份认证的核心服务,其域控制器升级迁移涉及SID唯一性、GPO继承等关键技术要点。通过ADMT工具实现账户迁移时,需特别注意密码迁移密钥生成和SID历史处理。组策略迁移中路径引用和CSE版本兼容性是常见痛点,合理的预迁移检查清单和PowerShell脚本能有效降低风险。本次实战采用并行部署方案,在200+用户环境中验证了迁移后权限继承、DNS记录同步等关键指标,为AD升级提供了可复用的工程方法。

weixin_33946605的博客 522

Python数据可视化 Pyecharts 制作 Map 地图

大家好,我是Mr数据杨。想象一下,作为一名军师,如诸葛亮或郭嘉,'Map’就如同那战争的沙盘,兵马行动的轨迹,都需要准确的地图作为基础。‘基本设置’,就如同摆设这张战争沙盘,规定棋子的起始位置。‘数据配置选项’和’地图数据项’,就好比是军师们手中的情报,了解各路诸侯的兵力、粮草、地形等重要信息,以便于他们更好地布局。‘Demo’则代表着练兵之地,军师们可以在此基于已有数据,试验各种战术。

Mr数据杨 4万+

学Simulink--基于机器人与自动化系统的场景实例:六自由度机械臂的逆运动学控制仿真

摘要:本文详细介绍了在Simulink中实现六自由度机械臂逆运动学控制的仿真方法。通过构建包含机械臂模型、路径规划器、逆运动学求解器和控制器等模块的系统,利用MATLAB Robotics工具箱进行建模。文章逐步讲解了从模型创建、轨迹规划、逆运动学求解到控制器设计的完整流程,并提供了性能评估标准。该方法能有效验证逆运动学算法,优化机械臂控制策略,提高操作精度和效率,为机器人自动化系统开发提供实用参考。

xiaoheshang_123的博客 230

PowerShell 之 NTFS

不是脚本开发者,我不是程序编写者,我只是个搬运工。感谢强大powershell module,感谢伟大的codeplex.com,一步小心让我又找到了一个powershell module。利用这个module,我可以使用PowerShell做文件服务器的迁移哦。 首先,当然得附上module的链接:https://ntfssecurity.codeplex.com/ 先介绍,文件服务器迁

MMMMMMELODY的博客 1334

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Windows Server 2008 R2 开箱与配置全指南:从安装到核心服务部署

服务器操作系统是企业IT基础设施的核心,其核心原理在于通过集中化的资源管理、安全策略和服务角色提供稳定可靠的计算环境。从早期的Windows Server版本到现代的云原生架构,操作系统的演进始终围绕提升管理效率、增强安全性和优化资源利用展开。在技术价值层面,掌握经典服务器系统的部署与管理,不仅能帮助理解现代分布式系统的设计思想,更是处理遗留系统、进行平滑迁移的必备技能。特别是在企业应用迁移、历史环境复现和IT技能传承等场景中,对Windows Server 2008 R2这类经典系统的深入理解显得尤为重要

weixin_33717117的博客 370

深度学习工具包 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&#39;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(&#39;DeepLearnToolbox&#39;));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(&#39;state&#39;,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&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,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 = &#39;sigm&#39;;%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, &#39;Too big error&#39;);```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(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;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)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;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, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% 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&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 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, &#39;Too big error&#39;);```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(&#39;state&#39;,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, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,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, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,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, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % 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, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % 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, &#39;Too big error&#39;);%% 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(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % 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, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

【数据结构-5】单链表的实现

单链表,具体来说是单向的、不带头的、不循环的链表。链表由一个一个节点组成,每个节点分为数据域和指针域,数据域存放数据,指针域存放下一节点的地址。这样,就可以根据指针域中的地址找到下一个节点,节点就串起来了构成了单链表。

weixin_44218929的博客 199

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

C# 数据结构和特殊类型

.NET Core(现称.NET)提供丰富数据结构,优化性能与开发效率。日常开发首选List<T>和Dictionary<TKey,TValue>;高性能场景推荐Span<T>与Memory<T>减少内存分配;并发环境使用ConcurrentDictionary等线程安全集合;避免非泛型集合如ArrayList。

cccloveforever的博客 695

C++ 入门笔记(十七):list 入门 —— 为什么 list 不能 sort?

第17课:用大白话讲清 list 的双向链表结构、哨兵头、push_back 四步、迭代器封装、merge 与 splice 的区别,以及 vector 排序为什么常比 list 快。

wo_jack的博客 217

工厂设备接MES为什么慢:协议识别与点表配置自动化的技术拆解

工业现场设备接 MES 的周期主要消耗在协议识别与点表配置。本文拆解这条链路的四层结构,给出点表映射的数据模型、两种部署架构的对比,以及可直接落地的三项验收口径与校验代码。适合工控集成、MES 实施、设备联网方向的工程师。

emfuture的博客 396
上一篇: 为何我无法使用"添加或删除程序"功能?
下一篇: 从 ftp连接时227 Entering Passive Mode 到 FTP协议工作方式
jameswon
博客等级 码龄17年 7粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值