DolphinPHP海豚PHP-实现后台学生信息管理系统

DolphinScheduler——介绍及架构设计 海豚调度DolphinScheduler——介绍及架构设计 阅读详情
AI摘要

本文介绍使用DolphinPHP框架实现的学生信息管理系统的搭建过程,包括开发环境配置、模块创建、控制器设置、数据库设计及学生信息的增删改查功能实现。

前几天第一次听说这个框架,也是机缘巧合下,我使用这个框架实现学生信息管理系统,确实在界面实现上很方便,因为它有强大的构建器,可以快速渲染出表格,表单等。框架的话,多看官方文档好一些,我这里也就是记录一下使用这个框架的情况,可能每个人不一样。

 【1】我的开发环境

在win10下使用phpstudy2018,PHP5.6以上的版本,才可以支持DolphinPHP1.4(海豚PHP)的框架。其中

默认phpstudy2018安装后mysql的账号密码都是root。而DophinPHP是一个基于ThinkPHP5.1.34LTS开发的一套开源PHP快速开发框架。

【2】下载源码

http://www.dolphinphp.com/download/

进入官网下载就可以了

【3】安装一下

【4】前台/后台

前台:http://localhost/student/public/index.php

后台:http://localhost/student/public/admin.php/user/publics/signin.html

默认后台账号/密码admin / admin

可以进后台都点点看看,适应一下这个系统管理。

 【5】创建模块

在application目录下创建自己的模块,我这里做的是学生信息管理界面,就以student命名,然后再student文件夹下创建一个info.php文件。大概就是下面的内容 。

打开后台-系统->扩展中心->模块管理,点击“安装”进入模块安装页面,安装一下。

 

【6】创建控制器

这个我弄的主要是后台管理,所以在student文件夹下创建一个admin用来放置后台控制器。

【7】构建器

DolphinPHP内置了强大的快速构建器,可以帮助开发者快速构建表单页面、数据表格和侧栏,方便快捷。

【8】后台创建节点

但是目前还不能直接点击进入,会显示""无任何节点权限"需要创建子节点。 直接可以生成一个界面。

【9】数据库

我是利用phpmyadmin在项目的数据库下直接创建学生表,和省市县的表。因为我要存储学生的地理位置。

