组建Linux与Windows CE网络

手把手教你用Docker在VPS上自建ZeroTier根服务器(附一键脚本) 本文详细介绍了如何通过Docker在VPS上自建ZeroTier根服务器,实现私有化SD-WAN网络控制节点的部署。从环境准备、Docker优化到ZeroTier Planet容器化部署,提供了一键脚本和常见问题排查指南,帮助用户快速搭建自主可控的虚拟网络环境,提升跨地域组网的稳定性和低延迟表现。 阅读详情
背景介绍

    Linux是一个类似于UNIX的操作系统,它起源于芬兰一个名为LinusTorvalds的业余爱好,但是现在已经是最为流行的一款免费操作系统。普通用户在Linux上办公、浏览网站、发送邮件以及玩游戏,许多大学和科研机构也Linux 来完成日常的计算任务。在商业领域,由于Linux系统价格低、安全性能高并且非常稳定,许多公司均将自己的服务器构建在Linux的基础上。根据国际商用数据公司(IDC)的统计,世界上大约有三分之一的网站服务器使用Linux作为操作系统。

    WindowsCE,根据微软公司在WindowsCE and PocketPC:FAQ中的定义,是操作系统开发商用以构建专有操作系统的一系列组件。原始设备制造商(OEM)可以向微软公司购买一个称为"WindowsCE平台开发系统"的集成开发环境并利用该系统组装和编译基于WindowsCE的操作系统,该操作系统包括一系列基于Windows CE 的组件以及开发商自行开发的应用软件或者是设备驱动程序。由于基于Windows CE 的操作系统具有与微软Windows 系列操作系统相类似的用户界面,因此受到众多最终用户以及开发商的青睐。目前WindowsCE已经被广泛应用在手机,掌上型电脑,个人数字助理,快译通以及电子字典等便携式设备上。

    长期以来,WindowsCE设备的用户还需要配备一台基于Windows9x/2000/NT的主机用于与Windows CE设备交换数据。在该主机上运行微软公司提供的WindowsCE服务软件,该软件通过一条RS-232数据线与WindowsCE设备建立起点对点连接,用户可以通过这个服务软件访问WindowsCE设备,但是局域网里面的其它计算机不能够访问该WindowsCE设备。如果需要使得局域网里面的其它计算机也能够访问该设备,则需要为该设备安装昂贵的专用网卡以及相关接入设备,是一种非常不经济的解决方案。

    本文利用RedHatLinux7.2操作系统自带的PPP服务器与WindowsCE设备之间建立起TCP/IP连接,然后在Windows CE设备上运行一个FTP服务器使得Linux主机能 够访问Windows CE设备上的资源。由于本方法基于Windows CE设备自带的RS-232数据线,不需要购买额外的任何设备,因此是一种经济实用的解决方案。此外,本文所介绍的解决方案,对Windows 9x/2000/NT主机同样适用。

连接Linux与Windows CE


    点对点数据传输协议(Point to Point Protocol, PPP)是一个通过串口线传送 IP数据包的协议。使用PPP协议,一台计算机能够通过串口线、电话线等通讯设备登陆到远程主机并且利用该主机或者是主机所在网络的资源。在点对点通讯中包括服务器和客户机两个部分,其中客户机向服务器请求网络连接,服务器接收客户机的请求建立网络连接并分配给客户机相应的网络资源。当网络连接建立起来以后,服务器和客户机之间是严格对等的。由于Linux操作系统通常都带有PPP服务器和客 户端程序,而Windows CE操作系统通常仅带有PPP客户端程序,因此我们使用Linux 主机作为PPP服务器,Windows CE设备作为PPP客户端。

    为了使用Linux主机作为PPP服务器,我们首先必须确认该主机上是否已经安装有PPP服务器程序pppd。通常该程序被安装在/usr/sbin目录下,我们可以利用下面 的命令查找该目录下是否存在这个文件:

ls /usr/sbin/pppd

    最近正式发行的Linux操作系统(例如RedHatLinux6.x/7.x)通常都已经预先安装有PPP服务器程序。如果Linux主机尚未安装PPP服务器,那么我们应该首先下载并安装一个PPP服务器程序,例如pppd2.3.4。安装该程序包可能还需要其它包的支持,由于应用程序的安装已经超出了本文的讨论范围,请感兴趣的读者自行参考 其它相关资料。

    确认PPP服务器已经安装在Linux主机上之后,我们需要对Linux主机进行一些必要的配置,为了进行这些配置我们需要拥有root权限。

