【转】嵌入式移动数据库Oracle Lite

AI时代C++工程师成长路线:2024-2026高性能计算与嵌入式AI技能栈规划 高性能计算和系统编程是支撑现代人工智能基础设施的核心技术。其原理在于通过底层硬件优化、内存管理和并行处理,最大化计算资源的利用效率,从而为大规模AI模型的训练和推理提供稳定高效的运行环境。在AI驱动的技术浪潮中,这种能力的技术价值尤为凸显,它直接决定了算法能否从实验室原型转化为可实际部署的工业级应用。具体到应用场景,无论是云端AI推理引擎的极致性能优化,还是边缘设备上资源受限的实时模型部署,都需要深入的系统级编程能力。本文聚焦于C++在AI基础设施与嵌入式AI两大方向的关键作用,为学习者规划一条从现代C++ 阅读详情


Oracle公司推出的嵌入式移动数据库系统 Oracle  Lite   10 g是一个可扩展的移动解决方案, 为移动和嵌入式环境应用的开发、 部署和管理 提供了强有力的支持。

Oracle  Lite   10 g为本地数据库与中心数据库的数据交换提供可靠和安全的运行环境, 它在无需用户干预的情况下和中心数据库进行自动数据同步, 这种数据同步是 双向的, 数据同步可以在企业数据库或者移动设备上发起。Oracle  Lite   10 g同时提供各种集中式管理工具, 实现应用程序、 设备和用户的管理。

Oracle  Lite   10 g主要由移动服务器 ( Mobile  Server) 、 移动关系数据库( Database   Lite) 和开发工具三部分组成。 

1 )移动服务器:移动服务器提供数据同步机制, 同时为应用程序、 用户和设备提供可扩展的部署和管理环境。  
  2 )移动关系数据库:移动关系数据库 Database  Lite 是客户端轻量级数据库, 支持 Windows   3 2 -b i t 、 Windows  Mobile 、 Linux以及 Symbian   OS等多种平台。Database  Lite 数据库不是一个小型的 Oracle数据库,而是专门应用于嵌入式设备的、 提供安全的关系数据库存储、 自管理和自调整的数据库。 

3 ) 开发工具: 开发工具为移动应用提供快速、 简单的开发环境。 

Oracle  Lite 移动应用系统包括 Oracle  Lite客户端、 移动服务器和移动服务器数据仓库。

Oracle Lite 客户端包括 Oracle Lite数据库、 同步代理程序、 设备代理程序和更新工具。同步代理程序为应用程序和数据同步提供支持, 设备代理允许管理员通过命令来远程管理设备, 更新工具支持新版本程序下载。 

移动服务器作为中间层, 为 Oracle Lite客户端和后台数据库进行同步提供运行环境, 同时提供应用程序、 用户和设备全生命周期的部署和管理。  
  移动服务器数据仓库以数据库表、 视图等形式存在于 Or a c l e 数据库中。 

Oracle Lite t e数据库中的数据是 Oracle 数据库的数据子集, 这个子集在移动设备中以“ 快照” 形式存在。当用户在离线状态下对Oracle Lite数据库中的数据进行更新后 , “ 快照” 通过日志文件来保存更新痕迹。  
移动服务器作为 Oracle Lite 数据库和 Oracle  数据库的应用中间件, 负责完成数据同步。所有对Oracle Lite 数据库的更新通过移动服务器提交到后台服务器, 同时Oracle Lite数据库也下载更新。数据同步执行时不需要独占数据库锁, 保证了客户端应用程序在持续访问本地数据库的情况下, 同时进行数据同步。 

 

数据同步的调度 
数据同步有以下三种调度方式。  
( 1 ) 在移动客户端执行名为 mSync的程序。  
( 2 ) 在移动客户端调用同步 API 。  
( 3 ) 预定义规则, 当规则被触发时自动执行预定义规则包括面向数据的规则和面向平台的规, 例如当客户端或者服务器的数据更新超过预定义的值, 或者当客户端移动设备的电量低于预定义的等级 。 

 

数据同步过程 
Oracle Lite 的数据同步过程采用异步的数据同步机制, 通过在移动服务器中的队列来收集和下载数据更新。

