SAP ABAP学习笔记

SAP ABAP 连接外部数据库 阅读详情

ABAP/4  简介

ABAP/4 包括
- 带有各种类型和结构的声明数据的声明元素
- 数据制作的操作元素
- 控制程序流的控制元素
- 反应外部事件的事件元素
_ ABAP/4 支持多种语言。文本摘要(例如,标题、页眉和其他文本)将根据程序代码分别存储。您
可以随时在不改变程序代码的情况下更改、转换和维护这些文本摘要。
_ ABAP/4 支持商业数据类型和操作。您可以用特殊日期和时间字段进行计算。系统会自动执行必需
的类型转换。
_ ABAP/4 提供一系列功能处理字符串。
_ ABAP/4 包含一个叫 Open SQL 的 SQL 子集。用 Open SQL,您可以读取和访问数据库表,与所
用的数据库系统无关。
_ ABAP/4 允许您定义和处理内部表,该表只在运行程序时存在。内部表使其更容易处理数据表,并
帮助使用程序中的复杂数据结构。
_ ABAP/4 允许您定义和调用子程序。也可以调用其他程序的子程序。参数能够以各种方式从子程序
传递或传递到子程序。
_ ABAP/4 包含一种特殊子程序,叫做功能模块。您可以在中央库中创建和维护功能模块。在调用程

序和子程序之间功能模块有一个明确定义的数据接口。它们能够以调用程序的独立模式进行分别
测试。
这里有两种主要的 ABAP/4 程序类型:
_ 报表程序
报表程序用于分析数据库表中的数据。这种分析的结果可以显示在屏幕上或发送到打印机上。逻
辑数据库支持报表程序。逻辑数据库是特殊的 ABAP/4 程序,使开发者不必编码所有的数据库访
问。关于报表程序的详细信息,参见《ABAP/4 用户指南》的第二部分。
_ 对话程序
将对话程序组织为包含对话模块的模块池。每个动态程序(由一个屏幕及其流逻辑组成的“动态
程序”)都基于一个 ABAP/4 对话程序。流逻辑包含对 ABAP/4 对话模块的调用。关于对话程序
的详细信息,参见《ABAP/4 用户指南》的第三部分。

SAP ABAP 回路控制

Nested loop

您可以在任何另一个WHILE或DO循环中使用一个或多个循环

CONTINUE语句忽略当前语句块中的所有语句,并继续下一个循环遍历。

SAP ABAP 异常处理

ABAP异常处理建立在三个关键字 - RAISE,TRY,CATCH和CLEANUP

TRY.      
Try Block <Code that raises an exception> 
  
CATCH  
Catch Block <exception handler M>  
. . . 
. . . 
. . . 
CATCH  
Catch Block <exception handler R>
   
CLEANUP. 
   Cleanup block <to restore consistent state>
 
ENDTRY.

RAISE - 提出异常,表示发生了一些异常情况。 通常,异常处理程序会尝试修复错误或找到替代解决方案。

TRY - TRY块包含要处理其异常的应用程序编码。 此语句块按顺序处理。 它可以包含进一步的控制结构和程序调用或其他ABAP程序。 它后面是一个或多个catch块。

CATCH - 程序在要处理问题的程序中的地方使用异常处理程序捕获异常。 CATCH关键字表示捕获异常。

CLEANUP - 每当在TRY块中发生异常,而TRY块未被同一TRY - ENDTRY结构的处理程序捕获时,将执行CLEANUP块的语句。 在CLEANUP子句中,系统可以将对象恢复到一致状态或释放外部资源。 也就是说,可以对TRY块的上下文执行清除工作。

ABAP词典中的基本类型

ABAP词典中的基本类型如下:

  • 数据元素通过定义数据类型,长度和可能的小数位数来描述基本类型。

  • 结构和可以具有任何类型的组件。

  • 表类型描述了内部表的结构。

SAP ABAP 域

用于在ABAP字典中定义数据的三个基本对象是域,数据元素和表。 域用于表字段的技术定义,例如字段类型和长度,数据元素用于语义定义(简短描述)。 

创建域的事务SE11,您可以在客户名称空间下创建域,对象的名称始终以“Z"或“Y"开头