建立文件/etc/ppp/peers/wince,内容如下:

/dev/ttyS0 115200 crtscts
        connect '/usr/sbin/chat -v -f /etc/ppp/wince.chat'
        noauth
        local
        90.0.0.1:90.0.0.2


建立文件/etc/ppp/wince.chat,内容如下:

TIMEOUT 3600
        "CLIENT" "CLIENT/c"
        "" "SERVER/c"


    在上面的两个配置文件中,使用wince 作为文件名仅仅是用来表示这个配置文 件是给一个Windows CE设备使用的。读者也可以自行选用其它的文件名,例如palm 或者是handheld等等,但是必须保证两个文件名是一致的。

    配置文件/etc/ppp/peers/wince指定使用串口ttyS0以115,200bps的速率与客户设备建立连接,noauth参数说明在客户机请求连接的时候不需要身份认证。在这个对等连接中,服务器(Linux主机)的IP是90.0.0.1,客户机(WindowsCe设备)的IP是90.0.0.2。配置文件/etc/ppp/wince.chat中的TIMEOUT参数指定服务器的等待时间,如果超过这个时间仍然没有接收到客户机的连接请求则终止当前的服务器程序。如果有读者需要更进一步的了解相关的配置,请自行参考chat以及pppd的相关文档。

    在WindowsCE设备端需要做的配置相对来说比较简单。由于WindowsCE默认的自动连接功能占用了该设备的串口,我们首先需要停止使用该功能。在开始菜单中选择"设置->通讯->PC连线"并将其设置为不启用与PC的连接即可停止该功能。然后我们重新建立一个连接,在开始菜单种选择"程序->通讯->连接管理器",然后点击"新建连接"图标,将新的连接命名为Linux并指定连接类型为"直线连接",在下一步中指定使用COM1进行连接并设置其通讯速率为115,200,在TCP/IP设置中指定该设备的IP为90.0.0.2。点击OK存盘以后该连接会出现在"程序->通讯"菜单里面。

    利用如下命令在Linux主机上启动PPP服务器:

    pppd call wince

    在Windows CE 设备上启动新建的连接(程序->通讯->Linux)之后,网络连线图 标会出现在Windows CE设备的任务栏上,Linux 主机则显示如下信息表明已经成功 与Windows CE设备建立起连接:

Serial connection established.
        Using interface ppp0
        Connect: ppp0 <--> ttyS0
        found interface eth0 for proxy arp
        local  IP address 90.0.0.1
        remote IP address 90.0.0.2


    我们还可以使用Linux 主机提供的ping命令来验证是否已经成功与Windows CE 设备建立连接:

    ping 90.0.0.2

    如果Linux主机已经成功的与WindowsCE设备建立连接,那么我们应该能够看到类似于下面的信息:

PING 90.0.0.2 (90.0.0.2) from 90.0.0.1 : 56(84) bytes of data.
        64 bytes from 90.0.0.2: icmp_seq=0 ttl=32 time=26.587 msec
        64 bytes from 90.0.0.2: icmp_seq=1 ttl=32 time=19.928 msec
        64 bytes from 90.0.0.2: icmp_seq=2 ttl=32 time=19.939 msec
        64 bytes from 90.0.0.2: icmp_seq=3 ttl=32 time=19.947 msec

