strace调试tomcat

Ubuntu 12.04下Tomcat 7安装与生产级加固指南 Apache Tomcat 是 Java Web 应用最主流的轻量级 Servlet 容器,其服务部署本质是 JVM 运行时环境、Linux 系统服务管理(init.d/upstart)与 Web 容器配置三者的深度协同。理解 Tomcat 启动流程需掌握 JAVA_HOME 配置原理、catalina.sh 脚本执行机制及端口监听的底层网络绑定逻辑;而 Ubuntu 12.04 作为 init.d 时代典型发行版,其 apt 包管理集成的 service 注册、用户隔离与日志轮转,构成了可审计、可回滚的运 阅读详情

strace调试tomcat

今天碰到一个底层问题,需要使用strace调试运行在tomcat容器下web服务对操作系统调用,google了好多博客都没有完整的答案,东拼西凑加上不断尝试,总算找到办法。
Step1: 找到tomcat进程ID

-bash-4.2# ps aux|grep -v grep|grep tomcat|awk '{print $2}'|head -n1
25253

Step2: strace附加到进程

strace -f -p 25253 -T -tt -o /var/logs/strace.log

参数说明:

  1. -p {pid},调试正在运行的进程
  2. -f 跟踪子线程,一定要打开,否则就只能看到FUTEX_WAIT一条信息,猜测原因tomcat是通过子线程完成web请求的,主进程都是wait状态。
  3. -T显示每个调用的耗时,调试信息最后一个尖括号<>,单位是秒,例如<0.002616>。
  4. -tt显示调用的时间,具体到微秒。-t显示调用时间到秒。可以和其他日志匹配问题发生时间,很关键。
  5. -o trace输出文件。

示例:

[pid 75799] 10:10:07.842021 <... write resumed> ) = 2296 <0.101173>
[pid 75794] 10:10:07.842036 restart_syscall(<... resuming interrupted call ...> <unfinished ...>
[pid 75756] 10:10:07.842051 <... restart_syscall resumed> ) = -1 ETIMEDOUT (Connection timed out) <0.012292>
[pid 75755] 10:10:07.842078 futex(0x7f2420030654, FUTEX_WAIT_PRIVATE, 3, NULL <unfinished ...>
Debian/Ubuntu下Railo+Tomcat+Apache手动集成指南 CFML运行时引擎(如Railo)需依托Java Servlet容器(如Tomcat)运行,而生产级部署普遍采用Apache前置代理的分层架构。其核心原理在于:Apache负责静态资源服务、SSL终止与安全策略,Tomcat提供标准化Servlet生命周期管理,Railo则专注CFML语法解析与业务逻辑执行。这种组合具备高稳定性、强可审计性与细粒度调优能力,特别适用于政务、医保、公积金等对系统长期稳定性和合规性要求严苛的遗留系统维护场景。本文聚焦Debian 7与Ubuntu 13等LTS旧版环境,深入解析 阅读详情

相关推荐

Tomcat SSI漏洞CVE-2019-0227深度剖析:从原理到复现与防御

服务器端包含(SSI)是一种允许Web服务器在HTML页面中动态嵌入指令执行结果的技术,常用于调试或包含文件内容。其工作原理是通过Servlet解析特定文件中的指令标签并执行。这项技术的价值在于简化动态内容生成,但同时也引入了安全风险,因为不当的指令处理可能导致非预期行为。在应用场景中,SSI常被用于遗留系统或特定管理页面。本文聚焦于Apache Tomcat中SSI功能的一个历史漏洞——CVE-2019-0227,该漏洞源于`printenv`指令在处理异常路径时可能泄露敏感信息。通过分析**路径遍历**

weixin_30279315的博客 359

mysql ping 阻塞_mysql_ping 阻塞问题 | 学步园

在日常开发过程中,为了解决Mysql has gone away问题使用了函数mysql_ping进行数据库的重连,不过在使用中发现mysql_ping有可能会永远阻塞,测试如下:首先建立好数据库连接,然后sleep(20),在20秒内添加iptables规则,如下:iptables -A INPUT -p tcp --dport 3306 -jDROP20秒后使用mysql_ping测试连接,发...

weixin_29596423的博客 491

Ubuntu 14.04下Tomcat 7安装与稳定运行实战指南

Tomcat 是 Java Web 应用最经典的轻量级 Servlet 容器,其部署原理涉及包管理、依赖解析、进程服务化与 JVM 运行时配置等基础技术栈。在老旧但仍在政企内网服役的 Ubuntu 14.04 系统中,因官方源归档导致 apt-get update 失败、libc6 版本锁死、upstart/systemd 初始化冲突等典型问题频发,凸显出系统兼容性与长期支持(LTS)环境下的运维复杂性。本文聚焦于 Tomcat 7 在废弃源环境下的可复现安装、服务启动排障及最小化加固,覆盖 apt 源迁移

weixin_30680385的博客 368

Tomcat反应慢strace追踪

彻底找到 Tomcat 启动速度慢的元凶 ...

too_money的博客 586

Linux IO模型本质:同步异步阻塞非阻塞的物理实现与选型指南

IO模型是高并发系统性能的底层基石,其核心在于操作系统如何协调用户态与内核态的数据流动。同步指调用方线程是否等待结果返回,异步则依赖内核完成后的主动通知(如信号或回调);阻塞表现为进程进入TASK_INTERRUPTIBLE状态挂起,非阻塞则立即返回EAGAIN错误并交由应用轮询决策。这些概念并非抽象分类,而是直接映射到sys_read()路径、epoll_wait()机制、socket选项控制等真实内核行为。技术价值体现在资源效率——BIO线性消耗内存与线程,NIO通过事件驱动实现连接数万级扩展,AIO虽

dejz8829的专栏 390

Web服务器故障排查实战:从I/O瓶颈定位到应急恢复全流程

在Linux服务器运维中,系统性能瓶颈分析与故障排查是保障服务稳定性的核心技能。其原理在于通过监控系统资源使用率、进程状态和I/O吞吐等关键指标,快速定位问题根源。掌握这项技术能极大提升线上故障的应急响应效率,减少业务中断时间,广泛应用于高并发Web服务、数据库、微服务等场景。本文以一次真实的服务器应急演练为例,深入剖析了如何运用vmstat、iostat、pidstat等工具链,精准定位因日志脚本异常导致的磁盘I/O瓶颈,并系统演示了从进程终止、日志清理到服务重启的完整恢复流程,为构建系统化的故障排查心智

weixin_34056162的博客 343

透过 Go 语言探索 Linux 网络通信的本质

各种编程语言百花齐放、百家争鸣,但是 “万变不离其中”。对于网络通信而言,每一种编程语言的实现方式都不一样;但其实,调用的底层逻辑都是一样的。linux 系统底层向上提供了统一的 Socket 通信系统函数,动态链接库中就是实现网络通信的关键类库。下面我们会以 Go 语言为例,来分析网络通信数据传输的路径;最终揭开各大编程语言网络通信的神秘面纱。唯一不变的是变化,新技术层出不穷。对于我们技术人来说,不断学习新的技术是永无止境的,时间长了会陷入疲惫不堪。

A码农先森的专栏 544

Apache排错四步法:从systemd假启动到日志静默的系统化诊断

Web服务器排错本质上是分层故障定位问题。Apache作为经典进程模型服务,其运行依赖systemd服务管理、配置语法解析、模块动态加载、文件系统权限及日志输出链路五大基础能力。当出现服务无法启动、500错误或日志空白等现象时,根本原因往往不是Apache自身崩溃,而是配置链断裂、权限错配或日志流向被systemd-journald劫持等隐蔽性问题。掌握apachectl configtest的局限性、journalctl与systemd状态的映射关系、以及mod_info提供的运行时配置快照能力,可将模糊

weixin_34258838的博客 363

关于strace的一点东西

好久没写博客了,感觉有点惭愧,觉得自己也应该静下心来利用自己可分配的时间去提升自己.        虽然最近在看一些Python的东西,可是觉得自己还是不能忘记本行啊,Linux C的一些东西必须一直好好温习.        不废话,今天打算写一个简单的东西, strace , 应该都对它或多或少的知道一些.很多时候除了core dump, backtrace的方式去排查程序的问题外, str

ZoMoe's eye 2215

ubantu和 centos7 实时查看tomcat错误信息

切换到tomcat/logs目录,执行tail -f catalina.out命令。 退出tail的命令是Ctrl+c。

u013558123的博客 1576

深度伪造检测实战:轻量级频域特征 pipeline 部署指南

深度伪造检测(deepfake detection)是多媒体内容安全的核心技术,其本质是通过建模生成式篡改在像素与频域留下的微弱异常痕迹。传统端到端大模型虽在标准数据集上表现优异,却因训练域与真实场景失配、计算开销高、缺乏可解释性而难以落地。本文聚焦于工程可复现的实践路径,提出‘人脸定位→频域伪造特征提取(Xception-FCN + Frequency-Aware Masking)→轻量分类决策’三段式解耦架构,兼顾精度、延迟与可解释性。该方案已在边缘设备(Jetson Orin NX)实现单帧<48ms

weixin_33437929的博客 310

五种利用strace查故障的简单方法

我一直惊讶为什么这么少的人认识到可以利用strace来干的事,它一直是我的第一调试工具,因为基本上它存在于我运行过的所有的Linux系统上,它可以用来在很多方面进行故障诊断。 什么是strace? strace是一个非常简单的工具,它可以跟踪系统调用的执行。最简单的方式,它可以从头到尾跟踪binary的执行,然后以一行文本输出系统调用的名字,参数和返回值。 其实它可以做的更多:

红心地瓜的专栏 3万+

SAP移动类型

SAP移动类型移动类型定义 移动类型定义

qq_20593197的博客 6211

Linux下tomcat启动特别慢

问题 这两天由于公司有个新项目,所以在阿里云购买了一些新的服务器,环境搭建完成之后,启动tomcat的时候发现巨慢,有图有真相: 可以看到启动的毫秒数有多久… 分析 为了找出原因,首先打印日志,把log4j2的日志层级全都打印了出来,但是没有发现有报错信息。之后我查看了一下启动进程,发现进程是启动了的,所以排除jvm退出引起的。那么,为什么程序会被阻塞呢?继续分析,我排除了CPU、内存不足引起的问题,排除了硬盘空间不足引起的问题,天呐️ 还是没有找到原因,接着分析,同一个环境在其他的服务器上是正常的(

说不如做 2269

Python实战:用BM3D算法给老照片去噪(附完整代码+数据集)

本文详细介绍了如何使用Python和BM3D算法为老照片进行高效去噪。通过完整的代码实现和数据集,读者可以快速掌握图像去噪技术,包括环境配置、算法原理、参数调优及效果评估,帮助恢复珍贵老照片的清晰度。

weixin_29057237的博客 239

维纳(Wiener)复原滤波器的三种推导形式及其在图像处理中的应用

本文深入解析了维纳(Wiener)复原滤波器的三种核心推导形式:卷积形式、矩阵向量形式和频域形式,并重点阐述了其基于线性最小均方误差(LMMSE)估计的核心思想。通过Python实战演示,展示了频域形式如何高效地在图像去模糊与噪声抑制之间取得平衡,是图像复原领域的经典且实用的工具。

net55的博客 580

linux动态追踪神器——Strace实例介绍【转】

Strace是Linux下一款通用的进程动态跟踪工具,用来追踪程序执行时的系统调用和所接收的信号。其应用方法如下图(部分)。 首先,简单说说它的使用参数,Strace的参数包括输出参数、过滤参数、统计参数、跟踪参数、启动参数和其他杂项。详细的看帮助文档或者搜索它的用法,我们只简单介绍几个常用的参数: -p Pid 跟踪指定的进程号的进程。 -o 文件 输出追踪信息到文件...

weixin_30367945的博客 148

避开ANSYS SOLID65钢筋模拟的坑:从材料TB到实常数R的完整配置清单

本文详细解析了ANSYS SOLID65单元在钢筋混凝土模拟中的关键配置与优化技巧,涵盖材料TB设置、实常数R配置及收敛性优化。特别针对钢筋建模的分布式钢筋模型进行深度解析,提供实战验证的参数设置手册,帮助工程师避免常见错误,提升模拟精度与效率。

weixin_30898555的博客 365

Ubuntu 18.04 手动部署 Tomcat 9 生产级实践指南

Tomcat 是 Java Web 应用最主流的 Servlet 容器,其核心价值在于轻量、可控与可嵌入性;其运行原理依赖于 JVM 生命周期管理、Connector 网络模型及 CATALINA_HOME/CATALINA_BASE 分离架构。在遗留系统运维、等保合规加固和教学环境标准化等场景中,手动部署官方二进制包相比 apt 安装具备供应链安全(SHA-512 校验)、JVM 参数精细化控制(如 G1 GC 调优)和多实例隔离(CATALINA_BASE)等不可替代的技术优势。本文聚焦 Ubuntu

weixin_33968104的博客 364

BMS硬件设计要点:从STM32主控到BQ76920监控芯片的工程实践

电池管理系统(BMS)是锂电安全与寿命保障的核心,其硬件设计涉及微控制器选型、专用监控芯片接口、电源完整性、信号完整性及PCB布局等多维度协同。基于STM32与BQ76920的典型双层架构,需深入理解功能安全解耦原理——关键保护由ASIC硬件实现,算法决策交由MCU完成,契合ASIL-B等级要求。技术价值体现在毫秒级硬件保护响应、±10mV电压采样精度及抗EMI鲁棒性设计;广泛应用于电动工具、储能系统与轻型电动车等中高功率场景。本文聚焦BMS控制板硬件实现中的高频时钟EMC、I²C总线信号完整性、被动均衡可

weixin_30591519的博客 92

SAP Fiori Launchpad 上看不到任何 tile 应该怎么办?

中心UI组件是一个框架,为所有SAPFiori应用程序提供公共基础设施SAPFiorilaunchpad是所有SAPFioriUI的基础,并为SAPFiori应用程序提供基本功能,如登录,界面大小,应用程序之间的导航,和基于角色的应用程序目录。ABAP前端服务器包含所有基础设施组件,用于为客户端生成SAPFiori应用程序特定的UI,并与SAPBusinessSuite后端系统通信。SAPFiori应用程序的处理过程如下首先,客户端加载SAPFiori应用程序的界面。...

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 946

从LD_PRELOAD到系统调用劫持:让25年老程序在现代Linux上运行的兼容层原理与实践

二进制兼容性是软件工程中的经典问题,指编译后的程序在不同系统环境下的运行能力。其核心原理在于应用程序二进制接口(ABI)和系统调用(Syscall)的匹配,当程序依赖的库版本、函数调用约定或内核接口发生变化时,就会产生兼容性断裂。在Linux环境中,动态链接器提供了LD_PRELOAD机制,允许在运行时优先加载自定义共享库,实现对标准库函数的劫持与替换。这项技术的工程价值在于,无需修改原始程序二进制文件,就能解决依赖库缺失、API过时、路径重定向等兼容性问题。通过拦截glibc函数调用,开发者可以构建轻量级

weixin_34342905的博客 416

优化算法 | 赏金猎人优化算法(Bounty Hunter Optimizer, BHO)及其在多无人机移动边缘计算与路径规划中的应用(附matlab源代码)

移动边缘计算(Mobile Edge Computing, MEC)通过将计算资源下沉至网络边缘,有效解决了物联网终端设备计算能力不足与能耗受限的问题。无人机(Unmanned Aerial Vehicle, UAV)因其高机动性、灵活部署和广域覆盖等优势,被广泛用作MEC的移动服务器平台。多无人机辅助MEC系统的核心优化问题在于:如何在满足任务处理时延约束和无人机能量限制的前提下,联合优化无人机的三维飞行轨迹、任务卸载决策与计算资源分配,以最小化系统总能耗或最大化任务完成效率。

尘世冰封的专栏 224

SpringBoot+Vue构建农产品直卖平台技术解析

电商系统架构在现代互联网应用中扮演着重要角色,其核心价值在于实现生产端与消费端的高效连接。通过SpringBoot和Vue的前后端分离架构,开发者可以构建高性能的电商平台,特别适合处理农产品这类具有高频次、小批量特点的交易场景。SpringBoot作为后端框架提供了强大的交易引擎和库存调度能力,结合MyBatis的灵活SQL处理,能够完美应对农产品复杂的分类体系和动态查询需求。Vue.js的前端组件化开发则实现了商品多维筛选、实时库存等核心功能。这种技术组合在农产品直卖平台等垂直电商领域展现出显著优势,为农

weixin_34087307的博客 254

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

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

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

Nginx无报错偶发超时:从网络抓包到eBPF内核追踪的完整排障指南

在分布式系统与微服务架构中,网络服务的偶发性性能问题,如接口超时,是运维和开发面临的常见挑战。这类问题的根源往往涉及网络协议栈、操作系统调度及应用程序逻辑等多个层面的复杂交互。其基本原理在于,客户端请求在流经反向代理、后端服务及下游依赖时,任一环节的延迟或阻塞都可能导致整体响应超时。从技术价值看,精准定位这类“静默”故障,对于保障服务SLA、提升系统可观测性至关重要。典型的应用场景包括高并发Web服务、API网关以及微服务间的通信。本文将聚焦于使用tcpdump进行网络层抓包分析,并结合eBPF这一先进的内

weixin_34417183的博客 398

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

Linux命令背后的三层隐喻结构:文件、管道与权限

Linux命令并非孤立指令,而是根植于‘一切皆文件’核心哲学的操作接口。其设计遵循系统调用层、文件抽象层与权限控制层的三层结构,支撑起进程管理、网络诊断、日志分析等关键能力。理解`ls`的元数据语义、`ss`的内核直读机制、`chmod`的三维权限模型,是实现稳定运维与高效排障的技术基础。这些能力广泛应用于金融交易系统、容器编排、云原生服务等高可用场景,也是掌握`strace`系统调用追踪和`journalctl`结构化日志分析的前提。

weixin_34008933的博客 333

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

上一篇: 2019-05-06 tomcat+nginx
下一篇: 2019-05-10
CommanderZero
博客等级 码龄9年 6粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值