移动服务器 中后 台运行 的 MGP( Message Generator  and  Processor ) 进 程 异 步 地采 集 所有 Oracle Lite客户端的更新数据并提交到后台数据库的基表中, 然后对数据进行合并, 根据客户端的订阅情况, 下载到每个客户端。  
MGP进程同时管理两个队列, 即 IN队列和 OUT队列, 同步过程分两步进行。将客户端 Oracle Lite数据库中更新的数据放入到 IN 队列 , 同时从 OUT队列取得数据, 更新客户端 Oracle Lite数据库。将 IN队列中的内容提交到 Oracle数据库中的基表, 对更新进行合并, 将基表中的更新数据放入到客户端 OUT队列。 

Oracle Lite提供基于 web界面的移动管理器, 用于对移动应用程序、 设备、 用户和移动服务器

进行统一管理。通过移动管理器,管理员能够查看、 监控和管理各移动客户端。移动管理器支持应用程序管理、 用户管理、 系统管理、 同步管理和设备管理。 

1 ) 应用程序管理 
采用打包向导工具, 将应用程序打包并发布到移动服务器数据仓库。移动管理器允许从移动服务器仓库上传、 删除应用程序以及修改应用程序属性; 为应用程序分配组和用户, 通过设置参数来指定数据子集。 

2 ) 用户管理 
用户管理定义新用户和组, 为组和用户建立角色, 控制应用程序的访问权限。  
  3 ) 系统管理 
系统管理提供对所有移动服务器进行管理, 包括活动用户同步会话的详细信息, 动态设置跟踪属性; 允许管理员指定过滤条件, 指定 日志文件和跟踪文件的大小; 通过管理界面动态设置配置文件webtogo.ora中的参数。  
  4 ) 同步管理 
同步管理对用户同步结果提供详细的监控, 例如启动和结束时问, 上传和下载持续时间, 记录总数等; 监控和管理同步服务和性能, 跟踪同步历史,浏览同步信息, 监控 MG P的性能等。 

  5 ) 设备管理 
设备管理提供如何对设备进行配置以及远程管理这些设备上的数据和应用程序。支持远程检查客户端设备硬件和操作系统; 远程查询和修改应用程序配置参数; 客户端数据库信息恢复、 验证以及和后台数据库同步; 客户端设备锁定、 应用程序删除、 数据删除等。 

 

移动开发套件为开发移动应用程序提供快速开发和部署支持。移动开发套件提供 JDBC,ODBC,ADO.NET等 Oracle Lite数据库访问接口;支持同步 API支持Java、 C /C++ 和.Net语言; 支持 Oracle  J Developer   1 0 g 、 Eclipse 、 Intelljj 、Microsoft  Visual  Studio.Net 、Sybase  PowerBuilder  等开发环境。 

 

开发者可以使用Java ,.Net或者 C/C++语言建立传统的本地、 离线的应用程序, 应用程序开发模型如图 3所示 。Oracle Lite同时还提供 OC4Jserverlett 容器作为本地的应用程序服务器, 使用 applets或者 Jave  serverlets/JSP s , 支持开发无网络连接条件的基于 Web的应用程序。 

 

移动数据库工作台是一个图形用户界面工具, 该工具使用一系列预先定义的步骤, 在开发人员编写应用程序代码之前, 指导开发人员来指定发布项, 共享队列, 存储过程或者触发器, 以及用于在客户端数据库执行的数据定义语言。

 

打包向导是一个图形用户界面工具 , 为开发人员提供建立、 编辑和发布新的移动应用到移动服务器中提供支持。开发人员使用打包向导来指定应用程序元数据( 例如在 mobile  server 上的名称、 位置等) , 包含应用程序的文件集, 应用程序使用的发布模式等。 

 

开发及运行环境建立

数据库服务器和移动服务器可以是同一台主机 , 也可以不是 同一 台主机 。  
  1 ) 在数据库服务器上安装 Oracle 数据库。 

2 ) 在移动服务器上安装 Oracle Lite , 以及 MD K。 

3 ) 从 移动服
务器中复制针对特定PDA的Oracle Lite程序版本到 P D A 中, 该安装程序版本为自解压程序, 直接运行安装。 

