C++后台开发,以我之见

C++后台开发学习路线 1.路线 一. 基础阶段 c/c++编程语言 linux基础 数据结构与算法 设计模式 脚本语言(可选) 二. 入门阶段 linux系统编程 linux网络编程 三. 进阶阶段 数据库mysql 分布式缓存redis 网络库 四. 项目实践阶段 编写简单FTP服务器 C++入门到精通Linux学习链接:零基础入门 C++Linux ​五. 高级阶段(可选) nginx z 阅读详情

今天趁着过完春节快要回公司工作之际,也马上进入金三银四的时期,谈谈我个人对后台开发的一些个人见解,希望能够对在校的学生或者刚刚接触C++后台开发的同学有点帮助。

        还记得自己在学校的时候,一直都比较注重的是:编程语言+数据结构与算法。没错,对于一个在校的计算机专业的学生,这是很重要的方面。但是,这往往不够,或许是因为毕业前一直没有进入企业实习,以至于自己在毕业之前,对自己未来的职业规划做得很不够,不知道自己以后会做什么方向,那时候比较宽泛且迷茫的定位是,只要是软件开发的工作,我都OK。毕业后,主要是从事C++后台开发,工作一段时间后,才知道自己擅长什么,对什么感兴趣。

        前端和后端,你喜欢什么?

一提到前端,大家都会想到html+javascript+css,或许这是web前端的最最基本的东西了吧。我个人会将与用户直接打交道的端称为前端,除了前面所提到的传统意义上的前端,我还会把android和ios开发的app称为前端。现在前端各种框架的迭代速度相当的快,要跟上各种比较NB的框架的步伐,也不是那么简单的事情。虽然工作之后,没有做过前端方面的项目,更多的是与前端工程师FE合作,但是我知道,前端领域也有很多东西要学,而且前端的东西由于能自己直接看到开发结果,或许在工作中会很有成就感,所以永远不要觉得前端工程师做的事情没技术含量,萝卜青菜,各有所爱,任何一个领域,只要深入了,都很有技术含量,关键在于自己喜不喜欢,擅长不擅长。就我个人而言,更喜欢的是后端开发,主要原因是在学校的时候一直学的是C++,工作之后一直做的是后端的项目,没有直接参与前端的项目,既来之,则安之,既然上天给我分配了一个方向,我就应该在这个方向上做深入研究。

        后台开发是什么?

我第一次听说过后台开发这个岗位是在腾讯的招聘网站上,有一个岗位叫后台开发。个人觉得,后台开发也很广,开发语言也很多,如:php,node.js,java,C/C++,go ,每一个公司都有自己主打的语言,如腾讯和百度的后端开发中,C++用的比较多,当然php也用得比较多,阿里和美团,java用得比较多。当然,语言只是一种实现工具而已,不能单一地认为那种语言好那种语言不好,没有最好,只有最适合。后台开发,是相对前端开发而言,个人觉得,所有跟前端直接交互的开发都可以认为是后台开发。企业里面,除了前端开发的岗位,就是后台开发了吗?当然不是。这也是我要说的,希望能够给在校的学生一点思考。在互联网公司里面,有美学功底非常好的UE工程师,他们常常会站在用户的角度进行审美,提高用户体验,能够在产品真正落地之前,做出各种demo;有市场调研和需求分析的产品经理PM,具有严密的逻辑思维和良好的沟通能力;有前面所提到的前端工程师FE,负责向后端发送用户提交的请求,并接收后端返回的结果,进行展示;有软件研发工程师RD,需要具备一定的研发能力和bug定位和修复,系统性能优化等能力;有测试开发工程师QA,上线前的最后把关;又做运维的OP,负责维护和监控线上的稳定;有做运营的,像双十一等大型的购物节,一般都需要强大的运营支持;有做大数据的,hadoop+spark+storm各种大数据框架;有做基础架构的;有做算法分析的。。。还有更多的职位。

        C++后台开发需要掌握什么?

