Stable Diffusion云服务器部署完整版教程

Stable Diffusion云服务器部署完整版教程

2023年07月04日 22:30 3607浏览 · 18喜欢 · 22评论
  <span class="bili-avatar-icon bili-avatar-right-icon  "></span>
</div>


薯片_AI
粉丝: 1513 文章: 1

        文本旨在将stable diffusion部署在云服务器上,利用云服务器的优势让我们更好的体验AI绘图。本文的教程是作者一步步实践所总结出来的,完整的按照作者的步骤执行,是可以在云服务器上部署一个较为完整的sd。本教程中包括了很多配置和换源是其他教程所没有的,相对其他sd安装教程更为完整。

        提醒:本文是stable diffusion部署在云服务器的教程,当然你也可以拿来部署在本地电脑上,但是没有必要,本地部署可以使用秋叶大神的一件安装包,方便又快捷。

一、SD的基础环境和安装

我使用的是腾讯云GPU服务器,腾讯云服务器经常做活动,可以趁折扣的时候进行购买,这是我此次服务器的基本信息,我选用的是GN7 8核32GB,N卡,操作系统选择Ubuntu Server。






ubuntu server配置

购买后在后台实例中可看到该服务器






腾讯云后台

点击「登录」即可进入服务器,首次进入会自动安装驱动,等待几分钟即可。






进入服务器

(二)配置运行环境

利用anaconda是它集成了很多我们需要的安装包,只要安装它一个,python下载、环境配置那些都不用我们再去设置,使用起来比较方便。

1、配置Anaconda

1、下载anaconda

wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2023.03-0-Linux-x86_64.sh





若遇到这种不能下载的,前面加上 -U NoSuchBrowser/1.0

wget -U NoSuchBrowser/1.0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2023.03-0-Linux-x86_64.sh

2.安装anaconda,提示enter按回车,提示yes or no的地方全部输入yes即可。vscode不安装

bash Anaconda3-2023.03-0-Linux-x86_64.sh

3.找到.bashrc这个文件并修改,修改文件有两种方式:

①通过vim修改。

#用vim打开.bashrc文件
vim ~/.bashrc

#再按i开始insert,将以下内容添加到文件最后一行
export PATH=$PATH:/home/ubuntu/anaconda3/bin

#按Esc并输入:wq即为保存退出文件再保存退出
:wq

②也可以通过编辑器修改,找到.bashrc文件直接输入内容即算保存






4.如果输入conda,提示找不到命令的话执行下source,(执行一次即可,以后都不用再 source 了,启动 Ubuntu会自动source)

source ~/.bashrc

然后验证下

conda info

至此anaconda已经安装完毕






2、安装pytorch

1.去pytorch官网配置自己服务器所需要的pytorch

Pytorch build选择stable稳定版,操作系统是linux,由于上面我安装了anaconda所以package选择conda,语言python,我的CUDA是12.0所以选择了CUDA11.8,最后获取comand






pytorch官网

2、pytorch需要安装到anaconda的虚拟环境中,所以使用conda时需要先有一个虚拟环境并进入

#若还没有虚拟环境需要创建一个,<env_name>是环境名称,python选择指定的版本,sd需要的python>3.10 #conda create -n <env_name> python=x.xx.x
conda create -n sd python=3.10.11

#启动虚拟环境,activate就是启动,sd是环境名称
conda activate sd

然后再执行pytorch的安装

conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia

如果出现提示需要升级conda版本的就输入,没有的话就跳过这步。我这里没截到图,会有个wanning的,注意看

conda update -n base -c defaults conda

验证安装结果

#首先要启动我们的sd虚拟环境,因为我们所有与stable diffusion有关的配置环境都是建立在这个虚拟环境之下的python,pytorch等都是如此
#进入虚拟环境
conda activate sd

#进入python环境
python

#导入torch
import torch

#查看torch的版本
torch.version #各有两条下划线

#查看cuda版本
torch.version.cuda

#查看GPU是否运行
torch.cuda.is_available()

#退出
exit()






(三)安装sd-webui

1、启动sd

1.将sd webui clone到服务器上,此处我用了镜像。

git clone https://github.moeyy.xyz/https://github.com/AUTOMATIC1111/stable-diffusion-webui.git

2.链接换源。打开stable-diffusion-webui/modules/launch.until.py文件,替换以下内容