SAP ABAP 数据元素

SAP ABAP 表

SAP ABAP 结构

SAP ABAP 视图

SAP ABAP 搜索帮助

SAP ABAP 锁定对象

SAP ABAP 模块化

在SAP ABAP环境中,模块化涉及将程序组织成模块化单元,也称为logical blocks

SAP ABAP 子程序

子程序是一个可重用的代码段。 它是程序中的模块化单元,其中函数以源代码的形式封装

 可以使用Form和EndForm语句定义子例程。

以下是子程序定义的一般语法。

FORM <subroutine_name>.
  
<statements> 
  
ENDFORM.

我们可以通过使用PERFORM语句调用子例程。 控制跳转到子例程< subroutine_name>中的第一可执行语句。当遇到ENDFORM时,控制跳回到PERFORM语句之后的语句。

事务SE80

 

SAP ABAP 宏

以下是宏定义的基本语法:

DEFINE <macro_name>. <statements> 
END-OF-DEFINITION. 
   ...... 
  
   <macro_name> [<param1> <param2>....].

 

704/5000在调用它之前必须首先定义一个宏。 ...。 替换宏定义中包含的ABAP语句中的占位符和1 ...。

宏定义中占位符的最大数量为9。 也就是说,当执行程序时,SAP系统用适当的语句替换宏,并且用参数param1,param2,... param9替换占位符&1,&2,...,&9。 我们可以在另一个宏中调用宏,但不能调用同一个宏。

 

SAP ABAP 功能模块

要了解如何创建功能模块,必须探索函数构建器。 您可以找到事务代码为SE37的函数构建器。 只需用通配符键入功能模块名称的一部分,以演示可以搜索功能模块的方式。 键入* amount *,然后按F4键。

搜索结果将显示在新窗口中。 功能模块显示在具有蓝色背景的行中,其功能组以粉红色的行显示。 您可以使用对象导航器屏幕(事务SE80)进一步查看功能组ISOC。 您可以看到功能模块列表以及功能组中保存的其他对象。 让我们考虑函数模块SPELL_AMOUNT。 此功能模块将数字转换为字。

 

创建新程序

步骤1 - 转到事务SE38并创建一个名为Z_SPELLAMOUNT的新程序。

步骤2 - 输入一些代码,以便可以设置一个参数,其中可以输入值并将其传递到功能模块。 文本元素text-001在这里显示为“输入值"。

步骤3 - 要为此编写代码,请使用CTRL + F6。 之后,将出现一个窗口,其中“CALL FUNCTION"是列表中的第一个选项。 在文本框中输入“spell_amount",然后点击继续按钮。

Spell Amount Program

步骤4 - 自动生成一些代码。 但是我们需要增强IF语句以包含一个代码,以向屏幕写入一条消息,说“函数模块返回一个值:sy-subrc",并添加ELSE语句,以便在函数 模块成功,这里,必须设置一个新的变量来保存从函数模块返回的值,让我们称之为\'result\'。

下面是代码 -

REPORT Z_SPELLAMOUNT. 
data result like SPELL. 

selection-screen begin of line. 
selection-screen comment 1(15) text-001. 

parameter num_1 Type I. 
selection-screen end of line. 
CALL FUNCTION 'SPELL_AMOUNT' 
EXPORTING 
AMOUNT = num_1 
IMPORTING 
IN_WORDS = result. 

IF SY-SUBRC <> 0. 
   Write: 'Value returned is:', SY-SUBRC. 
else. 
   Write: 'Amount in words is:', result-word. 
ENDIF.

步骤5 - 函数模块返回的变量称为IN_WORDS。 在程序中设置相应的变量名为\'result\'。 通过使用LIKE语句来引用称为SPELL的结构来定义IN_WORDS。

步骤6 - 保存,激活并执行程序。 输入如以下屏幕截图所示的值,然后按F8。

Spelling Amount

上面的代码产生以下输出:

Spelling the Amount 
Amount in words is: 
FIVE THOUSAND SIX HUNDRED EIGHTY

SAP ABAP Include程序

INCLUDE程序是用于模块化源代码的全局存储库对象。 它们允许您在不同的程序中使用相同的源代码。 包含程序还允许您以有序的方式管理复杂的程序。 为了在另一个程序中使用include程序,我们使用以下语法:

INCLUDE <program_name>.

INCLUDE语句具有与复制包含程序< program_name>的源代码相同的效果。 进入另一个程序。 由于包括程序不能独立运行,它必须内置到其他程序中。 您也可以嵌套包含程序。

创建一个include程序,不需要在开头写program,自己写逻辑即可

SAP ABAP 打开SQL概述

SAP ABAP 本地SQL概述

要使用本地SQL语句,必须在其前面加上EXEC SQL语句,并以ENDEXEC语句结束。

以下是语法:

EXEC SQL PERFORMING <form>.  
   <Native SQL statement> 
ENDEXEC.

这些语句定义ABAP程序中可以列出一个或多个Native SQL语句的区域。 输入的语句将传递到Native SQL界面,然后按如下所示进行处理:

  • 对于所寻址的数据库系统的程序接口有效的所有SQL语句都可以在EXEC和ENDEXEC之间列出,特别是DDL(数据定义语言)语句。

  • 这些SQL语句从Native SQL接口传递到数据库系统基本不变。 语法规则由数据库系统指定,特别是数据库对象的区分大小写规则。

  • 如果语法允许单个语句之间的分隔符,则可以在EXEC和ENDEXEC之间包括许多本地SQL语句。

  • 可以在EXEC和ENDEXEC之间指定SAP特定的本地SQL语言元素。 这些语句不会直接从Native SQL接口传递到数据库,但会适当地进行转换。

例子

SPFLI是用于存储航班时刻表信息的标准SAP表。 这在R / 3 SAP系统中可用,具体取决于版本和发布级别。 在将表名称SPFLI输入到相关SAP事务(如SE11或SE80)中时,可以查看此信息。 您还可以使用这两个事务查看此数据库表中包含的数据。

REPORT ZDEMONATIVE_SQL. 
DATA: BEGIN OF wa,  
      connid  TYPE SPFLI-connid,
      cityfrom TYPE SPFLI-cityfrom,
      cityto  TYPE SPFLI-cityto,  
      END OF wa. 
	
DATA c1 TYPE SPFLI-carrid VALUE 'LH'. 
EXEC SQL PERFORMING loop_output.
   SELECT connid, cityfrom, cityto  
   INTO :wa  
   FROM SPFLI  
   WHERE carrid = :c1 
ENDEXEC. 

FORM loop_output.  
   WRITE: / wa-connid, wa-cityfrom, wa-cityto. 
ENDFORM.

上面的代码产生以下输出:

0400  FRANKFURT  NEW YORK 
2402  FRANKFURT  BERLIN 
0402  FRANKFURT  NEW YORK

 

SAP ABAP 内部表

内部表用于许多目的:

  • 它们可用于保存以后可在程序中使用的计算结果。

  • 内部表还可以保存记录和数据,以便可以快速访问,而不必从数据库表访问此数据。

  • 他们是非常多才多艺。 它们可以使用任何数量的其他定义的结构来定义。

SAP ABAP 创建内部表

DATA语句用于声明一个内部表。 程序必须告知表的开始和结束位置。 所以使用BEGIN OF语句,然后声明表名。 之后,使用OCCURS添加,后跟一个数字,这里为0. OCCURS告诉SAP正在创建一个内部表,0表示它最初不包含任何记录。 它将随着它填充数据而扩展。

以下是语法

DATA: BEGIN OF <internal_tab> Occurs 0,

可以使用或不使用标题行创建内部表。 要创建带有标题行的内部表,请在内部表定义中的OCCURS子句之前使用OCCURS子句之前的BEGIN OF子句或WITH HEADER LINE子句。 要创建没有标题行的内部表,请使用不带BEGIN OF子句的OCCURS子句。

您还可以使用TYPES语句创建内部表作为本地数据类型(仅在当前程序的上下文中使用的数据类型)。 此语句使用TYPE或LIKE子句来引用现有表。

创建内部表作为本地数据类型的语法是:

TYPES <internal_tab> TYPE|LIKE <internal_tab_type> OF 
   <line_type_itab> WITH <key> INITIAL SIZE <size_number>.