这个话题有点大,而且像我这种小菜,只能抛砖引玉。语言只是基础,不能一味地去研究语法糖。记得我在学校的时候,特别喜欢去研究语法糖,现在想想,浪费了很多时间。当然,作为C++后端的研发工程师,你首先需要掌握C++的基础语法,需要掌握STL里面常用的库和算法,如果你觉得这还不够,你可以去系统地学习下boost库,里面多STL里面所不具有很备的,看看C++11就知道了,里面很多新增的东西都是来自boost库。当然,仅仅掌握语言还远远不够,C++做后台开发时,模块跟模块直接除了通过lib库或so库的方式相互调用外,还有更多的是采用网络交互,这个时候,你就需要掌握多线程编程和网络编程的基础知识,当然,由于开发效率的需要,现在你不需要从零搭建一个网络服务框架,比如:ACE、boost的asio和libevent。当然现在已经有各种开源的RPC框架了,比如google-rpc,你可以通过调用本地函数来完成网络包的发送与接收,so easy!那么网络通信包的格式如何定义呢?客户端和服务端需要提前约定?数据交互格式,常用的包括:json、xml和protobuffer,通常前端后后端交互会采用json,而后端各个模块的交互,你可以随便选择;对于HTTP协议的交互,我用的比较多的是json,而 tcp协议,我用的比较多的是protobuffer。当然,服务端的平台有很重要,国内后台开发,基本都是运行在Linux系统上,所以你需要掌握Linux系统的常用的命令,这样你才可以在Linux系统上运用自如,所以,如果你想从事或者即将从事C++后台开发,请暂时抛下VS下的C++学习,从现在开始,转向Linux平台下的C++开发,那里有你要编译器GCC/G++,调试时用到的gdb,如果你想依次性一个命令编译所有的文件,请学习下如何编写makefile。好了,有了编程语言,有了编译和调试方法,你就可以将你的应用程序放在你的Linux系统上监听客户端的请求了。如果某一天,你的程序出core了怎么办?你必须要学会如果找出bug,除了前面提到的gdb,在大型的应用里面,你必须要学会掌握如何追bug,这个时候,你就要学会打日志,并且分等级打印日志,这样一出问题了你就能够快速定位问题的所在。日志有了,程序也能正常跑了,那你怎么算你程序的性能或者收益呢?所以,你需要学会编写脚本语言,我个人推荐你去掌握shell脚本和python脚本,脚本语言能够一边执行一边编译,具有比较高的开发效率,不用你每次执行前编译,掌握了脚本,你不用再那么忙了,哈哈。

         提高自己的技术硬实力。技术的瓶颈是认知的问题,认知不是知其名,还需要知其因,更需要知其原。这个话题更大,但是适合很多技术岗位。在工作中,你不能只跟项目中的业务逻辑打交道,那样你会觉得自己做的事情越来越没意思,越来越没技术含量。你应该有一种开源的情怀,你要找一个比较NB的开源软件,如 redis, zookeeper,nginx等,去阅读其中的源码,当然,你也可以将你写的一些库上传到gitlab上,让大家给你提建议,相信开源让人进步;你可以去gitlab上下载和学习各种有意思的开源库,这会给你带来更多的成就感。同时你要学会利用各种资源来解决你所遇到的各种问题,如segmentfault,stackoverflow等国外著名的网站。

对于在校,想转C++后台开发的朋友,自学耗时比较久,成本高,技术栈不完善,架构不成体系,自律性差。学习进阶、完善技术栈体系、提升自己、跳槽涨薪、往更高层次发展。

推荐你可以看看这个视频,内容包括有C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,MongoDB,ZK,流媒体,Linux内核,P2P,K8S,Docker,TCP/IP,协程,DPDK多个高级知识点。视频链接:C/C++Linux服务器开发/Linux后台开发架构师-学习视频

大家也可以+C/C++ Linux后台服务器开发高级架构qun:正在跳转

视频内容:

 

 

 

 

【Linux】C++后台开发面试 本文将讲述(Linux)服务器后台开发岗位的要求,包含了大部分会遇到的面试题目。掌握文中提到的技术,也算少许入门水平了,此文既是面经,也是后台开发的入门手册。无论社招还是校招,都可作为一个参考。 本文内容收集自知乎和其他博客,在此整理成章。 校招:以C++基础为主,数据结构和常见算法(ACM经典题目)是必须掌握的。 技术类面试跟学校的经验 / 社团经验 / 学习成绩 挂钩不太高,当然不是说两者... 阅读详情

相关推荐

程序员告诉你:C/C++后台开发需要学习哪些技能书

前言:后台开发工程师主流使用的编程语言有C++、Java、PHP以及目前慢慢流行的Golang等。小编就将以C++的角度,讲讲如何学习和准备后台开发的岗位。 一、语言基础 无论是C++开发还是Java开发,对于一个码农而言,最重要的就是对于编程语言的熟悉。同样,无论从事哪种类型的岗位,首当其冲的就是要掌握好语言基础。 C++是一门博大精深的编程语言,不仅拥有继承于C语言的过程化程序设计思想,还包含有面对对象(OOP)的设计理念。强大而又复杂。相对来说,C++的学习成本较高,语言里面的坑较多。.