torch_command = os.environ.get(‘TORCH_COMMAND’, “pip install torch2.0.1 torchvision0.15.2”)

3.每个https://github.com/  (就在上一步的下面几行,每一个网址都要改)链接前面添加https://ghproxy.com/,替换为以下内容

gfpgan_package = os.environ.get(‘GFPGAN_PACKAGE’, “https://ghproxy.com/https://github.com/TencentARC/GFPGAN/archive/8d2447a2d918f8eba5a4a01463fd48e45126a379.zip”)
clip_package = os.environ.get(‘CLIP_PACKAGE’, “https://ghproxy.com/https://github.com/openai/CLIP/archive/d50d76daa670286dd6cacf3bcd80b5e4823fc8e1.zip”)
openclip_package = os.environ.get(‘OPENCLIP_PACKAGE’, “https://ghproxy.com/https://github.com/mlfoundations/open_clip/archive/bb6e834e9c70d9c27d0dc3ecedeebeaeb1ffad6b.zip”)
stable_diffusion_repo = os.environ.get(‘STABLE_DIFFUSION_REPO’, “https://ghproxy.com/https://github.com/Stability-AI/stablediffusion.git”)
taming_transformers_repo = os.environ.get(‘TAMING_TRANSFORMERS_REPO’, “https://ghproxy.com/https://github.com/CompVis/taming-transformers.git”)
k_diffusion_repo = os.environ.get(‘K_DIFFUSION_REPO’, ‘https://ghproxy.com/https://github.com/crowsonkb/k-diffusion.git’)
codeformer_repo = os.environ.get(‘CODEFORMER_REPO’, ‘https://ghproxy.com/https://github.com/sczhou/CodeFormer.git’)
blip_repo = os.environ.get(‘BLIP_REPO’, ‘https://ghproxy.com/https://github.com/salesforce/BLIP.git’)

4.先进入虚拟环境

#启动虚拟环境,因为刚刚上面我们已经创建过虚拟环境了
conda activate sd

5.先定位到的stable-diffusion-webui项目下

cd stable-diffusion-webui

6.第一次启动sd,sd会安装基础的配置,这里等待一段时间,网速慢的个把小时,所需要的内容才会下载完毕。

#以下两者都是启动公网环境,二选一执行即可。
./webui.sh --listen #(推荐)

#或者加–share也可以
./webui.sh --share

#listen与share的区别在于listen启动的地址是0.0.0.0:7860,而share启动后是一个随机的地址。

7.第一次执行会自动下载“v1-5-pruned-emaonly.safetensors”这个模型,如果下载速度还行就耐心等待,如果网络慢的同学,可以先“ctrl+C”断开下载步骤,然后到C站随便下个大模型上传上去。

2、打开webui

后续我们启动stable diffusion时分为3个步骤:

#启动虚拟环境 conda activate sd #定位到sd根目录 cd stable-diffusion-webui #加listen是启动公网环境 ./webui.sh --listen

#启动虚拟环境
conda activate sd

#定位到sd根目录
cd stable-diffusion-webui

#加listen是启动公网环境
./webui.sh --listen

然后等待有出现http:/0.0.0.0:7860就说明已启动成功。浏览器访问http://x.x.x.x(云主机公网ip):7860,出现stable diffusion内容即为成功。






webui界面

(四)小结

虽然webui已经启动,但是我们可以看到页面下边的配置






  • version:当前webui的版本,我在写这份文档时最新版本就是1.4,当你们看到这份文档的时候注意使用最新版本的。

  • python:版本是3.10.11,这个版本会比较合适,既能用xformers,刚刚安装又不会报错,我试过3.10.12、3.11这些版本,会出现安装不上,至于原因我没去深入研究,你们想要用最新版本的话就研究下怎么配置。

  • torch:2.0.1+cu117,sd会用到的神经网络和cuda版本,这里我cuda只有117,但是上面我安装的cuda是11.8。我不知道为什么会降一个版本,有大佬懂得话可以评论区解答下。

  • xformers:N/A,等会会安装这个,能提升出图速度。

  • gradio:这个是AI的界面,可以不用管。

  • checkpoint:这个是大模型,我们还没下载,后面步骤会下载。

二、webui-user.sh文件配置

通过我自己部署整个sd后,认为修改webui.user.sh文件,去先行配置一些参数,可以减少我们后续启动时输入的内容,以及减少后续的一些麻烦。这是其他教程所没有的,大家有必要可以参考下。

1.打开sd根目录下的webui-user.sh文件,将export commandline_args前面的#去掉,并且加上后面内容。

#!/bin/bash
#########################################################
# Uncomment and change the variables below to your need:# #########################################################
# Install directory without trailing slash #install_dir=“/home/$(whoami)”
# Name of the subdirectory #clone_dir=“stable-diffusion-webui”
# Commandline arguments for webui.py, for example: export COMMANDLINE_ARGS=“–medvram --opt-split-attention”
export COMMANDLINE_ARGS=“–theme dark --xformers --enable-insecure-extension-access --listen”
# python3 executable
#python_cmd=“python3”
# git executable
#export GIT=“git”
# python3 venv without trailing slash (defaults to i n s t a l l d i r / {install_dir}/ installdir/{clone_dir}/venv) #venv_dir=“venv”
# script to launch to start the app
#export LAUNCH_SCRIPT=“launch.py”
# install command for torch #export TORCH_COMMAND=“pip install torch==1.12.1+cu113 --extra-index-url https://download.pytorch.org/whl/cu113”
# Requirements file to use for stable-diffusion-webui #export REQS_FILE=“requirements_versions.txt”
# Fixed git repos
#export K_DIFFUSION_PACKAGE=“”
#export GFPGAN_PACKAGE=“”
# Fixed git commits #export STABLE_DIFFUSION_COMMIT_HASH=“”
#export CODEFORMER_COMMIT_HASH=“”
#export BLIP_COMMIT_HASH=“”
# Uncomment to enable accelerated launch
#export ACCELERATE=“True”
# Uncomment to disable TCMalloc #export NO_TCMALLOC=“True” ###########################################
  • –theme dark。让webui变为暗色模式。有需要就加,没需要就不用加。

  • –xformers。Xformers库可以加速图像的生成。

  • –enable-insecure-extension-access。在我们用–listen启动时,会成为公网环境,在公网环境下,系统会阻止extension(扩展)的使用,以避免风险因素。所以我们如果只是自己使用的话,完全可以通过这个绕开安全检查,这样我们在启用公网环境时可以继续使用extension(扩展)功能。

  • –listen。启用公网环境。(–listen要在最后一个)。

配置完后我们在启动sd时,便不用再输入–listen






#启动虚拟环境
conda activate sd

#定位到sd根目录
cd stable-diffusion-webui

#加listen是启动公网环境
./webui.sh

最后我们启动起来的webui就是这样。






三、extensions换源

automatic1111大佬自带的extensions源我们国内无法直接访问,所以我们需要替换成境内的源,方便于我们后续使用扩展。这里我使用秋叶大佬的源地址。

找到sd/modules/ui_extensions.py文件的这段。

with gr.TabItem(“Available”, id=“available”):
with gr.Row():
refresh_available_extensions_button = gr.Button(value=“Load from:”, variant=“primary”)
available_extensions_index = gr.Text(value=“https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui-extensions/master/index.json”, label=“Extension index URL”).style(container=False)
extension_to_install = gr.Text(elem_id=“extension_to_install”, visible=False)
install_extension_button = gr.Button(elem_id=“install_extension_button”, visible=False)

将其中的地址这段替换为https://gitee.com/akegarasu/sd-webui-extensions/raw/master/index.json

with gr.TabItem(“Available”, id=“available”):
with gr.Row():
refresh_available_extensions_button = gr.Button(value=“Load from:”, variant=“primary”)
available_extensions_index = gr.Text(value=“https://gitee.com/akegarasu/sd-webui-extensions/raw/master/index.json”, label=“Extension index URL”).style(container=False)
extension_to_install = gr.Text(elem_id=“extension_to_install”, visible=False)
install_extension_button = gr.Button(elem_id=“install_extension_button”, visible=False)

这样我们就可以秒加载扩展






四、CheckPoint的下载

(一)下载至本地再上传至服务器

  1. 从模型网站上下载checkpoint的模型到本地后

  2. 再打开服务器的编辑






  1. 打开model下的sd路径:stable-diffusion-webui/models/Stable-diffusion,并右键点击上传






上传至服务器后刷新webui就可以看到该模型了






(二)直接下载至服务器

1.获取下载路径,如:

https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.ckpt

2.cd到stable-diffusion-webui/models/Stable-diffusion目录下,用wget指令下载

#wget指令下载
wget https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.ckpt

#若出现Unable estalish SSL connent,SSL无法连接的情况,加上该指令
wget --no-check-certificate https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.ckpt

#如果wget版本过旧,更新wget
apt-get install wget -y

#以上是通过apt升级wget,如果没有apt,则需要先安装apt管理工具包
sudo apt-get install

五、LoRA的下载与安装

每个lora都附带一张图片,这张图片的名称与模型名称相同,一并上传到服务器中的lora文件夹下,在webui中就会显示该模型和预览图。当然你也可以后面安装C站助手,通过C站助手下载预览图。






六、VAE的下载与安装

1.VAE的模型全部放在这个文件夹下。模型继续使用上面提到的上传方法(这里我用本地部署的举例,服务器配置的时候要找到服务器中的path)






2.VAE模块默认是没有出来的,需要到「Settings — User interface — Quicksettings list」中添加VAE模块






3.再保存、重启UI即可。






七、ControlNet的下载与安装

(一)直接安装

若是境外服务器可以直接在sd上安装

https://github.com/lllyasviel/ControlNet

https://github.com/lllyasviel/ControlNet





(二)压缩包安装

1.我的是境内服务器,所以无法直接从github上下载,所以直接下载压缩包






然后将压缩包上传至服务器/stable diffusion/extensions目录下

2.定位到extensions目录下

cd stable-diffusion/extensions

3.解压zip

unzip ControlNet-main.zip

4.重启webui就能看到






(三)安装models

1.下载秋叶大佬已经整理好的包

链接: https://pan.baidu.com/s/1rh39DI9xVbguLO5l7O4pjA 

提取码: yqqe

2.将预处理器下的downloads文件压缩成zip

3.定位位置,具体path看自己的服务器

cd stable-diffusion-webui/extensions/sd-webui-controlnet/annotator

4.解压zip

unzip downloads.zip

5.再将下载文件中“模型”文件下的所有文件放到stable diffusion/models/ControlNet/文件内。

6.最后即可使用ControlNet。

八、Clip skip的配置

Clip skip具体有什么用可以百度下,Clip skip默认是不显示的,需要我们自己配置。

1.先到「Settings — Stable Diffusion — Clip skip」中将数值调成2






2.再到「Settings — User interface — Quicksettings list」中添加clip模块






注意:这两个步骤不可颠倒,否者先把clip模块加载出来的话,就无法设置clip的默认值,这是个坑。

九、hypernetworks的下载与安装(选装)

去模型网站上下载hypernetworks的模型,然后上传到sd/models/hypernetworks文件夹中,然后在webui界面点击刷新就可以看到了

十、插件的使用

(一)sd的汉化

1.扩展中搜索zh






2.然后找到这2个进行安装






3.到Setting——User interface——localization选择zh-hans,然后保存,重启webui。






(二)中英对照tag自动补齐

这个插件能汉化 UI 界面、Tag 自动补全、提示词 prompt 翻译等功能,解决英文不好的问题,有效减少用翻译软件的时间,不过测试发现词库并不全,有些可能还会用到翻译软件。

想要安装这个插件,需要先装一个前置插件,叫“a1111-sd-webui-tagcomplete-main”

可以通过「扩展—从网址安装」输入以下github仓下载安装。

https://github.com/DominikDoom/a1111-sd-webui-tagcomplete.git

最后重启webui就可以看到






十一、其他

(一)可下载模型的网站

  • https://civitai.com/

  • https://huggingface.co/

  • https://www.liblibai.com/

  • https://www.liandange.com/

  • https://i-desai.com/#/

  • https://aigccafe.com/

(二)如何让服务器不断开连接

腾讯云的这个OrcaTerm shell经常会不定时的断开,而我们的sd需要一直启动住,所以我们需要解决服务器断开的问题。

1.下载Putty,https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

2.打开putty并在host name输入自己服务器的公网ip,然后点击open







3.点击accept即可






4.此处写上自己服务器的名称和密码就是我们用orcaterm登录时这里的用户名和密码。












注意这里输入密码是不会显示的,输入完后回车即可。






5.顶部右键选择“change setting”,connection这里,输入60,意味着每60秒向服务器发送一个空包保持session处于活动中。






(三)其他

#定位到models中的Stable-diffusion
cd stable-diffusion-webui/models/Stable-diffusion

#用wget命令来下载sd-v1-4模型
wget https://huggingface.co/CompVis/stable-diffusion-v-1-4-original/resolve/main/sd-v1-4.ckpt

#如果出现SSL无法连接,那么加上–-no-check-certificate
wget –-no-check-certificate https://huggingface.co/CompVis/stable-diffusion-v-1-4-original/resolve/main/sd-v1-4.ckpt

#如果文件太大,一次性没办法下载完,可以加上断点续传
wget –-no-check-certificate --continue https://huggingface.co/CompVis/stable-diffusion-v-1-4-original/resolve/main/sd-v1-4.ckpt

十二、总结

    以上就是作者在Linux服务器下安装stable diffusion的全部内容,通过以上方法,大家可以配置一个较为完整的在线sd。至于更多的插件、模型大家就根据自己的需求去下载安装即可,更多sd的功能大家就自己去挖掘。

    如果觉得本文有用,请来个三连吧~

    如果觉得专栏的排版不够美观的话,可以去我的飞书看https://k9v8wpkvnx.feishu.cn/docx/Icdjdcw53oGEltxhE6yc5lmhn0e

link

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/149187.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【MySql】3- 实践篇(一)

文章目录 1. 普通索引和唯一索引的选择1.1 查询过程1.2 更新过程1.2.1 change buffer1.2.2 change buffer 的使用场景 1.3 索引选择和实践1.4 change buffer 和 redo log2. MySQL为何有时会选错索引?2.1 优化器的逻辑2.1.1 扫描行数是怎么判断的?2.1.2 重新统计索引信息 2.2 …

C语言中柔性数组的讲解与柔性数组的优势

前言:也许你从来没有听说过柔性数组&#xff08;flexible array&#xff09;这个概念&#xff0c;但是它确实是存在的。C99 中&#xff0c;结构中的最后一个元素允许是未知大小的数组&#xff0c;这就叫做"柔性数组"成员。 目录标题 柔性数组什么是柔性数组呢&#…

【C语言】八大排序算法

文章目录 一、冒泡排序1、定义2、思想及图解3、代码 二、快速排序1、hoare版本2、挖坑法3、前后指针法4、非递归快排5、快速排序优化1&#xff09;三数取中选key值2&#xff09;小区间优化 三、直接插入排序1、定义2、代码 四、希尔排序1、定义2、图解3、代码 五、选择排序1、排…

sheng的学习笔记-【中文】【吴恩达课后测验】Course 2 - 改善深层神经网络 - 第二周测验

课程2_第2周_测验题 目录&#xff1a;目录 第一题 1.当输入从第8个mini-batch的第7个的例子的时候&#xff0c;你会用哪种符号表示第3层的激活&#xff1f; A. 【  】 a [ 3 ] { 8 } ( 7 ) a^{[3]\{8\}(7)} a[3]{8}(7) B. 【  】 a [ 8 ] { 7 } ( 3 ) a^{[8]\{7\}(3)} a…

代码随想录 Day11 二叉树 LeetCode T144,145,94 前中后序遍历 (递归解法)

题解及更详细解答来自于:代码随想录 (programmercarl.com) 前言: 递归三要素 确定递归函数的参数和返回值&#xff1a; 确定哪些参数是递归的过程中需要处理的&#xff0c;那么就在递归函数里加上这个参数&#xff0c; 并且还要明确每次递归的返回值是什么进而确定递归函数的返…

【Redis】基础数据结构-skiplist跳跃表

有序集合Sorted Set zadd zadd用于向集合中添加元素并且可以设置分值&#xff0c;比如添加三门编程语言&#xff0c;分值分别为1、2、3&#xff1a; 127.0.0.1:6379> zadd language 1 java (integer) 1 127.0.0.1:6379> zadd language 2 c (integer) 1 127.0.0.1:6379…

【Java-LangChain:使用 ChatGPT API 搭建系统-2】语言模型,提问范式与 Token

第二章 语言模型&#xff0c;提问范式与 Token 在本章中&#xff0c;我们将和您分享大型语言模型&#xff08;LLM&#xff09;的工作原理、训练方式以及分词器&#xff08;tokenizer&#xff09;等细节对 LLM 输出的影响。我们还将介绍 LLM 的提问范式&#xff08;chat format…

【图像处理】使用各向异性滤波器和分割图像处理从MRI图像检测脑肿瘤(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

实验3.2 分期付款计算器

目录 实验目的‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬ 实验内容‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬…

20231005使用ffmpeg旋转MP4视频

20231005使用ffmpeg旋转MP4视频 2023/10/5 12:21 百度搜搜&#xff1a;ffmpeg 旋转90度 https://zhuanlan.zhihu.com/p/637790915 【FFmpeg实战】FFMPEG常用命令行 https://blog.csdn.net/weixin_37515325/article/details/127817057 FFMPEG常用命令行 5.视频旋转 顺时针旋转…

python爬虫基于管道持久化存储操作

文章目录 基于管道持久化存储操作scrapy的使用步骤1.先转到想创建工程的目录下&#xff1a;cd ...2.创建一个工程3.创建之后要转到工程目录下4.在spiders子目录中创建一个爬虫文件5.执行工程setting文件中的参数 基于管道持久化存储的步骤&#xff1a;持久化存储1&#xff1a;保…

集合(容器)-List接口及实现类

容器的特征&#xff1a;①数据长度可变&#xff1b;②数据保存方式不同。 集合体系概述&#xff1a;JAVA的集合框架是由很多接口、抽象类、具体类组成。都位于java.util包中。 Java中集合类中默认可以存储任意数据类型&#xff0c;Java中的集合提供泛型机制&#xff0c;在定义…

李沐深度学习记录3:11模型选择、欠拟合和过拟合

通过多项式拟合探索欠拟合与过拟合 import math import numpy as np import torch from torch import nn from d2l import torch as d2l#生成数据集 max_degree 20 # 多项式的最大阶数 n_train, n_test 100, 100 # 训练和测试数据集大小 true_w np.zeros(max_degree) # …

园林园艺服务经营小程序商城的作用是什么

园林园艺属于高单价服务&#xff0c;同时还有各种衍生服务&#xff0c;对企业来说&#xff0c;多数情况下都是线下生意拓展及合作等&#xff0c;但其实线上也有一定深度&#xff0c;如服务售卖或园艺产品售卖等。 基于线上发展可以增强获客引流、品牌传播、产品销售经营、会员…

很普通的四非生,保研破局经验贴

推免之路 个人情况简介夏令营深圳大学情况机试面试结果 预推免湖南师范大学面试结果 安徽大学面试结果 北京科技大学笔试面试结果 合肥工业大学南京航空航天大学面试结果 暨南大学东北大学 最终结果一些建议写在后面 个人情况简介 教育水平&#xff1a;某中医药院校的医学信息…

STL-stack、queue和priority_queue的模拟实现

目录 一、容器适配器 &#xff08;一&#xff09;什么是适配器 &#xff08;二&#xff09;stack和queue的底层结构 二、Stack 三、queue 四、deque双端队列 &#xff08;一&#xff09;优点 &#xff08;二&#xff09;缺陷 五、优先级队列 &#xff08;一&#xff…

成都建筑模板批发市场在哪?

成都作为中国西南地区的重要城市&#xff0c;建筑业蓬勃发展&#xff0c;建筑模板作为建筑施工的重要材料之一&#xff0c;在成都也有着广泛的需求。如果您正在寻找成都的建筑模板批发市场&#xff0c;广西贵港市能强优品木业有限公司是一家值得关注的供应商。广西贵港市能强优…

华为云云耀云服务器L实例评测|Ubuntu云锁防火墙安装搭建使用

华为云云耀云服务器L实例评测&#xff5c;Ubuntu安装云锁防火墙对抗服务器入侵和网络攻击 1.前言概述 华为云耀云服务器L实例是新一代开箱即用、面向中小企业和开发者打造的全新轻量应用云服务器。多种产品规格&#xff0c;满足您对成本、性能及技术创新的诉求。云耀云服务器L…

基于阴阳对优化的BP神经网络(分类应用) - 附代码

基于阴阳对优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码 文章目录 基于阴阳对优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码1.鸢尾花iris数据介绍2.数据集整理3.阴阳对优化BP神经网络3.1 BP神经网络参数设置3.2 阴阳对算法应用 4.测试结果&#x…

数据结构与算法--算法

这里写目录标题 线性表顺序表链表插入删除算法 一级目录二级目录二级目录二级目录 一级目录二级目录二级目录二级目录 一级目录二级目录二级目录二级目录 一级目录二级目录二级目录二级目录 线性表 顺序表 链表 插入删除算法 步骤 1.通过循环到达指定位置的前一个位置 2.新建…