Android核心技术-day05-04-JavaSE多线程下载

BMS保护板原理图+PCB+固件源码+bin文件+上位机 BMS保护板原理图+PCB+固件源码+bin文件+上位机 单片机是STM32F303CCT6 1、带有软电源开关输入,带 LED (LOAD) 开/关 + 充电指示灯; 2、具有高压侧电源开关,控制通断; 3、隔离式 CAN 总线接口; 4、电流测量; 5、带有短路检测; 6、带有USB 接口通信和固件升级; 7、蜂鸣器指示错误状态; 8、体积小巧; 9、短时间最大负载电流+/- 100A,长时间约为70A; 10、最大充电电流 10A(带二极管)或 30A(带二极管旁路); 11、电池电压范围为 2.5V 至 4.5V; 12、包电压 12V 至 54V; 立即下载
package com.gaozewen.lib;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.RandomAccessFile;
import java.net.HttpURLConnection;
import java.net.URL;

public class MultiDownloader {
    public static final String path = "http://192.168.1.102:8080/xunlei.exe";
    public static final int TOTAL_THREAD_COUNT = 3;
    public static int runningThreadCount = 0;

    public static void main(String[] args) {
        try {
            URL url = new URL(path);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setRequestMethod("GET");
            int code = conn.getResponseCode();
            if (code == 200) {
                int length = conn.getContentLength();
                System.out.println("file length: " + length);
                // 创建一个空的文件,并且设置他的文件长度等于服务器上的文件长度
                RandomAccessFile raf = new RandomAccessFile(getDownloadFileName(path), "rw");
                raf.setLength(length);
                raf.close();

                int blockSize = length / TOTAL_THREAD_COUNT;
                System.out.println("every block size: " + blockSize);
                runningThreadCount = TOTAL_THREAD_COUNT;
                for (int threadId = 0; threadId < TOTAL_THREAD_COUNT; threadId++) {
                    int startPosition = blockSize * threadId;
                    int endPosition = blockSize * (threadId + 1) - 1; // -1 是到当前块的最后一个字节
                    if (threadId == (TOTAL_THREAD_COUNT - 1)) {
                        endPosition = length - 1;
                    }
                    System.out.println(String.format("threadId: %s\ndownload rage: %s to %s", threadId, startPosition, endPosition));

                    new DownloadThread(threadId, startPosition, endPosition).start();
                }
            } else {

            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 从网路路径获取文件名
     *
     * @param path 网络路径
     * @return 文件名
     */
    private static String getDownloadFileName(String path) {
        return path.substring(path.lastIndexOf("/") + 1);
    }

    /**
     * 下载文件的线程
     */
    private static class DownloadThread extends Thread {
        /**
         * 线程 id
         */
        private int threadId;
        /**
         * 当前线程下载的起始位置
         */
        private int startPosition;
        /**
         * 当前线程下载的终止位置
         */
        private int endPosition;

        public DownloadThread(int threadId, int startPosition, int endPosition) {
            this.threadId = threadId;
            this.startPosition = startPosition;
            this.endPosition = endPosition;
        }

        @Override
        public void run() {
            System.out.println(String.format("threadID: %s  begin working", threadId));
            // lest thread download it's self range data
            try {
                // 查询 记录断点信息的文件
                File finfo = new File(TOTAL_THREAD_COUNT + getDownloadFileName(path) + threadId + ".txt");
                if (finfo.exists() && finfo.length() > 0) { // 断点下载
                    FileInputStream fis = new FileInputStream(finfo);
                    BufferedReader br = new BufferedReader(new InputStreamReader(fis));
                    String lastPosition = br.readLine();
                    // This thread download data before times;
                    startPosition = Integer.parseInt(lastPosition);
                    fis.close();
                }
                // 第一次下载
                URL url = new URL(path);
                HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                conn.setRequestMethod("GET");
                System.out.println(String.format("begin and end: %s  range of download: %s to %s", threadId, startPosition, endPosition));
                conn.setRequestProperty("Range", String.format("bytes=%s-%s", startPosition, endPosition));
                // 从服务器下载资源
                int code = conn.getResponseCode();
                if (code == 206) {
                    InputStream is = conn.getInputStream();
                    // 第一次没有这个文件则创建,下次直接打开这个文件
                    RandomAccessFile raf = new RandomAccessFile(getDownloadFileName(path), "rw");
                    // !!! position of begin to write
                    raf.seek(startPosition);
                    byte[] buffer = new byte[1024];
                    int len = -1;
                    int total = 0; // 当前线程 这次下载的数据
                    while ((len = is.read(buffer)) != -1) {
                        raf.write(buffer,0,len);
                        total += len;
                        // 创建记录 保存当前线程下载的位置 (注意: rwd 同步实时写入到设备中)
                        RandomAccessFile infoRaf = new RandomAccessFile(TOTAL_THREAD_COUNT + getDownloadFileName(path) + threadId + ".txt","rwd");
                        infoRaf.write(String.valueOf(startPosition + total).getBytes());
                        infoRaf.close();
                    }
                    raf.close();
                    is.close();
                    System.out.println(String.format("thread: %s  download complete...",threadId));
                }else {
                    System.out.println("request download failed");
                }
            } catch (Exception e) {
                e.printStackTrace();
            }finally {
                synchronized (MultiDownloader.class){
                    runningThreadCount--;
                    if(runningThreadCount <= 0){ // 多线程下载完成 删除 位置信息文件
                        System.out.println("multi thread download complete.");
                        for (int i = 0; i < TOTAL_THREAD_COUNT; i++) {
                            File positionFile = new File(TOTAL_THREAD_COUNT + getDownloadFileName(path) + i + ".txt");
//                            System.out.println(positionFile.delete());
                        }
                    }
                }
            }
        }
    }
}

 

【带状电容器计算用于电容式触摸传感器应用】半数值模型的电容式触摸传感器集成于金属基材涂层中研究(Matlab代码实现) 内容概要:本文针对电容式触摸传感器在金属基材上应用时易受干扰导致信号衰减的问题,提出一种集成于金属基材涂层中的带状电容器半数值计算模型。通过理论推导建立传感器电容的数学模型,设定合理的边界条件并采用数值方法求解,利用Matlab实现完整的仿真代码,对传感器在金属背景下的电容特性进行精确建模与性能分析。该方法有效提升了传感器的灵敏度与抗干扰能力,适用于高精度、复杂环境下的触摸感应场景,具有良好的工程应用价值。研究不仅提供了详细的建模流程与仿真验证,还开放了可复现的代码资源,便于后续优化与拓展。; 适合人群:从事电容式传感器设计、嵌入式系统开发、人机交互技术研究及相关领域的科研人员,以及具备电磁场理论基础和Matlab编程能力的硕士、博士研究生;; 使用场景及目标:①用于金属表面电容式触摸传感系统的建模与性能优化;②为抗金属干扰传感器提供有效的半数值仿真方法与技术支撑;③辅助高校科研与教学中对电容耦合机制的理解及仿真平台搭建; 阅读建议:建议结合Matlab代码逐模块调试,深入理解模型中几何参数、材料属性及边界条件对电容输出的影响规律,可进一步推广至其他复杂结构或非理想环境下的传感器设计中。 立即下载

相关推荐

(Multisim课设资料)最全面函数信号发生器(三角波+正弦波+方波信号+锯齿波仿真设计+报告文档

内容概要:本文档是一份综合性科研技术资源汇总,系统梳理了工程与计算机科学领域的多项关键技术及其实现方法,涵盖图像处理、路径规划、无人机应用、通信技术、信号处理、电力系统优化、车间调度、雷达技术、微电网与综合能源系统调度等多个前沿方向。文档重点提供了基于Matlab和Simulink的丰富仿真案例,包括裂纹检测、双目视觉体积测量、卡尔曼滤波状态估计、永磁同步电机控制、无功优化、多目标调度算法(如NSGA-II、粒子群算法)在能源与交通系统中的应用,以及遗传算法、差分进化、人工蜂群等智能优化算法的代码实现。资源强调理论与实践深度融合,配套完整的仿真模型、算法代码与实验结果,具有较强的工程复现价值和科研指导意义。; 适合人群:具备一定编程基础的研究生、科研人员及从事自动化、电气工程、控制工程、通信、人工智能等相关领域工作的技术人员,尤其适合有1-3年工作经验的研发人员。; 使用场景及目标:①用于高校课程设计、毕业设计、科研项目开发和技术复现;②支撑电力系统优化、智能制造调度、智能交通路径规划、无人机控制等实际工程问题的算法研究与仿真验证;③帮助读者掌握主流优化算法与信号处理技术的核心原理与代码实现。; 阅读建议:建议读者结合文中提供的Matlab/Simulink代码与仿真模型进行实践操作,优先选择与自身研究方向相关的主题深入学习,并参考所提供的网盘链接获取完整资源以辅助调试与复现实验结果。

Android 多线程断点下载 Okhttp+AsyncTask 封装下载任务

先看一下效果图       实现过程并不是很难 下面代码中会有详细的注释 首先添加依赖和权限 compile 'com.squareup.okhttp3:okhttp:3.4.1' 下载状态的回调接口 public interface DownloadListener { void onProgress(int progres

louyulin的博客 1359

无刷直流电机BLDC无感+滑模观测器+转速电流双闭环PI控制(总共三个仿真模型)(Simulink仿真实现)

内容概要:本文档系统阐述了无刷直流电机(BLDC)在无位置传感器条件下的高性能控制策略,基于Simulink平台构建了三个相互关联的仿真模型,重点实现无感控制与滑模观测器(Sliding Mode Observer, SMO)相结合的转速电流双闭环PI控制系统。该资源摒弃了传统的霍尔传感器,利用滑模观测器实时估算转子的位置与转速信息,有效降低了系统成本并提升了在恶劣环境下的运行可靠性。仿真模型完整涵盖了逆变电路、空间矢量脉宽调制(SVPWM)、三相电流采样、坐标变换(Clark & Park)、PI调节器以及滑模观测器等核心模块,形成了一个闭环的、高动态响应的电机驱动系统。此外,文档还集成了模糊PID、传统PID等多种控制算法的对比仿真模型,便于研究者深入分析不同控制策略在动态响应、抗干扰能力和稳态精度方面的性能差异,为电机控制算法的研究与工程化应用提供了坚实的仿真验证基础。; 适合人群:具备自动控制理论、电机拖动原理及电力电子技术基础知识,并熟悉MATLAB/Simulink软件操作的电气工程、自动化、机电一体化等专业的高年级本科生、硕士研究生,以及从事电机驱动、新能源汽车、工业自动化等领域的研发工程师和技术人员。; 使用场景及目标:①深入学习和掌握无刷直流电机无位置传感器控制的基本原理与实现方法;②系统性地理解滑模观测器的设计思想、稳定性分析及其在转子位置与速度估计中的关键技术;③对比研究传统PI控制、模糊PID控制及滑模观测器在BLDC调速系统中的综合性能,分析其在不同工况下的鲁棒性与适应性;④为毕业设计、科研课题或工业项目中的电机控制系统开发提供可复用的仿真平台与技术参考。; 阅读建议:本资源以Simulink仿真为核心载体,建议使用者结合文档中提供的详细说明报告与参考文献,循序渐进地理解各功能模块的设计逻辑与参数整定方法。在学习过程中,务必动手运行并调试仿真模型,仔细观察并记录在不同负载突变、转速指令变化等工况下,电机的三相电流、转速响应曲线及滑模观测器输出的转子位置与速度的动态波形,从而深刻理解控制算法的内在机理。为进一步提升实践与创新能力,可尝试修改控制器参数(如PI增益、滑模增益),或替换不同的控制策略进行对比实验,探究其对系统性能的影响。

Static interface methods are only supported starting with Android N (--min-api 24): void butterknif

指定项目的 jdk 版本 为 1.8 主工程 app 目录下 build.gradle   android { ... // 指定jdk版本 compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VER...

知识改变一切 802

LTspice第三方SPICE模型集成全流程指南

SPICE模型是电子电路仿真的核心基础,它通过数学方程描述半导体器件的非线性、温度依赖与寄生特性,决定仿真结果是否具备工程可信度。其技术价值在于 bridging 理论参数与实测行为,显著提升电源、电机驱动及逻辑电路设计的一次成功率。典型应用场景包括IGBT开关损耗分析、LDO瞬态响应验证、CMOS逻辑门传播延迟评估等。而LTspice作为轻量级工业级工具,依赖用户主动集成原厂提供的.subckt或.model文本模型——这正是‘LTspice导入SPICE模型’和‘74HC14 SPICE模型’等高频搜索

weixin_33868027的博客 297

告别手动调参!PSCAD 4.2的Multiple-Run功能,5分钟搞定交流故障批量仿真

本文详细介绍了PSCAD 4.2的Multiple-Run功能如何高效处理交流故障批量仿真,告别传统手动调参的低效模式。通过五步配置法,工程师可在5分钟内完成数百次参数组合的仿真,显著提升电力系统分析效率。文章还包含工业级应用案例和高级调试技巧,助力实现故障仿真的自动化与智能化。

weixin_42552716的博客 274

Android核心技术-day06-03-调用系统短信发送(不需要授权)

package com.gaozewen.sendsms; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; public clas...

知识改变一切 666

TPAMI 2025新作LRFormer复现笔记:我的Windows 11 + RTX 4090配置全流程

本文详细记录了在Windows 11系统下使用RTX 4090显卡复现TPAMI 2025顶会论文LRTransformer的完整流程,包括硬件配置、系统优化、Python环境搭建及模型训练中的常见问题解决方案。特别针对Windows平台特有的路径管理、CUDA版本冲突和显存优化等关键技术细节提供了实用指南,帮助开发者高效完成环境搭建和模型训练。

weixin_29094301的博客 411

Only fullscreen opaque activities can request orientation

manifest里 Activity 中 android:screenOrientation="portrait" 和 styles.xml 中 &lt;item name="android:windowIsTranslucent"&gt;true&lt;/item&gt;  同时设置的话 可出现崩溃 解决方案 去掉 android:windowIsTranslucent=“true” 即可...

知识改变一切 487

Qt开发中彻底解决中文乱码问题

中文乱码问题主要源于编码不一致需要同时设置控制台和Qt应用程序的编码确保项目文件和环境配置的编码一致文件操作时注意指定正确的编码。

qq_53832058的博客 3403

GEE:提取研究区 NDVI/LST/RVI 并进行时间序列线性插值填补缺失像素和Savitsky-Golay(SG)滤波平滑处理

养乐多_本文将介绍使用Landsat数据集,构建时间序列,并使用线性插值算法填补缺失数据,或者去云空洞,并进一步对完整的时间序列数据进行SG滤波处理。

养乐多的博客 3195

Android核心技术-day05-03-学生信息管理系统小练习

package com.gaozewen.studentsystem.db; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; imp...

知识改变一切 462

YOLOv9改进策略【损失函数篇】| Slide Loss,解决简单样本和困难样本之间的不平衡问题

本文记录的是改进YOLOv9的损失函数,将其替换成Slide Loss,并详细说明了优化原因,注意事项等。Slide Loss函数可以有效地解决样本不平衡问题,为困难样本赋予更高的权重,使模型在训练过程中更加关注困难样本。若是在自己的数据集中发现容易样本的数量非常大,而困难样本相对稀疏,可尝试使用Slide Loss来提高模型在处理复杂样本时的性能。

Limiiiing的博客 2592

Android核心技术-day02-03-获取手机内部存储空间

package com.gaozewen.storagespace; import android.os.Bundle; import android.os.Environment; import android.support.v7.app.AppCompatActivity; import android.text.format.Formatter; import android.widg...

知识改变一切 358

36、真核生物RNA PolII启动子预测相关研究

本文综述了真核生物RNA聚合酶II启动子预测的研究进展,涵盖转录调控机制、核心启动子元件(如TATA框、INR、GC框)、转录因子结合位点预测的挑战与方法。介绍了基于权重矩阵、神经网络和隐马尔可夫模型等多种启动子预测算法,并探讨了启动子分类策略及评分加权方法。通过Hertz-Stormo-Hartzell流程和基因微阵列分析实例,展示了如何识别保守调控序列。文章还总结了当前预测技术的局限性,提出了整合多组学数据、开发深度学习模型、加强实验验证等未来研究方向,旨在提升启动子识别的准确性与生物学意义。

palm99的专栏 187

ZYNQ系列PS侧和PL侧DDR3或DDR4在AD(Altium Designer 25)中的layout布线规则约束

DDR3或DDR4的PCB布线规则通常有相对固定的要求,对应的,在PCB设计时有固定的约束设置。

FPGA艺术家的博客 785

Android核心技术-day02-05-创建别的应用程序可以读写的文件

package com.gaozewen.createfile; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import java.io.FileOutputStream; public class MainActivity extends AppCompatActivity { ...

知识改变一切 335

android 蓝牙通讯demo

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

Android核心技术-day04-01-网络图片查看器(安卓消息循环机制)

package com.gaozewen.netimageviewer; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.os.Handler; import android.os.Message; import a...

知识改变一切 334

假人有限元模型

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

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Android核心技术-day05-05-安卓下的多线程下载(带ProgressBar)有bug版

package com.gaozewen.multidownloader; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.EditText; import android.widget.Lin...

知识改变一切 280

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

Android核心技术-day01-01-click事件的多种写法

方法一: Button bt_click = findViewById(R.id.bt_click); bt_click.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { System.out.println("哈...

知识改变一切 246

Android核心技术-day06-04-短信助手

package com.gaozewen.smshelper; import android.content.Intent; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import a...

知识改变一切 234

Android核心技术-day04-02-网页源代码查看器(StreamUtils)

package com.gaozewen.htmlviewer.utils; import java.io.ByteArrayOutputStream; import java.io.InputStream; /** * 流的工具类 * @author gzw * @version $Rev$ * @des ${TODO} * @updateAuthor $Author$ * @u...

知识改变一切 232

Android核心技术-day01-03-短信发送器(授权代码封装)

BaseActivity.java package com.gaozewen.smssender; import android.content.DialogInterface; import android.content.pm.PackageManager; import android.os.Build; import android.support.annotation.NonNul...

知识改变一切 232

Android核心技术-day06-05-Activity生命周期,应用场景

package com.gaozewen.lifecycle; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; public class MainActivity extends...

知识改变一切 227

Android核心技术-day02-06-读取别的程序中公开的文件

package com.gaozewen.hacker; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Toast; import java.io.BufferedReader; import ...

知识改变一切 227

Android核心技术-day06-01-显式意图和隐式意图

package com.gaozewen.intent; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; public cla...

知识改变一切 227
上一篇: Android核心技术-day05-03-学生信息管理系统小练习
下一篇: Android核心技术-day05-05-安卓下的多线程下载(带ProgressBar)有bug版
心灵泽尘
博客等级 码龄10年 32粉丝 83原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值