C语言C++学习俱乐部:765860056 6056

C/C++程序员技术发展方向(强烈推荐!!)

也有人可能会对测试开发岗位有点误解,以为去了就是鼠标点点就ok(不过我确实有认识的朋友做那样的测试),事实并不是那样,不仅仅需要测试基础,对于开发也是有一定要求的,至少得熟悉Java吧,不过你熟悉C++也是有机会和优势的哈。关于后端开发,我以前的分享基本上都是根据这块的需求来更新文章的,从最简单的C语言基础到后面的一些算法,更多的是希望大家打好基础,在后边学习更高级点的东西能有好点的基础;一般来说,测试开发工的岗位,就一定要求你懂研发,懂测试,并且还要有一定的深入工作的能力。

Linuxer_Martin 7724

大厂或许没有那么难进(C++后台开发)

前言 遥想上届2021届毕业的师兄们人均40w的年薪,自己是羡慕至极,然而未曾想到自己也能成为当初自己羡慕的人之一。接下来我将和大家分享一些自己找工作的准备和其中的感悟。 备战实习 过完2021年到开学已经是2月底了,互联网公司最早的招聘马上就开始了,然而自己还什么都没有准备,算法题,八股文,项目一个都没有。听上届的师兄说要从四月开始就要投简历面试了,这时才意识到事情的严重性,心想完蛋了,这我哪能找到实习啊,安心整秋招得了,而且导师不一定放实习。然而在一次组会上,导师竟然主动提出可以让我们暑期去实习。这让我

qq_34116958的博客 5679

C++后端开发学习路线(超级详细)

C/C++ 的执行效率高,但它也更偏向底层,实际开发过程中碰到的很多“偏难怪”问题都可能和操作系统有关系,解决此类问题要求对操作系统的底层原理有较深入的理解,重点包括内存管理(虚拟内存、内存分配机制等)和进程管理(进程和线程、并发、锁机制等)等。C++ 和 C语言虽然是两种编程语言,但它们的关系非常密切。C/C++ 后台开发涉及到的技能板块非常繁杂,短期内不可能全部都掌握,为了加快学习进度,尽早达到工作要求,我们需要暂时先舍弃一些过时的技能,或者对这些技能浅尝辄止,等到以后有余力/有需要的话再回来学习。

数据结构和算法教程(C语言版) 1万+

linux c/c++基础学习资料(百度云链接和提取码)

主要是linux c/c++基础学习资料,像linux命令字详解,linux下编程环境,C/C++基础,数据结构算法等,由于资源较大,附有百度云链接和提取码,对linux C/C++初学者有帮助!

智能音箱麦克风阵列实战:Python实现宽带GSC波束形成(附完整代码)

本文从工程实战角度,详细介绍了如何在智能音箱中利用Python实现宽带GSC波束形成算法。文章深入解析了广义旁瓣消除器(GSC)的核心架构,包括固定波束形成、阻塞矩阵与自适应滤波路径,并提供了完整的仿真代码、关键参数(如LMS步长)调优方法,以及面向嵌入式部署的计算优化与移植考量,旨在帮助开发者构建在真实噪声环境下高效工作的语音增强系统。

opencv7vision的博客 343

c++后台开发适合入坑吗?就业前景如何?

c++后台开发也可以叫c++后端开发,其实从技术上来说并无不同。c++后台开发就是基于linux环境和C++语言的服务器程序开发,像qq服务器、微信服务器、王者荣耀服务器等等。虽然现在各种高级语言大火,但是在高性能这一块,c++暂无敌手。这也是目前各个大厂,比如腾讯,字节,京东,阿里等一线互联网企业都在招人的原因,而且中高端的人员还比较稀缺,公司内部挖人的事也不少见。所以别看现在java /python现在市场火热,但c++后台开发这块岗位是真的香。这个香是香,但是入行的起点还是有的。如果你不是有一定的编程

技术Q君样:202432010的博客 8436

500道C++面试高频题解析(附答案、实战示例与进阶追问)

本文提供500道C++面试高频题的详细解析,涵盖基础概念到进阶应用,包括面向对象编程、内存管理、现代C++特性、并发编程等核心考点。每道题配有实战示例和进阶追问,帮助开发者突破八股文局限,掌握解决实际问题的能力,适合准备C++技术面试的工程师系统复习。