4 ) 重新启动 P DA 之后 , 进 入 \oracle文件夹,  运行 其 中的 setup程序 , 出现如图 四所示 的界面 , 在该界 面中, 服 
务器 URL  为移动服务器的地址和端口号 , 用户为在移动服务器 中预先建立好的用户 。 

 

应用程序开发

Oracle Lite 支持Microsoft  Visual  Studio.Net开发平台, 同时 Microsoft  Visual  Studio.Net支持智能设备应用程序开发。在Microsoft  Visual  Studio.Net集成开发环境中, 新建工程, 引用 Oracle Lite 为.NET提供的开发库。 

欲访问Lite数据库, 先引入 Oracle .DataAccess.Lite命名空间, 该命名空间提供了一系列的类用以实现 Oracle Lite 数据管理功能 。 

OracleConnection  liteConn=new OracleConnection(“DataDirectory=\\Oracle;Database=zblite;DSN=*;uid=system;pwd=709”);

liteConn.open();
//  根据连接对象创建命令对象

OracleCommand cmd=(OracleCommand)liteConn.CreateCormmand();

  

// 将相关 S QI   语句赋给命令对象并执行 
cmd.CommandText=“update TZB_User  set fpassword=1”

cmd.ExecuteNoQuery();

 

应用程序 的发布和管理

应用程序的发布可使用打包向导工具或者移动管理器两种方式, 我们采用打包向导进行应用程序发布。 

 

使用打包向导工具, 将所有和应用程序有关的文件, 以及需要在移动终端设备上建立的数据表、序列、 视图等加入, 然后整体上传到移动服务器。定义在移动终端设备上建立数据表。在打包向导工具的最后, 是指定将应用程序发布到移动服务器

发布成功后, 在移动管理器中可以看到刚才发布的应用程序属性, 如图七所示, 此时可通过移动管理器来定义该应用程序的访问权限, 分配给用户或者组。

 

数据同步   

运行 P DA中的mSync程序, 录入移动服务器的地址、 端口号, 以及移动服务器中的用户名和口  令 , 系统则按照该用户名关联 的应用程序进行下载, 并根据同步选项将本地的Oracle Lite数据库和 Oracle数据库进行同步。 




原出处:http://www.cnblogs.com/quietwalk/archive/2010/04/03/1703852.html

Oracle Instant Client轻量级连接包快速部署指南 Oracle Instant Client 是一款轻量级的 Oracle 数据库客户端,提供了一系列的数据库连接工具,旨在简化开发和部署过程。由于它不需要安装,可以快速地集成到现有的应用程序中,是开发环境和云服务平台的理想选择。本章节将详细介绍其基础特性,并探讨它在现代数据库管理中的作用。在现代IT生态系统中,软件的轻量化正在成为一项至关重要的指标。轻量级软件指的是那些拥有较小安装包,消耗较少系统资源,且对配置要求不高的应用。它们通常易于部署、安装迅速、运行效率高,而且对老旧计算机的兼容性好。 阅读详情

相关推荐

Oracle lite 10g移动数据库使用指南

Oracle lite 10g移动数据库使用指南

嵌入式移动数据库Oracle Lite

Oracle公司推出的嵌入式移动数据库系统 Oracle  Lite   10 g是一个可扩展的移动解决方案, 为移动和嵌入式环境应用的开发、 部署和管理 提供了强有力的支持。 Oracle  Lite   10 g为本地数据库与中心数据库的数据交换提供可靠和安全的运行环境, 它在无需用户干预的情况下和中心数据库进行自动数据同步, 这种数据同步是 双向的, 数据同步可以在企业数据库或者移动设备...

weixin_34192816的博客 143

移动数据库的设计与开发

摘要:首先介绍了移动数据库的概念及其应用前景,以及基于J2ME的移动数据库的开发技术、J2ME的体系结构和开发平台特征。通过对J2ME技术的概述,重点分析了基于J2ME移动数据库开发的过程。接着介绍了移动数据库开发的具体过程,利用J2ME技术开发了一个移动数据库,实现用户在移动设备上存储数据,并通过移动数据库的开发,对J2ME的基本概念和结构以及相关的技术应用和前景进行了分析阐述。 关键词:移动数据库;J2ME;;存储

Oracle 10g lite 介绍