这里,< internal_tab_type> 指定内部表的表类型< internal_tab> 和< line_type_itab> 指定内部表的行的类型。 在TYPES语句中,可以使用TYPE子句将内部表的行类型指定为数据类型,并使用LIKE子句将行类型指定为数据对象。 为内部表指定键是可选的,如果用户未指定键,SAP系统将使用任意键定义表类型。

INITIAL SIZE< size_number> 通过向其分配初始量的内存来创建内部表对象。 在上述语法中,INITIAL SIZE子句为size_number表行保留一个内存空间。 每当声明内部表对象时,表的大小不属于表的数据类型。

注意 - 首次填充内部表时消耗的内存大大减少。

 

 


1.方法调用参数输入注意,

length_1 = STRLEN( title_1 )."参数连接括号的地方需要空格

2.每个语句都是以点结尾

3.定义参数都是DATA开头

4.可执行的程序都是REPORT开头

5.添加断点是必须先激活程序(注意)


 

【学习笔记】SAP ABAP——数据类型 模块模块名称FI财务会计CO管理会计SD销售分销MM物料管理PM工厂维护HR人力资源PS项目管理BW数据仓库BC系统相关PP生产制造数据类型默认长度有效长度默认值解释说明I440整型F880浮点型P81~160压缩数类型(将两个十进制数字压缩到一个字节)C11~65535‘…’文本型D88‘00000000’日期型(YYYYMMDD)N11~65535‘0…0’ 阅读详情

相关推荐

SAP ABAP教程之 01 什么是ABAP

ABAP 代表高级业务应用程序编程。它是第四代语言。哦!等一下!这意味着什么?第四代语言?ABAP 目前与 JAVA 一起被定位为 SAP 应用程序服务器编程的主要语言。为了对ABAP有一个清晰的认识,让我给大家解释一下SAP系统的高层架构。

iCloudEnd的博客 1159

ABAP:NATIVE SQL-EXEC

ABAP:NATIVE SQL-EXEC EXECSQL. “连接数据库,此名称在ST04-数据库连接中可看connectto‘READ‘ ENDEXEC.EXECSQL. “设置连接setconnection’READ’ENDEXEC....

weixin_30872867的博客 1478

SAP-ABAP:SAP 系统变量 SY-INDEX 学习笔记:从 1 开始的循环计数器

SAP系统变量SY-INDEX核心要点 SY-INDEX是SAP ABAP中用于DO/WHILE循环的自动计数器,具有以下特性: 从1开始计数,每次循环自动+1,不会出现0值 只读属性,不可手动修改 循环嵌套时,内外层各自独立计数 在LOOP AT语句中无效,应改用SY-TABIX 典型应用场景包括控制循环次数、记录迭代次数等 关键区别: DO/WHILE循环使用SY-INDEX LOOP AT内表使用SY-TABIX (字数:149字)

baidu_35680696的博客 280

ABAP/4入门

ABAP语法规则 ABAP程序是由若干个单独的语句组成的 每一个语句都用句点(英文)结束 语句的第一个单词一般为关键字 语句中单词之间至少要用一个空格隔开 语句可以缩进 一句语句可以由多行组成 在一行中可以由多个语句 ABAP 数据声明 变量定义基本格式 DATA < f > [(< length >)] < type> [< value>]...

云别 4669

从CTFShow靶场实战,聊聊Node.js原型链污染漏洞的几种利用姿势(附详细复现步骤)

本文深入剖析Node.js原型链污染漏洞的原理与实战利用,通过复现CTFShow靶场题目(web338-web341),详细演示五种高级利用技巧,包括基础污染、多级污染、模板引擎RCE等,并提供防御方案与最佳实践,帮助开发者提升Web应用安全性。

weixin_30791095的博客 446

ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: NO)解决办法

问题:ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: NO) 很久没用这台电脑的mysql了,今天需要连接数据库,启动数据库报错: ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: NO) 解决方法: 查阅资料后知道了,应该使用已知的用户名和密码登陆 mysql -u root -p 然而密

一个超会写Bug的程序猿的博客 43万+

ABAP 7.50 新特性 – Open SQL中的宿主表达式和其它表达式