基于Windows CE的FTP软件

    当我们成功的在Linux主机与WindowsCE设备之间建立起PPP连接之后,下一步应该做些什么呢?当然,我们需要一些合适的程序用来在Linux主机与WindowsCE设备之间进行文件交换。我们现在已经能够利用TCP/IP协议在Linux主机和Windows CE设备之间传输数据,很显然FTP程序是一个合适的选择。

    FTP(FileTransportProtocol,文件传输协议)是一种被广泛使用的在网络上进行文件交换的协议。由于数据传输可靠性的要求,FTP是一种基于TCP/IP的传输协议。在一个FTP会话中包括一个服务器端和一个客户端,客户端主动连接到服务器端并向服务器发送文件传输请求,服务器端等待客户端的接入并处理客户端的文件传输请求。

    PE FTP Explorer是非常流行的基于WindowsCE的FTP客户端软件,同时也是一个功能齐全的文件浏览器。与在PC机上常用的CuteFTP和WSFTP等FTP客户端相类似,用户能够利用鼠标(指针)放缩本地端和服务器端的目录树,上载或者是下载文件和目录,也可以对文件或者是目录进行改名和删除。这个软件可以从CEArchive网站(http://www.cearchives.com/ftp.html)获得。在该网站读者还可以找到另外一个很流行的FTP客户端vxFTP。

    FTP客户端软件的功能虽然已经非常的完备而且操作简单,但是仍然不可避免的要收到便携式设备窄小的显示器的限制。如果能够在便携式设备上建立一个FTP服务器,那么文件传输操作就可以在Linux主机上利用常用FTP客户端的进行。

    ftpsrv.exe就是这样一个基于Windows CE的FTP服务器软件。这个仅有28.5 KB 的小程序,除了不提供身份认证功能和Passive传输模式以外,能够处理大多数常见的FTP请求。利用微软提供的WindowsCE服务软件将ftpsrv.exe上载到便携式设备的任意目录下,启动该程序以后在任务条上会出现一个类似于一台计算机连接两个便携式设备的小图标。利用指针点击该图标以后会出现一个小小的控制窗口,在这里我们可以改变FTP服务器的端口号或者是终止该程序。

    ftpsrv.exe可以从http://pda.tucows.com/或者是http://www.oohito.com/获得。在这两个网站读者还可以找到更多有用的小程序。

其它

    如果有读者使用的是Windows 9x/2000/NT主机,那么也可以利用Windows提供 的直线电缆连接功能与Windows CE设备建立起PPP连接。

    例如:在Windows2000主机上,从开始菜单中选择设置->网络和拨号连接->新建连接。在随后出现的网络连接向导中选择直接连接到另一台计算机并将该机器配置为主机。选择合适的通讯端口并配置通讯速率以后,该主机作为PPP服务器等待客户机接入。同样,在WindowsCE设备上新建一个连接,指定合适的通讯端口并配置起通讯参数以后,即可与Windows主机建立起点对点连接。由于Windows主机已经配备了动态网络地址分配(DHCP)服务器,因此WindowsCE设备既可以使用实现指定的静态IP地址,也可以使用服务器实时分配的动态IP地址。但是,由于直线电缆连接所允许的最高传输速率为19,200bps,使用Windows9x/2000/NT主机作为PPP服务器似乎比不上Linux主机实用。

    如果将PPP服务器设置为网关,则局域网里面所有的机器都可以通过改网关访问已经连接到网络上的WindowsCE设备。在Linux主机上,可以通过ipchains将该主机设置成透明网关;在Windows 9x/2000/NT主机上,可以通过WinProxy等代理服务器软件将其设置为透明网关。如果有读者需要更进一步了解如何将Linux 或者是Windows主机设置为透明网关的方法,请自行阅读其它参考资料。
【信息科学与工程学】【通信工程】第八十六篇 通信网络设备及通信网络组网的所有学科知识01 编号001类型网络虚拟化与覆盖技术网络领域数据中心网络子领域大二层网络 / 网络虚拟化核心数学方程式/算法模型核心算法:VXLAN封装与解封装。关键在于24位VNI(虚拟网络标识符)到物理网络的三层IP地址的映射。封装:收到原始以太帧后,为其添加 VXLAN 头部(含 VNI)、外层 UDP 头(目的端口 4789)、外层 IP 头(源 IP 为本地 VTEP IP,目的 IP 为对端 VTEP IP)以及外层 MAC 头。解封装:对端 收到报文后,剥离外层头部,根据内层帧的目的 MAC 和 VNI 进行二 阅读详情

相关推荐

《LabVIEW ZYNQ实战指南》第6章>>案例解析:基于USB WiFi模块的ZYNQ无线通信部署与Linux RT开发

本文详细解析了如何为ZYNQ开发板部署USB WiFi模块,实现无线通信。通过LabVIEW Linux RT环境,利用封装好的驱动VI,开发者可轻松配置ZYNQ连接无线网络,摆脱网线束缚,实现程序无线部署与远程调试,为工业物联网应用奠定基础。

app77的博客 754

二手升腾网络计算机,瘦客户机终端网络计算机专用计算机

瘦客户机终端网络计算机专用计算机图形终端 - D9116终端  升腾D9116终端是升腾资讯推出的一款新型商用计算设备。该产品采用Intel Dothan 1GHz高速低功耗CPU,支持Windows CE.net版操作系统、Windows XP Embedded操作系统、Linux操作系统,它创新地结合了PC与网络计算机的双重优势,兼顾Unix应用系统、Windows应用和网络计算对客户机设备的...

weixin_39765280的博客 1219

使用JAVA代码转word文档之动态生成数据填充(图文详解)

今天跟公司对接了业务,根据业务需求,乙方需求文档是word格式的,而我们的数据是动态数据,每生成一份数据,就要以word的形式给乙方一份邮件!这就给了我们的工作一定的难度和挑战! 通过阅读资料,团队的帮助以及自我测试,终于实现了这个功能!因为在搜索资料方面,发现各位博主讲的比较模糊,自己碰到了很多bug,浪费了很多宝贵的时间,所以今天写了这篇文章,希望对自己以后或者他人有所帮助! 操作第一步:先准...

huaiyan 7719

读书笔记:Docker学习(二)入门以及安装

Docker 入门 Docker 是什么? Docker是一种操作系统级虚拟化技术(或者容器技术),相比较硬件级虚拟化技术它不需要虚拟硬件基础而是直接虚拟运行库来提供进程运行。 入门操作 安装 Docker Linux 前置条件 因为Docker 需要使用Linux 的CGroups 和 Namespace 功能,所以必须使用包含这两个功能的Linux 内核(内核版本&amp;gt;3.10,64位)。 ...

bloodycity的个人整理 195

VC Spyglass:Lint实战指南之TCL脚本自动化解析

本文详细介绍了如何利用TCL脚本实现VC Spyglass Lint检查的自动化流程。通过实战指南,从基础脚本编写到高级参数化技巧,帮助数字IC设计工程师摆脱手动操作,提升验证效率,并实现与CI/CD流程的集成。

h3i4j的博客 796

Camera metadata

Camera metadata

weixin_42136255的博客 2527

网络 || 物理层与数据链路层

广播风暴:就是大量的广播在交换机之间传输,消耗了所有的交换机的cpu和内存,带宽资源,导致正常的数据帧都不能转发了,网络越来越慢,最后数据发送不出去了。

qq_60271706的博客 1117

unity游戏开发日志(一)将mmd模型导入unity,并解决材质丢失的问题

unity音乐游戏开发,导入角色模型并解决材质问题

yizhigou1的博客 1761

PulseAudio深度实战:如何快速实现吉他环回录音与dmenu音频切换

在 `scripts` 这个实用脚本集合中,`audio-video/` 目录提供了两个高频刚需工具:`guitarrec` 一键实现吉他音箱环回录音(loopback recording),`audioswitch` 用 dmenu 快速切换 PulseAudio 音频输出设备。本文带你从零理解 PulseAudio 的核心概念,并学会这两个脚本的原理与用法,适合新手和普通用户。 ## 核心概

gitblog_00592的博客 160

告别第三方插件:官方Fused Library如何重塑Android库的合并与发布流程

本文详细介绍了Android官方推出的Fused Library如何替代第三方fat-aar插件,优化Android库的合并与发布流程。通过原生支持、智能依赖管理等优势,Fused Library解决了版本兼容性、依赖传递等核心痛点,提供了更稳定高效的开发体验。文章还提供了迁移实操指南和工程实践建议,帮助开发者顺利过渡到官方方案。

weixin_42561040的博客 252

ubunut 系统安装k8s集群

修改配置文件 kube-metrics-server.yaml 添加监控数据采集容器启动参数,启动 tls 证书验证,否则监控容器接口验证不通过,无法采集监控数据。kube-metrics-server.yaml 140行左右添加参数 --kubelet-insecure-tls。服务器添加配置(配置三台阿里云时间同步服务器作为时间源,本机作为时间同步服务器)客户端配置(第一个源选用集群内的 192.168.10.20 )时间同步配置文件参考如下。

weixin_57489252的博客 1328

Linux、Android、uCOS、uCLinux、VxWorks、WinCE等系统比较

Windows CE不仅继承了传统的Windows图形界面,并且在Windows CE平台上可以使用Windows 95/98上的编程工具(如Visual Basic、Visual C++、Visual Studio等)、使用同样的函数、使用同样的界面网格,使绝大多数的应用软件只需简单的修改和移植就可以在Windows CE平台上继续使用。它要求所使用的操作系统体积较小,内建有对中断的响应功能。它具有体积小、稳定、良好的移植性、优秀的网络功能、完备的对各种文件系统的支持,以及丰富的API函数等优点。

m0_73482095的博客 1732

YOLO26改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进

1️⃣ 什么!不知道如何改进模型⁉️ 本专栏已更新260多种不同的改进方法,所使用并改进的每一个模块均包含详细的模块分析、原理讲解、个人总结、多种改进方式以及完整的修改流程,所有改进100%可直接运行,性价比极高。2️⃣ 找不到合适的模块⁉️ 所有改进点均为近三年顶会,顶刊提出的先进算法,将其融入到中,并进行二次创新,新颖度高,创新度高,能够适应不同的任务场景。3️⃣ 不确定自己改进的步骤、结果是否正确⁉️ 订阅专栏即可进群享受模型训练、模型改进、论文写作、投稿选刊,从入门到论文的各种答疑内容,非常适合新手

Limiiiing的博客 6306

基于Torizon OS与TI AM62x的CRA合规嵌入式Linux开发实践

嵌入式Linux开发正面临安全合规与敏捷交付的双重挑战。其核心在于如何构建一个安全、可维护且能持续更新的软件系统。容器化技术通过将应用及其依赖打包成标准单元,实现了应用与底层系统的解耦,为嵌入式环境带来了隔离性、可移植性和简化的依赖管理。这一技术价值在工业控制器、医疗设备等对可靠性与安全性要求极高的场景中尤为凸显,它能有效应对软件供应链安全与远程维护的难题。随着欧盟网络弹性法案(CRA)等法规对产品全生命周期安全提出强制性要求,自动化漏洞管理与安全更新机制成为刚需。本文聚焦于将容器化与CRA合规要求工程化落

weixin_30411819的博客 323

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Mac地址全了解

近来在网上经常见有人问起Mac地址的问题,那么究竟Mac地址是什么?在现行的网络中,扮演什么角色呢?下面我们就一同来探讨一下关于Mac地址的知识。  什么是Mac地址1  Mac地址就是在媒体接入层上使用的地址,通俗点说就是网卡的物理地址,现在的Mac地址一般都采用6字节48bit(在早期还有2字节16bit的Mac地址)  前24位由是生产厂家向IEEE申请的

VGS® 研发笔记 2791

假人有限元模型

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

GoAhead Web Server的特性及技术

转载  :http://swanmsg.blog.sohu.com/120746729.html 最近一段时间,一直在搞嵌入式开发,公司一产品需要升级改造,结果发现应用的是Linux平台和GoAhead的web服务器,所以经过多方的了解,现把总结内容总结一下,大家一起和我来学习GoAhead吧。 1、 简介     廉价的硬件,功能强大的32操作系统,以及无处不在的因特网,它

fivedoumi的专栏 2978

深度学习工具包 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")

网络安全职业考证全攻略:从入门到专家的证书选择与备考指南

在信息安全领域,构建系统化的知识体系与证明实战能力是职业发展的核心。理解安全概念、风险管理原理和防御技术是基础,其技术价值在于为个人能力提供标准化、国际认可的证明,从而在求职、晋升和项目竞标中占据优势。应用场景广泛,从初级安全运维、渗透测试到高级安全架构与合规管理均需相应资质认证。本文聚焦CompTIA Security+、OSCP、CISSP、CISP等热门认证,深入解析其在不同职业阶段(入门、成长、专业、专家)的定位与备考策略,涵盖理论框架构建、实战能力锤炼以及国内国际证书的选择权衡,为网络安全从业者提

weixin_34245082的博客 446

从视口到全页面:agent-browser-cli screenshot 截图与 save-pdf 导出完全实践指南

agent-browser-cli 是一款面向 Agent 的浏览器感知与控制 CLI 工具,它通过 Chrome 扩展连接你的真实浏览器,保留登录态和 Cookie。本文聚焦它的两个实用命令:`screenshot`(页面截图)与 `save-pdf`(PDF 导出),带你从视口截图到全页面导出,一次掌握完整用法。 ## 一、为什么用 agent-browser-cli 做截图与 PDF 导出

gitblog_00230的博客 170

docker快速入门

Docker 是一个开源的应用容器引擎,允许开发者将应用及其依赖打包到一个可移植的容器中,发布到任何流行的 Linux 机器上,实现虚拟化。

andyyah晓波的博客 752

MAC地址说明

[size=large]近来在网上经常见有人问起Mac地址的问题,那么究竟Mac地址是什么?在现行的网络中,扮演什么角色呢?下面我们就一同来探讨一下关于Mac地址的知识。 什么是Mac地址?   Mac地址就是在媒体接入层上使用的地址,通俗点说就是网卡的物理地址,现在的Mac地址一般都采用6字节48bit(在早期还有2字节16bit的Mac地址)   前24位由是...

技术交流 207

史上最全最详细多种手机主流操作系统详解

史上最全最详细多种主流操作系统详解(经典,值得收藏) 2017-06-09 18:07 操作系统 一、手机操作系统 1 Android 谷歌安卓 这里写图片描述(https://img-blog.youkuaiyun.com/20180817223850566?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNjYyNzU1/font/5a...

qq_40662755的博客 1万+

Mac地址全了解- -

Mac地址全了解- -Tag: Mac地址    网卡的物理地址    什么是Mac                                           近来在网上经常见有人问起Mac地址的问题,那么究竟Mac地址是什么?在现行的网络中,扮演什么角色呢?下面我们就一同来探讨一下关于Mac地址的知识。  什么是Mac地址1  Mac地址就是在媒体接入层上使用的地址,通俗点说就

Welcome to Vick's home! 1349

Docker部署Redis:容器化实践与生产环境配置

容器化技术通过资源隔离和环境一致性彻底改变了传统应用的部署方式。Docker作为主流容器引擎,利用cgroups和命名空间实现进程隔离,配合镜像机制保证开发-生产环境的一致性。在数据库部署场景中,Redis作为高性能内存数据库,其Docker化部署能显著提升运维效率。通过官方Redis镜像可快速实现包括持久化配置、内存管理、主从复制等关键特性,特别适合微服务架构和云原生环境。实际部署时需注意生产级配置如RDB/AOF持久化策略、内存限额控制、网络隔离等核心参数,配合Prometheus监控可构建完整的高可用

weixin_34323858的博客 418

五大主流NAS系统深度横评:从群晖到飞牛,如何选择最适合你的网络存储方案?

网络附加存储(NAS)是一种通过网络提供集中化数据存储、备份和共享服务的专用设备。其核心原理是将存储硬件与专用操作系统结合,构建一个私有化的数据管理中心。NAS的技术价值在于解决了多设备数据孤岛问题,提供了比公有云更可控的隐私安全,并可通过容器化技术扩展为轻量级应用服务器。在家庭影音中心、团队文件同步、私有云盘及Docker应用部署等场景中,NAS正成为个人和小型组织的数字基础设施。本文聚焦于群晖DSM、威联通QTS、绿联UGOS、极空间ZOS及飞牛FNOS这五大主流系统,从系统架构、存储管理、软件生态、D

chubaisheng8627的博客 393

工业移动机器人(AGV/AMR)精准定位与无缝对接系统部署与验证全流程

在工业自动化和智能物流领域,移动机器人(AGV/AMR)是实现物料自动搬运、提升产线柔性的关键技术。其核心原理在于融合激光SLAM、视觉导航、UWB等多种传感器技术,实现厘米级的高精度定位与自主导航。这项技术的核心价值在于打通物理搬运与信息系统的壁垒,实现从任务下达到执行反馈的全流程自动化,从而显著提升物流效率、降低人力成本并减少人为差错。典型的应用场景包括制造业的产线物料准时配送、仓储中心的货物拣选与搬运,以及需要与生产线、输送线进行高精度物理对接的复杂场景。本文将以一个具体的工业移动小车项目为例,深入剖

weixin_34033624的博客 403

接上文,以下部分是lvs实施部分:LVS+mon安装配置

 1.   LVS安装配置1.1         软件包准备ipvsadm-1.24.tar.gzmon-0.99.2-1.2.el4.rf.x86_64.rpmfping-2.4-1.b2.2.el4.rf.x86_64.rpmperl-AOL-TOC-0.34-1.2.el4.rf.noarch.rpmperl-Convert-BER-1.31.01-1.2.el4

ZCatLinux --资讯与技术社区--Open Source World----Linux/Shell/DevOPS-- 1万+
上一篇: 红旗嵌入式Linux在海尔的成功应用
下一篇: 红旗成功为中国国际广播电台提供HA集群
zcatlinux
博客等级 码龄22年 56粉丝 760原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值