摘要:近年来,嵌入式数据库发展迅速,出现了许多优秀的软件产品,这些产品可以广泛应用于资源紧张的嵌入式计算机或手持终端。Oracle作为著名数据库厂商也推出了自己的嵌入式数据库产品。本文着重介绍了ORACLE10G LITE嵌入式数据库系统的特点、机制以及如何应用于某机动式指挥系统。 中国论文网   关键词:嵌入式数据库;手持终端;Oracle 10g lite   中图分类号:TN915.

changyanmanman的专栏 2795

Oracle数据库Lite 10g第三版

Oracle数据库Lite 10g是一个高度可扩展的移动解决方案,甚至断开与网络的连接时,应用仍能运行。它定期与Oracle数据库服务器同步。Oracle数据库Lite 10g第三版由一个移动服务器和一个移动关系数据库组成,可帮助用户与公司数据库进行可靠和安全的数据交换,实现应用、设备和用户提交,并提供各种集中式管理工具。新版软件还具有自动同步功能,无需用户干预就可实现双向数据同步,因此,无论移动用户是否与网络连接,都可以无缝工作。

MoveIt2 Servo实战:解锁UR机械臂在ROS2中的实时遥操作与动态响应

本文深入探讨了MoveIt2 Servo在UR机械臂实时遥操作中的应用,展示了如何通过ROS2实现毫秒级动态响应。文章详细解析了Servo的核心价值、环境配置、控制器适配及高级调优技巧,特别适用于需要高精度控制的工业场景,如VR手术训练和汽车装配线。

weixin_29044157的博客 247

Oracle企业版、标准版及其他版本的异同

针对不同的开发和部署环境,Oracle公司将同一系列Oracle数据库分成四个版本:标准版 One (Standard Edition One)、标准版(Standard Edition)、企业版(Enterprise Edition)和个 人版(Personal Edition )。 1.   标准版One 2. 标准版 3. 企业版 4. 个人版 5.Oracle Lite 版

苏南生的优快云博客 1万+

2023年数学建模国赛三大赛题核心建模思路与实战代码全解

本文全面解析2023年数学建模国赛三大赛题的核心建模思路与实战代码,涵盖塔式太阳能光热发电系统优化、多波束测深系统动态规划及蔬菜商品化策略建模。通过Python代码示例和优化算法(如遗传算法、NSGA2)展示,帮助参赛者掌握数学建模的关键技术与实战技巧,提升竞赛成绩。

weixin_33713350的博客 331

oracle database lite,Oracle Database Lite Client 10

Oracle Database Lite Client 10gOracle Database Lite Client 数据库是一个占用空间小、符合 SQL92 和 ACID 的关系数据库,是嵌入式和移动应用程序开发环境的理想选择。Oracle Database Lite Client 以快速的内核和无需管理为特性。数据库提供内置 Java/C/C++/.Net 存储过程和触发器,最多可支持 4G ...

weixin_39859819的博客 208

SAP中MRP运行计划行超限问题的分析与解决

SAP中基于生产性物料的采购特点,通常会采用采购计划协议的方式进行采购。其具体的采购计划通常来自于成品计划独立需求,然后通过物料清单,经由MRP跑出。 在采购计划协议中的计划行中,存在一个计划行号,随着MRP在不断跑出新的计划行,该行号资源会消耗完。当计划行号消耗完后,MRP不会再跑出新的计划行。且在MD04或MD02中看不到类似提示信息。此时可以通过MD05来查看是否出现类似下图的提示信息。 ...

专注SAP应用技术文章写作,致力于拉近用户与系统间的距离; 3844

波克 上海 Unity开发笔试题 2024

主要分为四部分,如果没有准备好,不要点击笔试链接,进入就会自动开始。

z2014z的博客 3392

移动数据库发展现状报告

嵌入式移动数据库发展现状 ——嵌入式系统课程调研报告 一.嵌入式移动数据库系统的需求与特点 随着以智能手机为代表的,包括车载娱乐系统、智能家居、可穿戴设备在内的现代 嵌入式系统在硬件性能上的飞速发展,其对于数据库系统的支持能力大幅提升;而随着嵌入式系统搭载的应用程序功能日益复杂,其对于数据管理的需求也逐渐增加。以上两方面都使得数据库系统在嵌入式系统中的应用规模逐步增大。 与传统的数据库系统不同,嵌...