DROP TABLE IF EXISTS `dp_student_info`;
CREATE TABLE `dp_student_info` (
  `id`       int(11) unsigned NOT NULL primary key auto_increment comment 'id',
  `name`     varchar(60) NOT NULL DEFAULT '' COMMENT '姓名',
  `sex`      tinyint(2) unsigned NOT NULL DEFAULT '0' COMMENT '性别:0-女,1-男,2-保密',
  `age`      tinyint(11) unsigned NOT NULL DEFAULT '0' COMMENT '年龄',
  `birthday` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '生日',
  `school`   varchar(60) NOT NULL DEFAULT '' COMMENT '学校',
  `province` varchar(36) NOT NULL DEFAULT '' COMMENT '省',
  `city`     varchar(36) NOT NULL DEFAULT '' COMMENT '市',
  `county`   varchar(36) NOT NULL DEFAULT '' COMMENT '县',
  `create_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
  `update_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '更新时间'
) ENGINE=INNODB  DEFAULT CHARSET=utf8 COMMENT='学生信息表';
DROP TABLE IF EXISTS `dp_address`;
CREATE TABLE `dp_address` (
  `id`  int(11) unsigned NOT NULL primary key auto_increment comment 'id',
  `pid` int(11) DEFAULT NULL COMMENT '父级',
  `name`varchar(255)  DEFAULT NULL COMMENT '县',
  `type` tinyint(2) DEFAULT NULL COMMENT '0国家/1省/2市/3县'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='中国省市县';

 

 

【10】添加学生信息

主要做这几点,实现方法,创建节点,使用表单构建器,实现三级联动,接收验证数据,提交保存,返回json信息。

其中三级联动这里我花费的时间比较多,实际上还是多看官方文档,去理解如何使用,明白参数的含义才是最重要的。

【11】学生信息列表

主要做这几点,实现方法,创建节点,使用表格构建器,设置按钮,设置表格数据,进行分页,按钮位置,搜索查询。

【12】编辑学生信息

主要做这几点,实现方法,根据学生id获取原本数据,使用表单构建器,三级联动默认数据,接收数据,进行保存,返回json信息。

【13】删除学生信息

主要做这几点,实现方法,根据学生id进行删除操作,返回json信息。

【14】设置用户角色

【15】授权用户

【16】结束

使用普通用户进行登陆。

 

【小结】

         使用框架的话多看官方的文档,先学会模仿使用,理解其中的含义,再去实现自己想要的功能。实在不会的可以多bing一下,或者问一些群里的大佬,不过还是要首先明白自己的问题出现在哪里,不然你怎么问,怎么搜索都不会。

【附件:核心代码】

<?php
namespace app\student\admin;

use app\admin\controller\Admin;
use app\common\builder\ZBuilder;
use think\Db;

/**
 * student 后台控制器
 */
class Index extends Admin
{
    /**
     * 列表页
     */
    public function index()
    {
        $map = $this->getMap();//获取搜索框的值
        // 读取用户数据
        $data_list = Db::name('student_info')->where($map)->paginate();
        // 使用ZBuilder快速创建数据表格
        return ZBuilder::make('table')
        ->setPageTitle('学生信息列表')
        ->addColumns([ // 批量添加列
            ['id', 'ID'],
            ['name', '姓名'],
            ['sex','性别 ',['0'=>'女','1'=>'男','2'=>'保密'] ],
            ['age', '年龄'],
            ['school', '学校'],
            ['province', '省'],
            ['city', '市'],
            ['county', '县'],
            ['create_time', '创建时间', 'datetime'],
            ['update_time', '修改时间', 'datetime'],
        ])
        ->addColumn('right_button', '操作', 'btn')
        ->addRightButton('edit',['href' => url('edit', ['id' => '__id__'])], ['skin' => 'layui-layer-lan'])
        ->addRightButton('delete',['href' => url('delete', ['id' => '__id__'])])
        ->addTopButton('add', [], ['skin' => 'layui-layer-lan'])
        ->setRowList($data_list)
        ->setColumnWidth([
            'id'  => 50,
            'name' => 80,
            'sex' => 50,
            'age' => 50,
            'age' => 50,
            'school' => 100
        ])
        ->setSearchArea([
            ['text', 'name', '姓名', 'like'],
        ])
        ->fetch();
    }

    /**
     * 添加学生信息
     */
    public function add()
    {
        // 使用ZBuilder构建表单页面,并将页面标题设置为“添加”
        $list_province =  Db::name('address')->where('pid',1)->column('id,name');

        return ZBuilder::make('form')
            ->setPageTitle('添加学生基本信息')
            ->addText('name', '姓名')
            ->addRadio('sex', '性别', '', ['0' => '女', '1' => '男', '2' => '保密'],'2')
            ->addDate('birthday', '生日', '', '', 'yyyy-mm-dd')
            ->addText('school', '学校')
            ->addLinkage('province', '省', '', $list_province, '', url('get_city'), 'city,county')
            ->addLinkage('city', '市', '', '', '', url('get_county'), 'county')
            ->addSelect('county', '县')
            ->setUrl(url('save'))
            ->fetch();
    }

    /**
     * 保存 添加的信息
     */
    public function save()
    {
        if(request()->isPost()){
            $post = request()->post();
            $data['name'] = $post['name'];
            $data['sex'] = $post['sex'];
            $data['school'] = $post['school'];
            $data['birthday'] = strtotime($post['birthday']);
            $data['age'] = date('Y',time())-date('Y',$data['birthday']);
            $data['province'] = $this->get_where($post['province']);
            $data['city']     = $this->get_where($post['city']);
            $data['county']   = $this->get_where($post['county']);
            $data['create_time']=time();
            $data['update_time']=time();

            $res = Db::name('student_info')->insert($data);
            $arr['code'] = '1'; //判断状态
            $arr['msg'] = '请求成功'; //回传信息
            $arr['list'] = $res;
            return $arr;
        }
    }

     /**
     * 编辑页面
     */

    public function edit($id='')
    {
        if(empty($id)){
            return ZBuilder::make('form')->assign('empty_tips', '请指定修改对象')->hideBtn(['submit', 'back'])->fetch();
        }
        $data = Db::name('student_info')->find($id);//获取编辑的数据

        $list_province =  Db::name('address')->where('pid',1)->column('id,name');//省份
        //选出来省id
        $pid  =  Db::name('address')->where('name', $data['province'])->find()['id'];
        $list_city = Db::name('address')->where('pid',$pid)->column('id,name');

        //选出来市id
        $pid  =  Db::name('address')->where('name', $data['city'])->find()['id'];
        $list_county = Db::name('address')->where('pid',$pid)->column('id,name');

        //这里需要知道每个人的地点的id,才可以在编辑的时候显示出来
        $data['province'] = Db::name('address')->where('name', $data['province'])->find()['id'];
        $data['city'] = Db::name('address')->where('name', $data['city'])->find()['id'];;
        $data['county'] = Db::name('address')->where('name', $data['county'])->find()['id'];;
        return ZBuilder::make('form')
        ->setPageTitle('修改学生基本信息')
        ->addText('name', '姓名')
        ->addRadio('sex', '性别', '', ['0' => '女', '1' => '男', '2' => '保密'],'2')
        ->addDate('birthday', '生日', '', '', 'yyyy-mm-dd')
        ->addText('school', '学校')
        ->addLinkage('province', '省', '',$list_province, '', url('get_city'), 'city,county')
        ->addLinkage('city', '市', '', $list_city,'', url('get_county'), 'county')
        ->addSelect('county', '县','',$list_county)
        ->setFormData($data)
        ->setUrl(url('editSave', ['id' =>$id]))
        ->fetch();
    }


      /**
     * 修改保存
     */
    public function editSave(){
        $post = request()->post();
        $data['id'] = request()->param('id');
        $data['name'] = $post['name'];
        $data['sex'] = $post['sex'];
        $data['school'] = $post['school'];
        $data['birthday'] = strtotime($post['birthday']);
        $data['age'] = date('Y',time())-date('Y',$data['birthday']);
        $data['province'] = $this->get_where($post['province']);
        $data['city']     = $this->get_where($post['city']);
        $data['county']   = $this->get_where($post['county']);
        $data['update_time']=time();

        $res = Db::table('dp_student_info')->update($data);
        $arr['code'] = '1'; //判断状态
        $arr['msg'] = '请求成功'; //回传信息
        $arr['list'] = $res;
        return $arr;
    }
    
     /**
     * 删除信息
     *      $id 某个学生id
     */
    public function delete($id='')
    {
        $res = Db::name('student_info')->delete($id);
        if($res){
            $arr['code'] = '1'; //判断状态
            $arr['msg'] = '请求成功'; //回传信息
            $arr['list'] = $res;
        }else{
            $arr['code'] = '404'; //判断状态
            $arr['msg'] = '请求失败'; //回传信息
            $arr['list'] = $res;
        }
        return json($arr);
    }

     /**
     * 获取地点
     */
    public function get_where($id){
        $data = Db::name('address')->find($id);
        return $data['name'];
    }

    /**
     * 获取市 二维数组
     */
    public function get_city($province = '')
    {
        $data = Db::name('address')->where('pid',$province)->field(['id'=>'key','name'=>'value'])->select();
        $arr['code'] = '1'; //判断状态
        $arr['msg'] = '请求成功'; //回传信息
        $arr['list'] = $data;
        return json($arr);
    }

    /**
     *获取县 二维数组
     */
    public function get_county($city = '')
    {
        $data = Db::name('address')->where('pid',$city)->field(['id'=>'key','name'=>'value'])->select();
        $arr['code'] = '1'; //判断状态
        $arr['msg'] = '请求成功'; //回传信息
        $arr['list'] = $data;
        return json($arr);
    }



}

 

DolphinScheduler 3.1.0 海豚集群部署配置 dolphinscheduler3.1.0 以上 阅读详情

相关推荐

DolphinPHP更新:前端自定义显示列功能优化

DolphinPHP框架的最新更新在保留原有稳定性和高效性的基础上,引入了多项创新特性。本章节将为读者提供一个框架更新的概览,包括但不限于增强的安全机制、更直观的代码结构和扩展的新功能。这些更新旨在提高开发效率,降低出错概率,增强应用的维护性和可扩展性。在信息管理系统中,如何高效地展示数据是决定用户体验好坏的关键因素之一。传统的方法往往要求用户在数据展示层面上进行妥协,比如使用预定义的数据显示模式,这使得用户无法根据自身的需求来定制数据展示的细节。

weixin_30356433的博客 807

DolphinPHP(海豚PHP)实战教程

Dolphin实战Dolphin实战数据表准备新建员工模块为`员工`添加控制器修改界面展示 Dolphin实战 Dolphin实战,开发一个简单的员工管理系统. 数据表准备 主要有emp_employee员工表,emp_status_info员工状态表,emp_dept员工部门表,emp_position员工职位表,员工地址表: create table emp_employee( id...

qq122516902的博客 1万+

DolphinPHP 1.4.2(_1.4.5)后台 GetShell1

废话少说本地搭建完成后,先进后台上传图,进抓包可以看到访问路径为 /admin/attachment/upload/dir/images/module/admi

海豚php源码,基于 ThinkPHP5.1 实现的海豚后台登录源码分析

基于 thinkphp5.1 实现的海豚后台登录源码分析一、 首先来到登录代码处,部分代码截图,大家有兴趣可以自己去看源码登录处开始public function signin(){if ($this->request->isPost()) {// 获取post数据$data = $this->request->post();$rememberme = isset($dat...

weixin_39987211的博客 517

基于PHP的DolphinPHP(海豚PHP)快速开发框架.zip

基于PHP的DolphinPHP(海豚PHP)快速开发框架.zip

人类肠道微生物群落代谢建模

MICOMWeb 是款用户友好型网站,专为人类肠道微生物群落代谢建模设计。该网站旨在解决基因组尺度代谢模型(in silico)构建过程中的3大限制:① 使用 MICOM Python 包进行通量平衡分析时对用户 Python 编程知识的要求;② 支持预定义和用户自定义饮食,以生成专属代谢模型;③ 处理宏基因组鸟枪法测序或 16S 扩增子测序获得的真实丰度数据时,所需的高通量计算基础设施。本文展示了 MICOMWeb 的核心功能,用户可轻松开展虚拟实验,为3个已发表数据集的实验验证生成功能性假设。

多组・学・多组学 1169

海豚 php 普通联动,DolphinPHP海豚PHP-实现后台学生信息管理系统

前几天第一次听说这个框架,也是机缘巧合下,我使用这个框架实现学生信息管理系统,确实在界面实现上很方便,因为它有强大的构建器,可以快速渲染出表格,表单等。框架的话,多看官方文档好一些,我这里也就是记录一下使用这个框架的情况,可能每个人不一样。【1】我的开发环境在win10下使用phpstudy2018,PHP5.6以上的版本,才可以支持DolphinPHP1.4(海豚PHP)的框架。其中默认phps...

weixin_42362491的博客 884

保姆级教程:在通达信V7.611上配置欧奈尔RPS曲线(附完整公式与每日更新流程)

本文提供通达信V7.611配置欧奈尔RPS曲线的保姆级教程,涵盖从环境准备、基础设置到核心公式配置的全流程。详细讲解如何创建股票池、编写EXTRS基础公式及RPS显示公式,并附每日更新流程与实战应用技巧,帮助投资者精准捕捉强势股。

weixin_30000735的博客 460

海豚php 安装,DolphinPHP1.0.2发布

【更新日志】修复:一处单词拼写错误​修复:检查新版本时,普通用户会报节点不存在的问题(感谢网友:天天的反馈)修复:发送ajax时,有时候会报“未定义变量:_top_menus”或者“未定义变量:_location”的问题修复:某些情况下,找不到模板的问题修复:表格构建器中,如果数据没有主键时会报错的问题修复:单文件上传、多文件上传、单图片上传、多图片上传在触发器中切换会报错的问题改进:快速联动支...

weixin_42515045的博客 432

机器学习(三) ----------线性回归算法(梯度下降+正则化)

线性回归算法在机器学习中具有核心地位,它以其简单性和直观性为基础,为理解数据间的关系提供了基本框架。作为许多复杂算法的基础,线性回归不仅用于预测目标变量,还用于解释自变量对目标的影响。同时,它也是机器学习入门的经典算法,对于推广机器学习知识和技术具有重要意义。

2301_77539454的博客 1867

ARS408毫米波雷达数据解析避坑指南:从硬件连接到Python处理

本文提供了ARS408毫米波雷达从硬件连接到Python数据处理的完整实战指南。针对串口通信不稳定、数据解析错误等常见问题,详细解析了硬件连接方案选择、串口数据高效读取策略、二进制协议解析的位操作技巧,并给出了坐标转换、目标跟踪及实时可视化的代码实现,帮助开发者快速搭建稳定的雷达数据处理流水线。

weixin_29091105的博客 149

DolphinPHP

介绍: 一个基于ThinkPHP5.0开发的开源PHP快速开发框架,秉承极简、极速、极致的开发理念,为开发集成了基于数据-角色的权限管理机制,集成多种灵活快速构建工具,可方便快速扩展的模块、插件、钩子、数据包,统一了模块、插件、钩子、数据包之间的版本和依赖关系,进一步降低了代码和数据的沉余,以方便开发者快速构建自己的应用。 网盘下载地址: http://kekewangLuo.net/0nF3GVNKrPC0 图片: ...

banzhuan678的博客 159

直流电动机的建模仿真(1)他励,串励和并励电动机建模仿真

本文根据不同励磁方式的直流电动机的接线原理图,建立了相应的数学模型,然后根据与数学模型对应的等效电路以及模拟机械运动方程的等效电路,用Matlab/simulink中的SpecializedPower system库中的电路元件,建立了他励,并励和串励直流电动机的全等效电路仿真模型,经过与Matlab自带的直流电动机仿真模型比较以及仿真实例验证,所建立的仿真模型时完全正确的。

weixin_45670943的博客 7516

DolphinPHP 海豚PHP模块开发之接口改装

DophinPHP(海豚PHP)是一个基于ThinkPHP5.0.20开发的一套开源PHP快速开发框架,DophinPHP秉承极简、极速、极致的开发理念,为开发集成了基于数据-角色的权限管理机制,集成多种灵活快速构建工具,可方便快速扩展的模块、插件、钩子、数据包。统一了模块、插件、钩子、数据包之间的版本和依赖关系,进一步降低了代码和数据的冗余,以方便开发者快速构建自己的应用。 以上是官方介绍 ...

dragonlhp的博客 8256

STM32F407+OV2640的DCMI+DMA双缓冲JPEG图像采集系统

在嵌入式视觉系统中,数字摄像头接口(DCMI)是MCU连接CMOS图像传感器的关键硬件通道,其与DMA协同实现零CPU干预的高速数据流采集;而JPEG作为一种基于DCT变换与量化压缩的有损图像格式,依赖传感器端硬件编码引擎才能满足实时性要求。理解DCMI三重同步时序(PCLK/HSYNC/VSYNC)与DMA双缓冲机制的流水线协作原理,是突破带宽瓶颈、避免FIFO溢出和帧丢失的技术基础。该架构广泛应用于智能硬件、工业检测与边缘AI前端等需低功耗、高可靠图像捕获的场景,本文以OV2640与STM32F407为

weixin_42103128的博客 156

最小二乘拟合圆:使用拉格朗日乘子法

在本文中,我们将探讨如何使用拉格朗日乘子法来进行最小二乘拟合,并将其应用于拟合一个空间圆。首先,我们需要定义问题。给定一组二维或三维数据点,我们的目标是找到一个圆,使得这些数据点到圆的距离的平方和最小。为了找到最小值,我们需要计算拉格朗日函数的偏导数,并令其等于零。通过解决优化问题,我们可以找到最佳拟合的圆,以最小化数据点到圆的距离的平方和。其中,(x, y) 是圆心的坐标,r 是圆的半径,(xi, yi) 是数据点的坐标。其中,g(x, y, r) = 0 是约束条件,C 是常数,λ 是拉格朗日乘子。

TechProX的博客 473

海豚框架 多表插入数据(自定义按钮)

1.index 页面 自定义按钮 2.写中间方法 // 添加试题 public function testadd($id) //$id 为上面 自定义按钮 href=&gt;后面那个id { $types = TypeModel::all(); $arrays = range('A', 'G'); return view("te...

soulmybaby的博客 1140

harbor x509: certificate signed by unknown authority【20251222】

本教程通过「合并证书链(服务器端)+ 预置根 CA(客户端)」彻底解决了自签名证书的 x509 错误,同时集成了 Trivy 漏洞扫描,实现了 Harbor 从搭建到实用的全流程。证书链合并是服务器端的关键,确保客户端获取完整信任路径;客户端需同时配置「系统信任库 + Docker 信任目录」,避免 Docker 独立信任机制导致的问题;所有 IP 需保持一致(Harbor 配置、证书绑定、客户端访问),是避免错误的基础。

老韩的Linux云计算架构师进阶之路 681

怎么运行海豚php文件,DolphinPHP(海豚框架)初步学习

由于工作原因需要学习DolphinPHP框架,在此记录一下!首先交代下环境,我用的是phpStudy集成环境,然后海豚框架是最新的1.4.2版本ok,接下来我们开始学习,最基础的,是我们需要将我们下载的框架放在我们的Apache服务器下,然后指定框架入口public文件夹下。然后我们访问这个项目,会让检测你的环境,然后创建数据库,这些不在多说。接下来就是正式的应用一‘模块的添加1.首先在appli...

weixin_33823399的博客 1085

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

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

海豚php 上传图片,自定义分片上传字段

有用户说要断点续传,然后自己没研究过,但是发现webupload里支持分片上传的,就研究实现了下,本来试了一个stream js 但是在海豚里各种ui没调通。还有官方手册,终于把他搞出来了。思路,第一自己扩展sendFile 事件第二,改变分片上传参数,包括上传地址第三 实现分片上传的方法。WebUploader.Uploader.register({"name": "cutfile_upload...

weixin_42406647的博客 488

WINCC7.3破解文件

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

DolphinPHP ≤ 1.4.3文件上传漏洞分析

DolphinPHP(海豚PHP)是一个基于ThinkPHP5.1.39LTS开发的一套开源PHP。在DolphinPHP ≤ 1.4.3版本中,jcrop函数都没有对上传的文件进行后缀和文件类型校验导致可以上传任意文件。

Hananana46的博客 3789

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

海豚php增加后台页面,Ajax功能配置步骤 · 从DolphinPHP(海豚PHP)中把ZBuilder移植到oscshop2.0教程 · 看云...

首先拷出DolphinPHP中的后台底层控制器快速编辑模块,比如积木平台\app\system\admin\controller\Base.php中的quickEdit和getCurrModel方法拷贝至oscshop中的\oscshop\common\controller\AdminBase.php模块中。再修改oscshop中的\oscshop\admin\view\public\base.h...

weixin_36307086的博客 356

海豚php 上传图片,DolphinPHP(海豚PHP)快速开发框架 V1.0.0公测版发布

您可以轻松的应对复杂多变的表单、数据列表。数据列表集成类似EXCEL的快速筛选、排序、模糊搜索、AJAX编辑等功能,表单页集成常用的文本、下拉框、单选、多选、关键词、编辑器、文件上传、图片上传、图片裁切等控件,除此之外,您还可以灵活的扩展自己的控件,以便在自己的项目中重复使用。ZBuilder让您更加专注业务逻辑。ZBuilder构建类DolphinPHP内置了强大的快速构建器,可以帮助开发者快速...

weixin_30421043的博客 330

海豚 php 普通联动,普通联动 · DolphinPHP1.5.0完全开发手册-基于ThinkPHP5.1.41LTS的快速开发框架 · 看云...

## addLinkage('name值', '标题', '提示', '选项', '默认值', '异步请求地址' [, '后代name值', '请求参数名', '额外表单项值'])标识符:`linkage`| 版本 | 功能 || --- | --- || 1.3.3 | 支持发送额外表单项值 || 参数 | 含义 | 类型 || --- | --- | --- || ...

weixin_42316286的博客 447

海豚php框架论坛,单选-海豚PHP1.0.6完全开发手册-基于ThinkPHP5.0.10的快速开发框架...

addRadio("name值", "标题", "提示", "数据项", "默认值" [, "属性", "额外属性", "额外css类"])标识符:radio单选的用法和复选类似,请参照复选的用法。参数含义类型namename值stringtitle标题stringtips提示stringoptions数据项arraydefault默认值stringattr属性arrayextra_attr额外属...

weixin_32617915的博客 219

zbuilder php,具体步骤 · 从DolphinPHP(海豚PHP)中把ZBuilder移植到oscshop2.0教程 · 看云...

先在 https://m.gitee.com/tiandian/oscshop2 中下载oscshop 2.0 最新源代码搭建到环境中。拷出DolphinPHP中的ZBuilder核心代码目录到oscshop中的\oscshop目录里,比如积木平台中的\app\common\builder文件夹,如果是用的DolphinPHP代码,则具体查找出相应的ZBuilder核心代码文件夹,然后移植出来,并...

weixin_32816613的博客 427
上一篇: PHP比较字符串大小相关函数
下一篇: Centos7中lamp的PHP5.4升级成PHP5.6
Tacks
博客等级 码龄9年 37粉丝 97原创
评论 18
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值