weixin_29002595的博客 312

Linux C/C++后端开发学习路线规划,零基础学C++必看教程

Linux C/C++后端开发学习路线规划,零基础学C++必看教程

m0_73443478的博客 1861

了解你的GPU:深入探讨AMD SMI

2024年9月17日 作者:Matt Elliott对于使用AMD硬件的系统管理员和高级用户来说,性能优化和高效的资源监控至关重要。AMD系统管理界面命令行工具`amd-smi`正是为了解决这些需求而设计的。amd-smi是一个多功能的命令行工具,专门用于管理和监控AMD硬件,主要侧重于GPU。作为未来取代`rocm-smi`的工具,`amd-smi`有望成为跨广泛设备的AMD硬件管理的主要工具。

数字人生 4524

二阶锥松弛在配电网最优潮流计算中的应用(IEEE33节点配电网最优潮流算例matlab程序)(yalmip+cplex)

文献[7]建立了以支路潮流计算为基础的OPF模型,针对OPF中的非凸性约束,采用SOCR技术将其松弛为二阶锥约束,整个 OPF 模型则被转化为二阶锥规划( Second Order Cone Programming,SOCP)问题,对其求解可以得到全局最优解。其次结合辐射型配电网潮流特点建立支路潮流约束,并考虑配电网中的可控单元,包括分布式电源和离散、连续无功补偿装置,建立其出力约束,该模型为非凸非线性模型;式中,αj,t和βij,t分别为t时段内节点i电压的二次方和支路ij电流的二次方。

weixin_47365903的博客 1万+

2022年C++后台开发,以我之见

今天趁着过完春节快要回公司工作之际,也马上进入金三银四的时期,谈谈我个人对后台开发的一些个人见解,希望能够对在校的学生或者刚刚接触C++后台开发的同学有点帮助。 还记得自己在学校的时候,一直都比较注重的是:编程语言+数据结构与算法。没错,对于一个在校的计算机专业的学生,这是很重要的方面。但是,这往往不够,或许是因为毕业前一直没有进入企业实习,以至于自己在毕业之前,对自己未来的职业规划做得很不够,不知道自己以后会做什么方向,那时候比较宽泛且迷茫的定位是,只要是软件开发的工作,我都OK。毕业后,主要是从事C+

资料qun832218493 384

【MATLAB】嵌入式PID控制参数整定与优化

本文提出了一种基于MATLAB仿真的嵌入式PID参数优化方法,解决了传统人工试凑法效率低、适应性差的问题。通过建立一阶滞后被控对象模型,对比分析了不同PID参数组合的性能表现,筛选出最优参数。仿真结果表明,优化后的PID参数能有效降低超调量(从传统方法的显著超调降至接近0%),缩短调节时间,提高稳态精度。最终将优化算法部署到STM32平台,实现了"仿真整定-参数优化-嵌入式落地"的完整开发流程。该方法显著提升了嵌入式系统的响应速度和控制精度,为工业控制应用提供了标准化解决方案。

unber的博客 46

Linux后台C++开发知识点

