-
Day20_Java(8.21)_网络
2020-08-23 19:03:13Day20_Java_网络 ip地址:每一台计算机在网络中有唯一的网络地址 32位进制 8位一部分 ...URL:统一资源定位符 映射的路径 通过遗传字符串定位到一个具体的资源(文件,视频,音频…) 传输层协议 TCP:可靠Day20_Java_网络
ip地址:每一台计算机在网络中有唯一的网络地址
32位进制 8位一部分
192.168.1.1
确保你们连接在同一网段下,连接同一个热点
通过ping命令测试是否能够连接到另外一台计算机
端口号:当前计算机通过防火墙对外暴露的服务
80—>http
8080–>oracle/tomcat默认的端口
3306–>mysql
URI:统一资源标志符
URL:统一资源定位符 映射的路径
通过遗传字符串定位到一个具体的资源(文件,视频,音频…)
传输层协议
TCP:可靠的安全的高成本的
三次握手
像打电话一样,确保服务器收到数据
UDP:不可靠不安全的低成本的
负责发送一个数据包
像写信一样
当前软件架构
B/S:浏览器服务器Browser/Server
不需要下载客户端,
服务器压力资源大
C/S:客户端服务器Client/Server
需要下载客户端
客户端会时刻要求更新
还可以分担一部分资源压力
客户端和服务器:
服务器:任何一台提供资源分享的计算机都可以被称为服务器
客户端:在网络中需求资源的一台计算机
网络传递过程,客户端和 服务器互相发送数据的过程Java中如何实现网络编程
java.net
Socket套接字,可以看成是一个管道
实际上客户端和服务器之间传递的就是Socket对象
使用Java代码实现了TCP协议传输
1.一个客户端的程序和一个服务器端的程序
2.服务器新建一个ServerSocket对象,构造器提供开放的端口port
3.服务器要启动并且监听访问的客户端
ss.accept();
4.客户端新建一个Socket对象,构造器提供IP地址和端口号
5.使用同一个Socket来作为媒介,使用它的输入流和输出流传递数据
6.如果服务器端要使用多线程处理客户端传过来的socket,需要用一个线程类来处理socket.对监听的方法进行死循环包装,每当接受到一个socket的时候,就开启一条线程来处理逻辑
使用java代码UDP协议传输
1.一个客户端程序和服务端程序
2.服务端需要DataGramSocket -
java源码包---java 源码 大量 实例
2013-04-18 23:15:26util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码... -
java实现遗传算法与bp神经网络_CGP与演化神经网络
2020-11-23 06:51:55树是图的一种特殊形式,其中两个节点之间最多只能有一条路径(序列就是连接的节点形成的一条路径)。在笛卡尔遗传规划(CGP)中,基因型表示为一列整数映射到有向图,而不是树,其长度是固定的,而表现型的长度取决于...一、Cartesian genetic programming(CGP)介绍
GP和EP都倾向于使用解析树表示,但在解析树中基因型和表现型之间没有区别。树是图的一种特殊形式,其中两个节点之间最多只能有一条路径(序列就是连接的节点形成的一条路径)。在笛卡尔遗传规划(CGP)中,基因型表示为一列整数映射到有向图,而不是树,其长度是固定的,而表现型的长度取决于基因的数量。中性是指具有相同适应度的基因型。在一个基因融合的群体中,中性的存在可能会进一步提高适应度。值得注意的是,只有当中性变化有可能改变未来基因型变化的潜在影响时,基因型冗余产生的中性才有用。在CGP中,CGP被表示为一种索引图,该索引图是以线性整数字串的形式编码的,其输入、终端集以及输出节点都按照顺序进行编号,终点函数也分别编号,从而将基因型被一一映射到索引图中。由于存在大量冗余,有大量的基因型映射到相同的基因型。在进化的开始阶段,节点冗余非常大,因为在早期的种群中,许多节点没有连接起来。在运行过程中,节点冗余逐渐减少到一个平均节点数。CGP的另一种冗余形式,也存在于所有其他形式的GP中,是功能冗余即多个节点实现了一个子函数,而实际上可以用更少的节点实现该子函数。冗余节点数量的增长构成了膨胀。第三种形式的冗余被称为输入冗余,即某些节点函数没有连接到某些输入节点。未连接的节点可能会经历中性更改,然后连接起来——这可能是实现更高的适应度所必需的。一个具有冗余输入的节点,在经历了改变节点函数的特性的突变之后,可能突然变得有用起来。功能冗余可能对目标函数或程序的可演化性有积极作用[1]。
二、演化神经网络介绍
遗传算法是一个通用的框架,可以根据具体问题来应用遗传算法,整体框架可以分为三个部分:交叉、变异与适应度。整个流程可以理解为有一个种群,不断的进行交叉与变异,使用评价函数来评估他们对当前环境的适应度,适应环境的双亲与后代会被保留,不适应的将会被淘汰,通过不断迭代,最终留下最适应环境的个体。演化神经网络的主要流程是:生成初始种群,确定好种群规模后,循环生成染色体,将每一代染色体加入到初始种群中;按照个体网络(chromesome)生成规则生成个体网络。
三、CGP与演化神经网络的区别与联系
将遗传算法融入神经网络可以获得更好的效果,比如将进化策略融入了CNN模型,并实现了程序自组网络,得到的网络分类效果比人工组多层网络的训练效果要好。建立演化神经网络的整体流程如下所示:1.种群规模
101个网络
2.交叉
pass
3.变异
两种变异:
3.1 change learningrate
3.2 change networkstructure
3.2.1 remove layer
3.2.2 add layer
3.2.3 replacelayer
4.适应度函数
fitness = accuracy ofdataset
while condition:
Parent Selection (rouletteselection method)
Mutuate two times
Select the best offspring
Evaluate generation innew train epoch
generation ← (generation +1)
conditon:
种群里的网络每次迭代训练若干次(人为设定)
or
将适应度fitness 倒数前十的网络杀掉,直到剩下的最后一个网络
下图描述了一个具有6个输入和3个输出的程序的基因型和基因型-表现型映射的例子:
图1 基因型——表现型映射图
上图中有6个输入、3个输出和3个函数的程序(0、1、2矩形节点,斜体表示基因型)。灰色方块表示未连接在索引图内的节点。
CGP与演化神经网络的相同之处在于他们都使用上一个节点的输出当做下一个节点的输入,在神经网络中使用的是上一层节点的输出作为下一层节点的输入。在CGP索引图中,如果0、1、2使用不同的函数就会产生不同的映射,这与神经网络当中使用的函数也是不同的,神经网络当中还要涉及到归一化(在后面会讲到)。而且,如果基因型有所改变,整个索引图网络的连接方式以及输出都会相应改变。这里以BP网络为例进行说明,一个BP网络结构如下图所示:图2 一个简单的BP网络结构
下图是一个更加简化的神经网络:
图3 BP网络的简化图
不算输入层,上面的网络结构总共有两层,隐藏层和输出层,它们“圆圈”里的计算都是下图的计算组合:
图4 隐层的计算公式
使用函数运算是为了将输出的值域压缩在(0,1),也就是进行归一化,因为在这个网络中每一层输出的值都将作为下一层的输入,只有经过归一化,才可以避免某个输入无限大,从而导致其他输入无效,最终网络训练效果会非常不好。在CGP索引图中并没有如上图所示的权值,整个网络中只有前馈,并没有反馈,而神经网络具有反向传播,并且通过反馈对连接权值进行调整,其完整的网络结构如下图所示:
图5 完整的BP神经网络结构图
神经网络的训练是有监督的学习,也就是输入X有与之对应的真实值Y,神经网络的输出Y与真实值之间的损失LOSS就是网络反向传播的东西,整个网络的训练过程就是不断缩小损失LOSS的过程。在CGP索引图网络中,没有损失LOSS值,只是通过前馈的方式传递计算误差,整个索引图的编码方式都是以基因型为准的,神经网络中也不会有节点冗余、功能冗余和输入冗余的情况出现(本节引用链接:https://mp.weixin.qq.com/s?__biz=Mzg2MzE2MzUxMg==&mid=2247483804&idx=1&sn=6111220d83620772188dec8e11014923&chksm=ce7d848bf90a0d9da3036c1d917a3261daf2022620c609c08d91747c237ad052c50ff5acb6a5&scene=21#wechat_redirect)。
综上,CGP索引图与演化神经网络可以理解为“形似”但原理上还存在很多差别,它们的相似之处在于在整个网络中都使用上层个节点的输出当做下一层节点的输入;它们的不同之处在于在神经网络中,要对每一个输入进行归一化计算,而在CGP中没有归一化操作。CGP存在的冗余问题在神经网络中是不存在的。CGP索引图的输入、终端集、终点函数以及输出节点都是按照顺序进行编号的并且节点之间没有设置连接权值,但神经网络每一层的节点之间有连接权值并且通过反向传播将计算的损失LOSS值在网络中进行一个反馈,从而不断降低LOSS值,使整个网络达到更好的训练效果。
参考文献
[1]Miller J, Thomson P. Cartesian Genetic Programming In: Proc. Of the Third European Conference on Genetic Programming, LNCS 1802[J]. 2000.其他参考资料具体见https://blog.csdn.net/chile_wang/article/details/101047811
图1来源具体见参考文献[1]
图2、3、4、5来源具体见
https://mp.weixin.qq.com/s?__biz=Mzg2MzE2MzUxMg==&mid=2247483804&idx=1&sn=6111220d83620772188dec8e11014923&chksm=ce7d848bf90a0d9da3036c1d917a3261daf2022620c609c08d91747c237ad052c50ff5acb6a5&scene=21#wechat_redirect
-
JAVA_API1.6文档(中文)
2010-04-12 13:31:34java.security.cert 提供用于解析和管理证书、证书撤消列表 (CRL) 和证书路径的类和接口。 java.security.interfaces 提供的接口用于生成 RSA Laboratory Technical Note PKCS#1 中定义的 RSA(Rivest、Shamir 和 ... -
java源码包2
2013-04-20 11:28:17util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码... -
java源码包3
2013-04-20 11:30:13util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码... -
java源码包4
2013-04-20 11:31:44util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码... -
java api最新7.0
2013-10-26 17:34:06java.security.cert 提供用于解析和管理证书、证书撤消列表 (CRL) 和证书路径的类和接口。 java.security.interfaces 提供的接口用于生成 RSA Laboratory Technical Note PKCS#1 中定义的 RSA(Rivest、Shamir 和 ... -
java开源包1
2013-06-28 09:14:34BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加... -
java开源包12
2013-06-28 10:14:45BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加... -
Java资源包01
2016-08-31 09:16:25BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加... -
JAVA上百实例源码以及开源项目
2016-01-03 17:37:40util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码... -
java开源包101
2016-07-13 10:11:08BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加... -
java开源包11
2013-06-28 10:10:38BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加... -
java开源包2
2013-06-28 09:17:39BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加... -
java开源包3
2013-06-28 09:20:52BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加... -
java开源包6
2013-06-28 09:48:32BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加... -
java开源包5
2013-06-28 09:38:46BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加... -
java开源包10
2013-06-28 10:06:40BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加... -
java开源包4
2013-06-28 09:26:54BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加... -
java开源包8
2013-06-28 09:55:26BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加... -
java开源包9
2013-06-28 09:58:55BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加... -
java开源包7
2013-06-28 09:52:16BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加... -
JAVA上百实例源码以及开源项目源代码
2018-12-11 17:07:42Java实现的FTP连接与数据浏览程序 1个目标文件 摘要:Java源码,网络相关,FTP Java实现的FTP连接与数据浏览程序,实现实例化可操作的窗口。 部分源代码摘录: ftpClient = new FtpClient(); //实例化FtpClient对象 ... -
成百上千个Java 源码DEMO 4(1-4是独立压缩包)
2017-03-29 17:40:59Java实现的FTP连接与数据浏览程序 1个目标文件 摘要:Java源码,网络相关,FTP Java实现的FTP连接与数据浏览程序,实现实例化可操作的窗口。 部分源代码摘录: ftpClient = new FtpClient(); //实例化FtpClient对象 ... -
成百上千个Java 源码DEMO 3(1-4是独立压缩包)
2017-03-29 17:39:54Java实现的FTP连接与数据浏览程序 1个目标文件 摘要:Java源码,网络相关,FTP Java实现的FTP连接与数据浏览程序,实现实例化可操作的窗口。 部分源代码摘录: ftpClient = new FtpClient(); //实例化FtpClient对象 ... -
Java 1.6 API 中文 New
2013-10-26 14:08:22java.security.cert 提供用于解析和管理证书、证书撤消列表 (CRL) 和证书路径的类和接口。 java.security.interfaces 提供的接口用于生成 RSA Laboratory Technical Note PKCS#1 中定义的 RSA(Rivest、Shamir 和 ... -
[Java参考文档]
2013-03-19 16:56:15java.security.cert 提供用于解析和管理证书、证书撤消列表 (CRL) 和证书路径的类和接口。 java.security.interfaces 提供的接口用于生成 RSA Laboratory Technical Note PKCS#1 中定义的 RSA(Rivest、Shamir 和 ... -
java jdk-api-1.6 中文 chmd
2018-03-22 11:32:15javax.sql.rowset.serial 提供实用工具类,允许 SQL 类型与 Java 编程语言数据类型之间的可序列化映射关系。 javax.sql.rowset.spi 第三方供应商在其同步提供者的实现中必须使用的标准类和接口。 javax.swing 提供...