在长期的停滞后,Open SQL的发展终于从沉睡中醒来。从ABAP 7.40开始,SAP推进了某些关键的改变,以尽可能地包含SQL92中的特性,并提供与ABAP CDS中的DDL里面的SELECT一样的功能给Open SQL。为了实现这些目标,ABAP运行时环境中引入了一个新的SQL parser作为Open SQL的新基础。结果就是,Open SQL现在可以在ABAP中扮演一些和...

weixin_30477797的博客 410

GaN制备micro-led(一)

随着第三代半导体 GaN 材料的快速发展,GaN 基 LED 发展迅速并广泛商业化,这 为可见光通信的实现及应用提供了基础。然而,普通商用 LED 的调制带宽只有几十兆 赫兹,并不能很好的满足可见光通信系统高传播速率的需求。为增大调制带宽,针对发 射端 LED 光源部分的改进仍需提高。将光子晶体结构引入 LED 芯片量子阱内部,能够 影响光子寿命和光子传播,进而改变 LED 芯片的调制带宽和光提取效率。结合倒装微 尺寸(Micro)LED 结构,使其封装体积最小化,这使得可见光通信能够更加灵活地.

weixin_45852211的博客 896

【学习笔记】SAP ABAP——子程序

参数(Parameter)是指调用子程序时用于传入、传出的值。子程序中的参数与一般用 DATA语句定义的局部变量相同。调用子程序时使用的参数叫实参(Actual Parameter),在子程序中使用的参数叫虚参(Formal Parameter)。PERFORM 利用 USING、CHAING 定义参数,且使用时要与子程序的顺序一致。参数可以使用 ABAP 的所有对象,即基本数据类型、Field Smbol、内表等。

czxjlsn的博客 1276

【SOFA】SOFA框架+Win10+VS2019 配置

SOFA (Simulation Open Framework Architecture)官网 SOFA 是一个开源的仿真框架,用于实时的物理仿真,而且主要针对医学上的仿真。主要用于研究人员开发新的算法,也可以作为一个有效的快速成型工具或是物理引擎。 官网中给出的配置方法写的很清晰,有着各个库或者软件的版本要求,仔细看按版本要求来 官网配置地址 官网给了两种方 1.通过脚本自动配置 2. 自己下载相关库通过CMake进行生成 第一种 没使用,不知道是否好使,因为如果其中有下载的东西,国内不一定能成功,大家可

GordonWei 5260

Test软件:Keysight二次开发_(1).Keysight软件开发概述

VISA(Virtual Instrument Software Architecture)库是Keysight提供的一种标准化的仪器控制接口,支持多种编程语言和开发环境。仪器通信:通过GPIB、USB、以太网等接口与仪器进行通信。数据采集:从仪器中获取测量数据。命令发送:向仪器发送控制命令。错误处理:处理通信过程中可能出现的错误。测试自动化是指通过编写脚本或程序来自动执行测试任务,从而提高测试效率和减少人为错误。Keysight的测试设备和仪器支持多种编程语言和开发环境,使得测试自动化变得相对容易。

2401_87715305的博客 1359

【学习笔记】SAP ABAP——内表

​ 内表是SAP ABAP中最具有影响力且最重要的功能之一,简而言之,用一句话概括内表的定义就是:***内表是可以在程序内部定义并且使用的表,属于本地表。***如下图展示出了参照数据库表sflight定义的内表的结构。

czxjlsn的博客 510

RK3588 Buildroot 新建板级DTS

在rk3588 linux开发过程中,新创建板型主要基于硬件差异化、软件适配与优化、项目定制化等多方面需求。

501846585_QQAndroid_java 1298

【SAP ABAP】学习笔记

SAP ABAP - 数据类型概要及分类。

qq_24726155的博客 229

如何用libwebsocket库在stm32F407上实现websocket客户端?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 1134

(七)独立按键

(七)独立按键

m0_52555663的博客 1718

SAP ABAP开发学习笔记

SE11:查看、创建、更改表,视图,域,数据类型。ABAPHELP:ABAP语言帮助文档下载/查看。SE80:程序、包、对象、函数等操作。SE38:代码开发界面。

weixin_39757802的博客 566

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