作者:yurunsun@gmail.com 新浪微博@孙雨润 新浪博客 优快云博客日期:2013年7月9日 <!-- body {font-size:14px; line-height:1.6; color:#333333; font:13px/1.4 Helvetica,arial,freesans,clean,sans-serif} body > *:fir

雨润的技术博客 3808

实战六十四:基于机器学习朴素贝叶斯的豆瓣Top250影评的情感分析与预测 附完整源码和数据

实战六十四:基于机器学习朴素贝叶斯的豆瓣Top250影评的情感分析与预测 附完整源码和数据

1565

杰理AC696N系列芯片外部中断使用教程

本教程详细介绍了杰理AC696N芯片的GPIO引脚中断唤醒功能实现方法。主要内容包括: 功能特点: 支持任意GPIO引脚配置为中断源 可灵活选择上升沿或下降沿触发 提供自定义中断回调函数接口 核心实现: 通过port_wkup_interrupt_init()函数配置GPIO属性 使用request_irq()注册中断服务程序 提供中断使能/关闭接口 注意事项: 此功能在低功耗模式下无效 需注意引脚冲突和中断优先级设置 建议在回调函数中实现简洁的逻辑 应用场景: 按键检测 外部信号监测 事件触发等 本方案提

qq_42014563的博客 944

C++后台开发

转自作者:AJ,自己留着学习。 在去年结束的秋季招聘中,后台开发或服务器开发的岗位需求一度火热,甚至超过了算法岗。不少同学从诸神黄昏的算法岗战场上退下,转向更偏向工程能力的后台开发岗,从而造成后台开发岗位竞争的大爆发。 后台开发工程师主流使用的编程语言有C++、Java、PHP以及目前慢慢流行的Golang等。本文就将以C++的角度,讲讲如何学习和准备后台开发的岗位。 一、语言基础 无论是C++开发还是Java开发,对于一个码农而言,最重要的就是对于编程语言的熟悉。同样,无论从事哪种类型的...

人面桃花 3606

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

C++后台开发技术栈

岗位要求 Linux C++开发(vivio) 熟悉掌握多线程/多进程 网络编程 常见RPC框架 设计模式 gdb调试等技术 计算框架mpi、tensorflow的研究与优化,不断提升性能与稳定性,支撑高效地算法模型训练 负责中间件、公共组件库的设计与开发,如日志、配置中心、rabbitmq、mysql、redis、RPC等框架 2、负责tars二次开发与优化,解决java应用与C++交互融合问题 具有较强的后台Server架构设计、开发以及性能调优能力 精通TCP/IP,HTTP/s,

haimianjie2012的专栏 6718

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

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

2023年C++后端开发,以我之见

虽然工作之后,没有做过前端方面的项目,更多的是与前端工程师FE合作,但是我知道,前端领域也有很多东西要学,而且前端的东西由于能自己直接看到开发结果,或许在工作中会很有成就感,所以永远不要觉得前端工程师做的事情没技术含量,萝卜青菜,各有所爱,任何一个领域,只要深入了,都很有技术含量,关键在于自己喜不喜欢,擅长不擅长。C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,MongoDB,ZK,流媒体,Linux内核,P2P,K8S,Docker,TCP/IP,协程,DPDK多个高级知识点。

资料qun832218493 2491

ssm框架搭建

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

c++ 开发中利用yaml-cpp读写yaml配置文件

在程序员的开发生涯中,读写配置文件必不可少。 配置文件有利于我们灵活配置工程,解决大量重复劳动,也方便调试。 配置文件的格式有很多,最简单的有一行一行的文本,也有像 json、xml、protocol buffer 这样结构化的格式,当然也有 yaml 这种格式。 今天的博文介绍的是如何在 C++ 开发中利用 yaml-cpp 开源库读写 yaml 配置文件。 如果有 Python 开发经验的同学...

frank 的专栏 6万+

【CPP面经】CPP后台开发面试经历

指针本身是常量,不可修改指向的地址,但可修改指向的值。

Ape's IT Blog 1374

C++后台开发的主流技能加点

后台开发工程师主流使用的编程语言有C++、Java、PHP以及目前慢慢流行的Golang等。本文就将以C++的角度,讲讲如何学习和准备后台开发的岗位。 一、语言基础 无论是C++开发还是Java开发,对于一个码农而言,最重要的就是对于编程语言的熟悉。同样,无论从事哪种类型的岗位,首当其冲的就是要掌握好语言基础。 C++是一门博大精深的编程语言,不仅拥有继承于C语言的过程化程序设计思想,还包含有面对对象(OOP)的设计理念。强大而又复杂。相对来说,C++的学习成本较高,语言里面的坑较多。语言基础的学习路线如下

weixin_42213176的博客 1769

C++后台开发之我见

C++后台开发之我见                                                                                                                    --------2017.2.6         工作也快两年了,偶然看到自己以前写过的一些技术博客,发现自己自毕业后一直没有更新过自己的技术博

JXH_123的专栏 2万+

C/C++后台开发需要点亮哪些技能树||(鹅厂为例)

前言 首先一般公司分为前端和后端,前端就是和用户打交道的,负责用良好的视觉效果将数据呈现给用户,广义的前端包括客户端(安卓、IOS)、Web前端、小程序等。 而与之对应的后端则是负责业务逻辑处理,比如下单、支付等,重在业务流程的处理。 后台一般和后端是一个意思,而服务器开发则稍微广义一点,不仅包含了后台开发,而且也包括支撑整个后台应用的基础开发,比如搜索引擎、微服务、RPC 框架、KV、存储、MQ 等。 后台/后端重在业务处理,是偏向应用层开发,而服务器开发不仅包括应用层开发,更是囊括了整个支撑后台业务的相

C/C++Linux、音视频、DPDK 3272
上一篇: 一个很重要但很多人不理解的技术,P2P丨网络穿透与NAT原理分析
下一篇: Linux内核设计与实现
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值