- 浏览: 871686 次
- 性别:
- 来自: 济南
-
文章分类
- 全部博客 (280)
- java相关 (29)
- linux系统 (55)
- ipsec (0)
- ssl (3)
- 信息安全 (13)
- web相关 (35)
- windows (9)
- c,c++ (14)
- log4j (3)
- hibernate (8)
- sqlite (1)
- 程序人生 (2)
- js (2)
- 生活点滴 (3)
- 网络相关 (14)
- 问题积累 (15)
- 数据库相关 (27)
- 软件测试 (2)
- PKI相关 (2)
- 程序设计 (7)
- 犄角旮旯 (0)
- 杂七杂八 (0)
- 硬件相关 (14)
- 防火墙 (2)
- 电子商务 (2)
- 多媒体相关 (1)
- 内存管理 (4)
- 面向对象 (1)
- csp (1)
- 驱动开发 (3)
- 移动开发 (2)
- openssl多线程实例 (1)
最新评论
-
xiaoyao3857:
博主很有探索精神嘛,学习了
Linux主机名Hostname详解 -
hiskyrisa:
言简意赅,好文章。
Flex是什么 -
layznet:
犯了类似错误。使用的是derby数据库。driverClass ...
java.sql.SQLException: No suitable driver -
idision:
你好,文章有一句createSubjectKeyId(keyT ...
bouncycastle 产生证书 -
zheng12tian:
代码有全的不?只贴一部分,,,,
在LOG4J中把日志写入远程数据库
Linux操作系统以其
独有的开放性、稳定性、高效率等特点,受到越来越多有识之士的青睐。随着IT产业巨头纷纷宣布对Linux的支持,Linux正在迅速扩展其应用市场,特
别是服务器市场。在标准上,Linux和POSIX1003.1兼容,但他具备比以住的UNIX系统更合理的内核结构。由于他的开放性,各种被人们广泛应
用的网络协议都在该系统中得到了实现。现在人们所使用的Linux系统一般是指由Linux核心、外壳(SHELL)及外围应用软件构成的发行版本。
Linux发行版本是不同的公司或组织将Linux核心、外壳、安装工具、应用软件有效捆绑起来的结果,所以种类繁多,各有各的优缺点。但就其总体而言,
这些发行版本具备对尽可能多的网卡的支持。本文仅就RedHat5.1这个特定发行版本下的网卡的选择、安装、配置进行讨论,希望对于其他发行版本的同样
问题有点借鉴作用。 就象UNIX,Linux支持的网卡主要是以太网卡。如3COM、ACCTON、AT&T、IBM、CRYSTAL、D-LINK等众多品牌的以太网卡只要安装配置正确,都能够得到您所期望的效果。 一、 Linux中网卡的工作原理
为了将这个问题说明的更清楚一些,不妨先简要地剖析一下Linux是如何让网卡工作的。一般
来说,Linux核心已实现了OSI参考模型的网络层及更上层部分。网络层的实现依赖于数据链路层的有效工作。网卡的驱动程式就是数据链路层和物理层的接
口。通过调用驱动程式的发送例程向物理端口发送数据,调用驱动程式的接收例程从物理端口接收数据。 1.网卡驱动程式 简单地说,要将您手中的网卡利用起来,您唯一要做的是得到这块网卡的驱动程式。驱动程式提供了面向操作系统核心的接口和面向物理层的接口。 驱动程式的操作系统接口是一些用于发现网卡、检测网卡参数连同发送接收数据的例程。当驱动程
式开始运作时,操作系统首先调用检测例程以发现系统中安装的网卡。假如该网卡支持即插即用,那么检测例程应该能够自动发现网卡的各种参数;否则您就要在驱
动程式运作前,配置好网卡的参数供驱动程式使用。当核心要发送数据时,他调用驱动程式的发送例程。发送例程将数据写入正确的空间,然后激活物理发送过程。
驱动程式面向物理层的接口是中断处理例程。当网卡接收到数据、发送过程结束,或发现错误时,网卡产生一个中断,然后核心调用该中断的处理例程。中断处理例程判断中断发生的原因,并进行响应的处理。比如当网卡接收到数据而发生中断时,中断处理例程调用接收例程进行接收。 2.驱动程式工作参数 驱动程式的工作参数因网卡性质的不同而不同,大致包括I/O端口号、中断号、DMA通道、共
享存储区等。输入输出端口号又被称为输入输出基地址,当网卡工作于端口输入输出模式时被使用。端口输入输出模式需要CPU的全程干预,但所需硬件及存储空
间需要较低。CPU通过端口号指定的空间和网卡交换数据。中断号是网卡的中断序号,只要不和其他设备冲突即可。当网卡使用DMA方式时,他要使用DMA通
道批量传输数据而无需CPU的干预。 对于一块具体的网卡,假如网卡支持完全自动检测,那么一个参数也不用指定,驱动程式的检测例
程会自动设定所需参数。一般情况,您需要人工设定这些参数的一部分。假如您的网卡使用端口输入输出模式,您要设定端口号和中断号。假如您的网卡使用DMA
模式,您要设定DMA通道和中断号。假如您的网卡使用共享存储区的模式,那您就得设定共享存储区的地址范围。 3.驱动程式的使用方式 有了网卡的驱动程式后,您能够选择是把驱动程式加入到Linux核心之中还是把驱动程式加工
成单独模块。Linux系统一个引人入胜的长处就是能够定制系统的核心。把需要频繁调用的功能加入系统核心,能够大大提高系统的效率。在这种情况下系统启
动时,系统核心自动加载网卡的驱动程式。驱动程式的参数能够通过LILO命令参数加以指定。系统启动后驱动程式永久驻留核心,不能用常规的方法将其卸载。
至于定制的系统核心,是通过重新编译得到的;如何编译核心将在后文叙及。 假如把驱动程式编译成可装载模块,就能够用系统提供的命令在系统启动后随时加载。随时加载的好处是减少内存开销,易于管理,但同时也牺牲了一点网络传输的效率。驱动程式的参数是在命令行中直接输入或通过配置文档指定。 二、 网卡安装前的准备
在安装网卡前,务必检查是否具备下列条件: 1.硬件方面 ●以太网卡 ●网络连接线及连接头,如10base-T一般为8芯双绞线配RJ-45接口 2.软件方面 ●Linux操作系统 ●网卡驱动程式(目标码或源代码)
●*网卡配置程式
●*软件研发工具,如GNU工具包(包括编译器gcc、make等)
3.系统配置信息
●可用的端口地址
●可用的中断号
以上不带星号标记的是必要条件,带星号的是视情况不同而需要的条件。具体情况在下面进一步说明。
三、 网卡的安装及配置
第一步:配置以太网卡的工作参数
配置网卡就是配置网卡的工作参数,如端口地址、中断号等。网卡的缺省参数一般存储于网卡内部 的EEPROM,这是网卡出厂前配置好的。缺省参数在大多数情况下是可行的,但假如这些参数和您的系统有冲突并且网卡又不支持软件动态配置,那么您就要使 用网卡的配置程式。并不是任何的网卡都要经过这一步,因为有些网卡支持通过驱动软件及其输入参数来确定网卡的工作参数。能够通过查阅网卡使用说明书来确定 这一点。
网卡的配置程式和驱动程式不同,配置程式仅仅用来对网卡EEPROM中的配置进行修改。网卡 程式本身可能运行在其他操作系统下,如WINDOWS95/98、OS/2、DOS等。假如是非Linux平台,那您就先在适合配置程式运行的系统中安装 网卡,按配置程式说明配置网卡参数。然后再在Linux系统下安装该网卡。
第二步:安装Linux系统
假如您将要安装以太网卡的Linux系统本身还未安装,那么能够先试着在安装Linux的同时安装网卡。这一步成功的前提是您的Linux发行版本包含将要安装的网卡的驱动程式。
运行Linux的安装程式,按提示进行操作,别忘了安装核心的网络部分。当进行到LAN配置 时,安装程式会列出他支持的任何网卡的类型。看看您的网卡是否榜上有名。随着Linux发行版本的不断升级,现在RedHat 6.0已覆盖了常用的网卡类型。假如很幸运地您的网卡恰好在其中,那么下文讨论的很多步骤都能够不必考虑了,安装程式会自动完成网卡的安装和驱动。但假如 没找到适用于您的网卡类型,也不必担心,继续下一步。
第三步:手工安装网卡
安装网卡也就是安装网卡的驱动程式。网卡要工作必须要有驱动程式,并且驱动程式越成熟越好。 驱动程式一般由网卡的生产或供给商提供。由于Linux是个起步不久的新兴操作系统,网卡的生产商并不一定提供Linux环境下的驱动程式。这时候您就得 从其他途径想办法了,比如到INTERNET上专门提供硬件驱动程式的网站查找一下,也能够在新闻组上贴个求助信息。总之,只有得到网卡的驱动程式后,方 可进行下一步。
网卡的驱动程式有两种类型。一是可直接使用的二进制代码;另一种是驱动程式的源代码。二进制代码一般是预先编译好的可装载模块。源代码能够编译成可装载模块,也能够编译成系统核心的一部分。如何把源代码编译成可装载模块不在本文讨论之列,具体能够查阅驱动程式的说明书。
1.可装载模块的使用
系统提供了一组命令用于将驱动程式模块载入内存执行。这些命令包括modprobe、insmod、Ismod、rmmod。modprobe 和insmod命令功能相似,但是方式各异。
●modprobe 命令使用配置文档/erc/config.modules来加载可执行模块。要用 modprobe命令加载以太网卡的驱动程式,能够在 config.modules文档中加入:
alias eth0 drivermodule (drivermodule是驱动程式模块的名称)
这行配置信息把以太网卡的设备名和驱动程式模块联系起来。modprobe命令依据这条信 息,自动加载存放于 /lib/library/xxxx/net目录下名为 drivermodule.o的模块。因此要使 modprobe命令找到驱动程式模块,必须将该模块放在 /lib/library/xxxx/net目录下。
那么驱动程式的参数如何指定呢?还是使用conf.modules文档。方法是在接着上述配置信息的后面加入下行信息:
options drivermodule parml=valuel,parm2=value2,……
这里parm1 是驱动程式能够接受的参数名,valuel是该参数值;依次类推。
比如options cs89x0 io=0x200 irq=0xA media=aui
●insmod命令直接通过命令行参数将驱动程式模块载入内存,并能够在命令中指定驱动程式参数。例如:
insmod drivermodule.o parml=valuel,parm2=value2,……
以上两个命令中能够使用驱动程式参数要依据具体的网卡及其驱动程式而定,要仔细阅读网卡及驱 动程式的说明书。有的网卡驱动程式能够用这些参数覆盖网卡本身EEPROM中存储的参数。有的则必须使用EEPROM中的参数。有的因为驱动程式不自动检 测网卡使用的参数,所以还得把网卡使用的EEPROM中的参数传给驱动程式。
卸载驱动程式模块使用rmmod命令:
rmmod drivermodule.o
2.把驱动程式编译入系统核心
除了以可装载模块的形式使用驱动程式,还能够把驱动程式编译进Linux核心,以获取更高的 效率。这种方式需要驱动程式的源代码、Linux核心源代码及其编译工具。Linux核心的编译过程包括配置核心、重建依赖关系、生成核心代码等步骤。配 置核心的过程是用系统提供的配置工具(make config 或make menuconfig)重新生成用来编译核心的众多make文档的过程。为了让核心的配置工具了解您的网卡驱动程式,您需要修改一些核心的配置文档。
(1)修改配置文档:主要修改核心源代码目录下的四个文档,即drivers/net /CONFIG文档、drivers/net/Config.in文档、drivers/net/Makefile 文档和drivers/net/Space.c文档。CONFIG和Config.in文档用于控制核心配置工具(make config 或make menuconfig)的运行,主要是加入关于是否包括该网卡的支持提示。Makefile 和Space.c文档用于编译核心代码并说明面向核心的接口。周详语句参见下面例子。
(2)运行核心配置工具:在核心源代码目录下执行make config或 make menuconfig命令。 make config是面向命令行的,通过逐句回答提问来配置核心。由于其在配置过程中不可改变或撤消以前的回答,故多有不便。make menuconfig 则是通过窗口菜单方式,使用起来很方便。就本文而言,您只要在上一步中正确修改了配置文档,那么在config中会出现是否需要该网卡支持的提问,您选择 ‘y’。或在menuconfig中的 network菜单中出现表示该网卡的菜单项,把他选上即可。
(3)重建依赖关系:很简单,执行make dep和make clean命令。
(4)生成核心代码:执行make zImage 命令。这个命令开始真正编译核心代码,并把核心代码存放为arch/i386/boot 目录下的zImage。
(5)为了使用新的核心代码,您需要用新的核心代码替换原有的。原有的核心代码一般存放在/boot 目录下,文档名称类似于vmlinuz-v.s.r-m (v.s.r-m)表示核心的版本号)。如vmlinuz-2.0.34-1。执行下列命令:
cp arch/i386/boot/zImage /boot/vmlinuz-v.s.r-m
为了安全起见,能够先把原有的核心代码做个备份,以便发生错误时恢复。
至此,您能够重新引导系统以使用新的带有正确网卡驱动支持的Linux核心。唯一剩下未解决 的是驱动程式的参数问题。有些网卡驱动程式假如不输入参数,那他工作就会不正常,甚至根本不工作。由于现在网卡的驱动程式是系统启动时由核心载入运行的, 系统启动之后用户就很难改变这些参数了,所以您必须在系统启动时告诉Linux核心网卡驱动程式使用的参数。具体方法有两种:
(1)在系统引导程式LILO中输入。
在LILO开始引导系统时,用ether子命令设定以太网卡驱动程式的参数。ether命令的使用方式为:
LILO:linu xether=IRO.BASE_ADDR,NAME
这里带下划线的是要输入的部分,IRQ表示中断号,BASE_ADDR表示端口号,NAME表示网卡的设备名。例如:linux ether=15,0x320,eth0
(2)在LILO配置文档中设定。
每次在系统启动时再输入驱动程式参数似乎有点过于麻烦。幸好系统提供了LILO的配置文档能够用来永久性的配置Linux系统启动时的子命令。方法是在/etc/lilo.conf文档中的适当位置加入以下一行:
append=“ether=IRQ, BASE_ADDR,NAME”
这里带下划线部分的意义同上。加入这一行后,还需要用/sbin/lilo命令把这个配置写入引导程式。
第四步:网络配置及测试
安装完网卡就能够配置网络通信了。配置网络简单地就是使用ifconfig命令,
例如:
ifconfig eth0 1.2.3.4 netmask 255.0.0.0 up
最后ping一下网上其他机器的ip地址,检查网络是否连通。
四、一个以太网卡安装实例
下面以Cirrus公司生产的Crystal CS8920以太网卡为例,周详说明上述安装配置过程。本例中,有些命令参数,如核心源代码目录等,是以我使用的系统环境为出发点。具体应用中还要加以本地化。为了更接近实际,例子中也包括了对安装中碰到的问题的描述。
1.此网卡是IBM PC机的内置式网卡,机器只提供了Windows95/98环境下的驱动程式。由于RedHat 5.0发行版本尚未提供对此网卡的直接支持,所以从Cirrus的站点上找到并下载了该网卡驱动程式的Linux版本,是个名为 Linux102_tar.gz的压缩文档。
2.文档Linux102_tar.gz解压后包括五个文档。包括源代码,仅适用于Linux 2.0版本的目标模块连同readme文档。
3.查阅readme文档后,了解到这个驱动程式只能使用网卡EEPROM中设定的端口号(I/O基地址)、中断号。为了知道网卡EEPROM的配置,又从Cirrus站点下载了该网卡DOS版本的配置程式setup.exe
4.在DOS中运行setup.exe,发现网卡的起始端口号为0x360,中断号为10, 和别的设备有冲突。选择setup.exe程式的相应菜单,把中断号改成5。另外,此驱动程式不支持plug and Play,故也在setup.exe中将网卡的PnP功能屏蔽掉。
5.我所使用的RedHat 5.0的Linux核心版本为2.0.34,所以不能用现成的驱动程式目标模块,需要自己动手编译。如上文所述,有两种方式使用此驱动程式。
6.假如要编译成单独模块,执行下列命令:
gcc -D_KERNEL_-I/usr/src/linux/include -I/usr/src/linux/net/inet-Wall -Wstrictprototypes -02 -fomit-frame-pointer -DMODULE -DCONFIG_MODVERSIONS -ccs89x0.c
编译结果是名为cs89x0.o的驱动程式目标模块。要装载此驱动程式,输入下列命令: insmod cs89x0.o io=0x360 irq=10
要卸载此驱动程式,用rmmod命令:
rmmod cs89x0.o
7.假如要将驱动程式编进系统核心,
修改/usr/src/linux/drivers/net/CONFIG,加入:
CS89x0_OPTS=
修改/usr/src/linux/drivers/net/Config.in,加入:
tristate‘CS8920 Support’CONFIG_CS8920
以上两行是为了让make config在配置过程中询问是否增加CS8920网卡的支持。修改/usr/src/linux/drivers/net/Makefile加入:
ifeq((CONFIG_CS8920),y)
L_OBJS+=cs89x0.o
endif
修改/usr/src/linux/drivers/net/Space.c,加入:
extern int cs89x0_probe(struct device *dev);
……
#ifdef CONFIG_CS8920
&& cs89x0_probe(dev);
#endif
以上两段是为了编译并输出网卡驱动程式及其例程。
把驱动程式源代码拷到/usr/src/linux/drivers/net目录下。
在/usr/src/linux目录下执行 make config或 make menuconfig,选择核心CS8920网卡支持。
执行make dep、make clean命令。最后用 make zImage 编译Linux核心。
如何配置核心驱动程式参数,上节已有说明,不再赘述。
六、结束语
和其他外设相同,以太网卡种类繁多,对于新兴的操作系统Linux来说,是否能够有效地支持这些设备,直接关系着Linux的发展前途。本文叙述的以太网卡安装配置只是其中的一小部分,未尽事宜希望和有识之仕一起探讨。
发表评论
-
Linux c的多线程编程实例
2011-07-19 17:28 1998通过创建两个线程来实现对一个数的递加。或许这个实例没有实际运用 ... -
linux下进程的最大线程数、进程最大数、进程打开的文件数
2011-06-22 17:35 1970linux 系统中单个进程的 ... -
Linux中dos2unix的批量转换命令
2011-01-05 10:31 7033在Linux中将DOS 格式转换为Unix格式的文件可以使用d ... -
linux双网关双线路网络设置
2010-08-03 19:10 2027由于电信和网通之间互联互通 的问题,很多 ... -
syslog-ng学习心得之二
2010-07-06 08:58 2468在[url]http://coolerfeng.blog.51 ... -
syslog-ng学习心得之一
2010-07-06 08:58 2765转载一篇syslog-ng的文章的,本来是想打算自己写一篇 ... -
Linux用户进程是如何释放内存
2009-12-25 17:16 2087Linux进程使用内存的基本流程: 见图1 从 ... -
Linux内存使用详解
2009-12-25 16:56 2393一提到内存管理,我们 ... -
linux下查看内存使用情况
2009-12-25 14:56 2012在Linux下查看内存我们 ... -
Linux编程C++内存管理之内存分配详解
2009-12-21 21:33 1772程序员们经常编写内存 ... -
内核模块调试方法
2009-11-17 11:23 2625对 于任何一位内核代 ... -
跟我一起写 Makefile(3)
2009-11-03 14:38 654“-s” “--silent” “--quiet” 在命 ... -
跟我一起写 Makefile(2)
2009-11-03 14:35 975书写命令 ———— 每 ... -
跟我一起写 Makefile(1)
2009-11-03 14:32 998陈皓 (CSDN) 概述 — ... -
CC与GCC的区别概括介绍
2009-11-03 14:29 1496从名字上看,老的unix系统 的CC程序叫做C Comp ... -
linux内核模块管理命令
2009-10-30 10:54 17291. lsmod 列出已经加载的内核模块 lsmo ... -
分区修复软件Testdisk 安装使用
2009-08-26 14:23 4964linux下超帅的分区表修复软件.以前用过n多的window ... -
Linux下的分区修复软件Testdisk
2009-08-26 10:40 1884好了,这个软件叫testdisk.很帅的。。 如果你是使 ... -
Linux分区数据恢复
2009-08-26 10:18 1467公司的一台redhat机器启动不了了,是由于多次非正常关机造成 ... -
重装grub的方法及GRUB相关配置
2009-08-26 09:34 1646**当我们每次要重装WIN ...
相关推荐
【项目资源】: 物联网项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
【项目资源】: 适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
# 基于Python的KMeans和EM算法结合图像分割项目 ## 项目简介 本项目结合KMeans聚类和EM(期望最大化)算法,实现对马赛克图像的精准分割。通过Gabor滤波器提取图像的多维特征,并利用KMeans进行初步聚类,随后使用EM算法优化聚类结果,最终生成高质量的分割图像。 ## 项目的主要特性和功能 1. 图像导入和预处理: 支持导入马赛克图像,并进行灰度化、滤波等预处理操作。 2. 特征提取: 使用Gabor滤波器提取图像的多维特征向量。 3. 聚类分析: 使用KMeans算法对图像进行初步聚类。 利用KMeans的聚类中心初始化EM算法,进一步优化聚类结果。 4. 图像生成和比较: 生成分割后的图像,并与原始图像进行比较,评估分割效果。 5. 数值比较: 通过计算特征向量之间的余弦相似度,量化分割效果的提升。 ## 安装使用步骤 ### 假设用户已经下载了项目的源码文件 1. 环境准备:
HCIP第一次作业:静态路由综合实验
【项目资源】: 单片机项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
内容概要:本文详细介绍了Johnson-SU分布的参数计算与优化过程,涵盖位置参数γ、形状参数δ、尺度参数ξ和伸缩参数λ的计算方法,并实现了相应的Python代码。文中首先导入必要的库并设置随机种子以确保结果的可复现性。接着,分别定义了四个参数的计算函数,其中位置参数γ通过加权平均值计算,形状参数δ基于局部均值和标准差的比值,尺度参数ξ结合峰度和绝对偏差,伸缩参数λ依据偏态系数。此外,还实现了Johnson-SU分布的概率密度函数(PDF),并使用负对数似然函数作为目标函数,采用L-BFGS-B算法进行参数优化。最后,通过弹性网络的贝叶斯优化展示了另一种参数优化方法。; 适合人群:具有Python编程基础,对统计学和机器学习有一定了解的研究人员或工程师。; 使用场景及目标:①需要对复杂数据分布进行建模和拟合的场景;②希望通过优化算法提升模型性能的研究项目;③学习如何实现和应用先进的统计分布及优化技术。; 阅读建议:由于涉及较多数学公式和编程实现,建议读者在阅读时结合相关数学知识,同时动手实践代码,以便更好地理解和掌握Johnson-SU分布及其优化方法。
TSP问题的3种智能优化方法求解(研究生课程《智能优化算法》结课大作业).zip
【项目资源】: 物联网项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
【项目资源】: 单片机项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
自动发布Java项目(Tomcat)Shell脚本
# 基于webpack和Vue的前端项目构建方案 ## 项目简介 本项目是基于webpack和Vue构建的前端项目方案,借助webpack强大的打包能力以及Vue的开发特性,可用于快速搭建现代化的前端应用。项目不仅完成了基本的webpack与Vue的集成配置,还在构建速度优化和代码规范性方面做了诸多配置。 ## 项目的主要特性和功能 1. 打包功能运用webpack进行模块打包,支持将scss转换为css,借助babel实现语法转换。 2. Vue开发支持集成Vue框架,能使用Vue单文件组件的开发模式。 3. 构建优化采用threadloader实现多进程打包,cacheloader缓存资源,极大提高构建速度开启热更新功能,开发更高效。 4. 错误处理与优化提供不同环境下的错误映射配置,便于定位错误利用webpackbundleanalyzer分析打包体积。
Hands-On Large Language Models - Jay Alammar 袋鼠书 《动手学大语言模型》PDF
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
# 基于Arduino Feather M0和Raspberry Pi的传感器数据采集与监控系统 ## 项目简介 本项目是一个基于Arduino Feather M0和Raspberry Pi的传感器数据采集与监控系统。系统通过Arduino Feather M0采集传感器数据,并通过WiFi将数据传输到Raspberry Pi。Raspberry Pi运行BalenaOS,集成了MySQL、PHP、NGINX、Apache和Grafana等工具,用于数据的存储、处理和可视化。项目适用于环境监测、物联网设备监控等场景。 ## 项目的主要特性和功能 1. 传感器数据采集使用Arduino Feather M0和AM2315传感器采集温度和湿度数据。 2. WiFi数据传输Arduino Feather M0通过WiFi将采集到的数据传输到Raspberry Pi。
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
【项目资源】: 适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
【项目资源】: 物联网项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
# 基于Arduino的WiFi按钮项目 ## 一、项目简介 本项目是一个基于ESP8266芯片的Arduino项目,主要实现WiFi连接、电压检测、LED灯控制以及向服务器发送POST请求等功能。通过简单的按钮操作,可以实现与服务器通信并获取相关信息,同时能检测电池电压并提示用户。 ## 二、项目的主要特性和功能 1. WiFi连接项目能够自动连接到指定的WiFi网络。 2. 电压检测通过ADC(模数转换器)检测电池电压,并在电压低于阈值时发出警告。 3. LED灯控制通过控制LED灯的亮灭来提示用户不同的状态信息(如连接成功、电压低等)。 4. 服务器通信项目可以向指定的服务器发送POST请求并处理返回的HTTP响应。 ## 三、安装使用步骤 1. 环境准备确保已安装Arduino IDE和ESP8266插件。 2. 下载源码下载项目的源码文件并解压。 3. 打开项目在Arduino IDE中打开解压后的main.cpp文件。
该资源为scipy-0.10.1-cp26-cp26mu-manylinux1_x86_64.whl,欢迎下载使用哦!
计算机毕业设计;计算机毕设;Java毕业设计;小程序毕业设计;企业、旅游、党建、学校、人事、酒店、民宿、预约、考试、外卖、点餐、外贸、宠物、图书、销售、商城、就业、助农、仓储、交易、美食、博客、婚庆、二手、养老、医院、医疗、药品、招聘、考勤、宿舍、物流、租赁、公益等