SWY's Workshop 1万+

基于ROS与Gazebo的多机器人三角形编队仿真实践

本文详细介绍了基于ROS与Gazebo的多机器人三角形编队仿真实践,从环境搭建到编队控制的全过程。通过TurtleBot3机器人模型和TF坐标系系统,实现三个机器人的三角形编队控制,适用于机器人协同作业与编队算法研究。

weixin_29313817的博客 187

KV型数据存储引擎LevelDB/BerkeleyDB/lmdb/comdb/rocksdb/UnQLite键值对数据库

UnQLite是一个进程内软件库,它实现了自包含的,无服务器的,零配置的事务性NoSQL数据库引擎。从以上对比中,我们可以看到,最短小精悍的是SQLite,它的性能也是最高的,Berkeley DB比较特殊,因为它不是用SQL语言来操纵数据的,Firebird嵌入版的体积对比之下显得稍大了些,但它对关系数据库特性的支持是最好的,如果要考虑到今后或许要将数据库升级成网络版本,就要选Firebird了。嵌入式数据库是轻量级的,独立的库,没有服务器组件,无需管理,一个小的代码尺寸,以及有限的资源需求。

$firecat利白的代码足迹$ 5525

宽带阻抗匹配的工程实现-第一步,端口驻波仿真

其实阻抗匹配我工作以来经常说,也经常做,但是基本上都是直接在印制板上进行调试。现在想先用仿真软件直接设计出来,才发现很多东西嘴上说容易,想做出来太难了。所以准备写一些文章,记录一下碰到的问题。

pp_0604的博客 2375

实战交易策略 篇二十二:情绪流龙头交易策略

在股票市场中,机构主导趋势,游资驱动热点,散户易被情绪裹挟,形成“金字塔”式生态链,并存在情绪传递、强者恒强、物极必反的规律特点。股市是资金驱动的情绪博弈场,价格波动由群体心理、资金博弈和预期差共同驱动,核心是资本逐利性与人性贪婪恐惧的交织,兼具资源配置、财富再分配与风险定价功能。涨停加速与逃逸缺口(主升强化)凹字板/平台突破(趋势延续)天量弱转强(分歧买点)不参与首波(二波策略)情绪周期(道术合一)主线思维(聚焦核心)开盘抢筹(竞价博弈)一字助攻(情绪强化)分批进出(滚动操作)

生活在别处 1487

Oracle数据库Lite 10g第三版面市

6月8日,甲骨文公司在美国总部宣布,Oracle数据库Lite 10g第三版全面上市   Oracle数据库Lite 10g第三版是一个全面的解决方案,可帮助客户和合作伙伴为移动和嵌入式环境迅速开发和实施应用。新版产品增强了...

cqwf95925的博客 180

android 蓝牙通讯demo

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

Oracle相關技朮資料

    Oracle數據庫所有資料列表:  http://www.oracle.com/global/cn/ ... database/index.html  Oracle數據庫10g高可性:   http://www.oracle.com/global/cn/ ... 10gR1_111503_cn.pdfOracle RAC集群技朮: http://www.oracle.com/global/

小欣 1098

IMSL CNL 7.0.0 (x86-64)Crack

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

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

【文摘】移动数据库列举及比较

HSQL 数据库引擎 开放源码的数据库引擎―HSQL是基于Thomas Mueller的Hypersonic SQL项目。它完全是由Java是编写的同时也是一种广泛用于嵌入式的数据库。它被包含在许多J2EE应用服务器中。在移动设备上,HSQL运行在PersonalJava和FP

bpy的专栏 911

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Oracle 相关技术资料

相关技术资料,供了解:Oracle数据库所有资料列表:http://www.oracle.com/global/cn/ ... database/index.htmlOracle数据库10g高可性: http...

154

高可靠性移动应用程序-移动数据库和J2ME工具(3)

<!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--><script type="text/javascript"

zgqtxwd的专栏 813

数据库—主流数据库及数据库基本概念

关系型数据库:非关系型数据库:

2401_85061293的博客 372
上一篇: 【文摘】云平台服务商一览
下一篇: 【转】嵌入式数据库 SQLite
bpy_r
博客等级 码龄24年 7粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值