SAP系统与ABAP 学习笔记

sap登陆集团:700用户名: 密码: 常用TCODE(事务代码)SE11ABAP字典:初始屏幕 SE37函数构建器:初始屏幕 SE38ABAP编辑器:初始屏幕 SE80ABAP工作台 SU3维护用户参数文件 /n退回系统首页 数据库表查询输入TCONDE SE11进入数据加查询,选中数据库表单选框,点击右边的按钮查找表。在弹出的查找表对话框中输入表名或者使用 * 号模糊查询

HJWZYY 1659

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

ABAP开发学习——AT NEW/AT END OF

可以在输出时实现一些分块。

m0_64077397的博客 990

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

SAP学习笔记 - 开发01 - BAPI是什么?通过界面和ABAP代码来调用BAPI

本章主要讲 BAPI 的基本印象,让大家理解BAPI能干啥。通过在SE37界面和自己写一个ABAP程序来调用BAPI程序。既然是程序嘛,调用BAPI 可以实现的功能可就太多太灵活了。我觉得作为一个SAP顾问,这是必须要掌握的内容。 可以将它理解为SAP系统级函数,通过调用它可以用很少的代码实现特殊/复杂的功能。 可以在SE37 界面上执行BAPI,更为常用的是在 自己写的ABAP 或其他代码中调用BAPI,从而实现一些批量修改之类的功能。

shi_ly的专栏 5923

SAP学习笔记 - 开发08 - Eclipse连接到 BTP Cockpit实例

本篇讲了如何在Eclipse里面连接BTP Cockpit环境上。 其实就是通过一个Key,然后输入用户名密码,挺简单的。

shi_ly的专栏 2424

SAP MM学习笔记 - 豆知识10 - OMSY 初期化会计期间,ABAP调用MMPV/MMRV来批量更新会计期间(TODO)

本章研究了一下批量更新物料和FI会计期间,SAP本身只提供了OMSY,可以用于初期化,但只能执行一次,要想批量更新账期,还需要自己写ABAP代码。

shi_ly的专栏 2203

c++重新定义char * 长度_ABAP学习笔记基础语法01数据类型的定义

作者:kerwinG(网名)声明:本文章仅代表原作者观点,仅用于SAP软件的应用与学习,不代表SAP公司和本微信公众号。注:文中所示截图来源SAP软件,相应著作权归SAP所有。对于Abap语法的理解是非常有利于业务顾问的日常工作的。后面,会结合以前的学习笔记和系统的语法测试,分享一些常见、常用的语法知识。希望对大家有用。数据类型1. 预定义的类型预定义数据类型,作为SAP中基本的数据...

weixin_42517569的博客 815

ABAP日志

于这次是专门做SAP方面的工作,所以其实方面如果有问题公司还是会另派人过来解决.所以接下来的我的工作目标非常明确,就是要在顾问指导下做好相关SAP方面的工作. 几天下来对自己的工作环境有了个大概的了解,这里有一个专门的SAP实施团队,加上偶共六 人,其中五个是香港那边过来的,六人中也就我一个大陆仔. 也就这个时候我才N后悔以前没把白话学好,他们虽然都会点中文,但在这样一个以讲白话为主的环境下

1362

ABAP-SAP学习之路

打从今儿起,我要学习SAP的ABAP了。因为公司需要,我荣幸的被选入了学习ABAP的员工。记录日志 待后发表学习笔记。

Mr.Sherlock 189

一篇精彩的ABAP日记(转载)

于这次是专门做SAP方面的工作,所以其实方面如果有问题公司还是会另派人过来解决.所以接下来的我的工作目标非常明确,就是要在顾问指导下做好相关SAP方面的工作. 几天下来对自己的工作环境有了个大概的了解,这里有一个专门的SAP实施团队,加上偶共六人,其中五个是香港那边过来的,六人中也就我一个大陆仔. 也就这个时候我才N后悔以前没把白话学好,他们虽然都会点中文,但在这样一个以讲白话为主的环境下使我一

twomeyla博客 3979
上一篇: C# MVC 生成条形码
下一篇: Python十大应用领域与就业方向
卓炳坤
博客等级 码龄10年 33粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值