学习笔记

一文搞懂交叉熵损失

本文从信息论和最大似然估计得角度推导交叉熵作为分类损失函数的依据。 从熵来看交叉熵损失 信息量 信息量来衡量一个事件的不确定性,一个事件发生的概率越大,不确定性越小,则其携带的信息量就越小。 设X是一个离散型随机变量,其取值为集合X=x0,x1,…,xn ,则其概率分布函数为p(x)=Pr(X=x),x∈X,则定义事件X=x0 的信息量为: I(x0)=−log(p(x0)) 当p(x0)=1时,该事件必定发生,其信息量为0. 熵 熵用来衡量一个系统的混乱程度,代表系统中信息量的总和;熵值越大,表明这个系统的不确定性就越大。 ...

动画 | 什么是堆排序?

 回顾一下我们学过的选择排序,在无序区找到一个最小(大)的元素需要比较n-1次,找到第二小的元素需要比较n-2次,直到最后比较1次。而堆排序因为二叉堆的性质,堆顶就是最大的元素,查找次数只有一次,但是将无序转成有序中间还需要一个预处理过程:构造堆有序。...

Docker swarm实战总结

一、简介 Swarm 是 Docker 官方提供的一款集群管理工具,其主要作用是把若干台 Docker 主机抽象为一个整体,并且通过一个入口统一管理这些 Docker 主机上的各种 Docker 资源。 Docker Swarm 包含两方面:一个企业级的 Docker 安全集群,以及一个微服务应用编排引擎。 集群方面,Swarm 将一个或多个 Docker 节点组织起来,使得用户能够以集群方式管理它们,可以自如地添加或删除节点。 编排方面,Swarm 提供了一套丰富的 API 使得部署和管理复杂的微服务应用变得易如反掌。通过将应用定义在声明式配置文件中,就可以使用原生的 Docker 命令完成部署。 ...

Rabbit安装(单机及集群,阿里云)

前言 虽然我并不是部署人员,但是自己私人测试环境的各类东东还是得自己安装的。 尤其在规模不大的公司,基本安装部署工作都是后端的份内之事。 那么最令人痛苦的,莫过于自己就是安装大佬教程走,但是就是过不去。尤其是初学者,解决问题的能力,还不足,往往就直接卡死了。 其实还有另外一个问题,那就是很多的教程,包括许多视频的教学,大多采用不真实的环境。要么是多台虚拟机实现集群,要么是一台线上服务器走天下。当然作者们也有着诸多考虑,有的是为了学员可以零成本的感受安装,另一方面学员大多都是学习知识,而不是为了实际应用(真的懂得,又不大需要这个东东)。最重要的是,学习阶段,大部分安装都是单机的,可以满足需求了。 ...

Java 复制Excel工作表

本文归纳了关于Java如何复制Excel工作表的方法,按不同复制需求,可分为: 1. 复制工作表 1.1 在同一个工作簿内复制工作表 1.2 在不同工作簿间复制工作表 2. 复制指定单元格数据 对于复制方法copy(),这里简单整理了一个表格,其中包含了对数据复制的不同应用需求,可参考使用: 方法 解释 copyFrom(Worksheet worksheet) 复制自源工作表的数据 copy(CellRange sourceRange, CellRange destRange) ...

python之MiniWeb框架

本次学习MiniWeb框架的目的并不是能够完成框架的编写,而是需要学习框架编写中的思想,主要是理解路由表的定义和自动维护、视图函数的作用、前后端分离的开发思想,以及WSGI协议中的application函数的实现与调用的思想。 以往,我们多完成的是静态web服务器,主要处理的都是一些已经‘写死’的数据,那么今天,我们来学习一下动态数据的处理。 说到动态数据,我们就需要了解一个东西,那就是web框架。 所谓web框架简单地说就是用来处理数据或模板的一个py程序。 那么接下,我就简单的给大家简述一下一个浏览器访问动态数据的整体流程。 ...

205K+程序员关注过的问题:为什么不应该使用Java的原始类型?

 在逛 Stack Overflow 的时候,发现了一些访问量像熊耳山一样高的问题,比如说这个:为什么不应该使用Java的原始类型?访问量足足有 205K+,这不得了啊!说明有很多很多的程序员被这个问题困扰过。实话实说吧,本文之前的我就是其中之一。...

Scala函数式编程(四)函数式的数据结构 下

前情提要 Scala函数式编程指南(一) 函数式思想介绍 scala函数式编程(二) scala基础语法介绍 Scala函数式编程(三) scala集合和函数 Scala函数式编程(四)函数式的数据结构 上 1.List代码解析 今天介绍的内容,主要是对上一篇介绍的scala函数式数据结构补充,主要讲代码。可以先看看上一节,主要讲的是函数式的list,Scala函数式编程(四)函数式的数据结构 上。这些代码我都放在我的公众号里面,包括函数式的List以及一个函数式的二叉搜索树,关注公众号:哈尔的数据城堡,回复“scala树数据结构”就能直接获得(写文章不容易,大哥大姐关注下吧 :) )。 ...

JAVA使用SnakeYAML解析与序列化YAML

1.概述 本文,我们将学习如何使用SnakeYAML库将 YAML文档转换为Java对象,以及JAVA对象如何序列化为YAML文档。 2.项目设置 要在项目中使用SnakeYAML,需要添加Maven依赖项(可在此处找到最新版本): org.yaml snakeyaml 1.25 3.入口点 ...

最短路径问题#

 本文将解析如何使用 Dijkstra 算法求解最短路径问题...

Socket与系统调用深度分析

学习一下对Socket与系统调用的分析分析 一、介绍 我们都知道高级语言的网络编程最终的实现都是调用了系统的Socket API编程接口,在操作系统提供的socket系统接口之上可以建立不同端口之间的网络连接,从而使我们可以编写各基于不同网络协议的应用程序。而用户程序一般都是运行在用户态,依靠的Socket接口也是在在用户态,我们都知道socket接口是通过系统调用机制进入内核,从而从内核的层面提高服务。本次实验主要需要分析出socketAPI函数是如何进行系统调用的。 首先我们再明确一下系统调用和socketAPI之间的关系:也就是说系统调用是使得API能获得内核支持的途径。 ...

从零开始—Socket系统调用和多态封装

 1 重新搭建实验环境前面都是用实验楼环境做的实验,偷的懒总是要还的,这一次重装环境前后花了十几个小时,踩了无数的坑。...

记一次 Kafka 集群线上扩容

友点击下方链接,查看群详情: 后端进阶技术交流群 博客园 首页 新随笔 联系 订阅 管理 记一次 Kafka 集群线上扩容 前段时间收到某个 Kafka 集群的生产客户端反馈发送消息耗时很高,于是花了一段时间去排查这个问题,最后该集群进行扩容,由于某些主题的当前数据量实在太大,在对这些主题迁移过程中话费了很长一段时间,不过这个过程还算顺利,因为在迁移过程中也做足了各方面的调研,包括分区重平衡过程中对客户端的影响,以及对整个集群的性能影响等,特此将这个过程总结一下,也为双十一打了一剂强心剂。 排查问题与分析 ...
青岛软件培训

可能你正在寻找一家靠谱的IT培训机构,学习一些专业的软件开发技术,找一份得体的工作。恰巧我们就是一家踏踏实实做教育的IT人才培养机构,我们咨询电话是 0532-85025005,如果你确实对IT感兴趣,我们不妨交流一下。

申请免费试听课程