首页
壁纸
留言板
友链
更多
统计归档
Search
1
TensorBoard:训练日志及网络结构可视化工具
12,495 阅读
2
主板开机跳线接线图【F_PANEL接线图】
5,327 阅读
3
Linux使用V2Ray 原生客户端
4,314 阅读
4
NVIDIA 显卡限制功率
2,497 阅读
5
海康威视监控摄像头使用指南
2,277 阅读
好物分享
实用教程
linux使用
wincmd
学习笔记
mysql
java学习
nginx
综合面试题
大数据
网络知识
放码过来
python
javascript
java
opencv
蓝桥杯
leetcode
深度学习
开源模型
相关知识
数据集和工具
模型轻量化
语音识别
计算机视觉
杂七杂八
硬件科普
主机安全
嵌入式设备
其它
bug处理
登录
/
注册
Search
标签搜索
好物分享
学习笔记
linux
MySQL
nvidia
typero
内网穿透
webdav
vps
java
cudann
gcc
cuda
树莓派
CNN
图像去雾
ssh安全
nps
暗通道先验
阿里云
jupiter
累计撰写
331
篇文章
累计收到
63
条评论
首页
栏目
好物分享
实用教程
linux使用
wincmd
学习笔记
mysql
java学习
nginx
综合面试题
大数据
网络知识
放码过来
python
javascript
java
opencv
蓝桥杯
leetcode
深度学习
开源模型
相关知识
数据集和工具
模型轻量化
语音识别
计算机视觉
杂七杂八
硬件科普
主机安全
嵌入式设备
其它
bug处理
页面
壁纸
留言板
友链
统计归档
搜索到
55
篇与
的结果
2022-09-02
将PPT的图保持高分辨率粘贴到Word
0.背景写论文在使用到了PPT画图,需要将画好的图便捷的导入到Word中,并保持矢量图的分辨率,放大缩小不模糊。一般直接使用屏幕截图会使分辨率降低,图片质量很差。直接复制粘贴也会出现同样的问题1.解决方案将PPT中画好的图组合在一起,选择组合后的图复制(Ctrl+c)在Word中,选中左上角的粘贴选项--->选择性粘贴选中图片(增强型图元文件),即可在Word中得到矢量图。参考资料将PPT里的图形高质量保存至Word【小技巧】如何将PPT的图保持高分辨率导入到Word中
2022年09月02日
1,009 阅读
0 评论
0 点赞
2022-08-31
Selenium:Python爬虫进阶
1.简介1.1 什么是Selenium?官网: Selenium是一个用于Web应用程序测试的工具。真实:大量用于网络爬虫,相比requests爬虫,完全模拟真人使用浏览器的流程,对于动态JS加载的网页更容易爬取1.2 Selenium的功能框架底层使用JavaScript模拟真实用户对浏览器进行操作。测试脚本执行时,浏览器自动按照脚本代码做出点击,输入,打开,验证等操作,就像真实用户所做的一样,从终端用户的角度测试应用程序。可用于较难的爬虫:动态JS加载、登录验证、表单提交等使用简单,可使用Python、Java等多种语言编写用例脚本。1.3 为什么要学习Selenium?requests爬虫局限性较大,分析困难、被封禁概率高可用于较难的爬虫伪装成真实的浏览器,被封禁的概率更低动态JS加载登录验证表单提交等1.4 Selenium的缺点相比requests,性能比较差,爬取的慢1.5 Selenium运行框架2.Selenium环境搭建1.电脑安装谷歌Chrome浏览器(其他浏览器不推荐)需要看一下当前的Chrome版本号,下载对应ChromeDriver2.下载安装 ChromeDriverhttps://www.selenium.dev/documentation/getting_started/installing_browser_drivers/windowns 放到C:\WebDriver\bin目录,这个目录加入系统PATH3.Python安装selenium库pip install selenium3.Selenium实战案例3.1 爬取电影天堂的视频真实下载地址用到selenium加载页面渲染出m3u8文件的地址from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.chrome.service import Service from selenium.webdriver.common.by import By from selenium.webdriver.support.wait import WebDriverWait from bs4 import BeautifulSoup import re # 实例化一个浏览器对象(传入浏览器的驱动程序) 通过Options实现无可视化界面的操作 chrome_options = Options() chrome_options.add_argument('--headless') # 不显示浏览器在后台运行 chrome_service = Service("chromedriver.exe"); browser = webdriver.Chrome(service=chrome_service,options=chrome_options) # 封装通过selenium获取html的方法 def get_html_by_selenium(url): # 对url发起请求 browser.get(url) # 等待页面加载完成 wait = WebDriverWait(browser, 3); # 获取页面源代码 page_html = browser.page_source return page_html # 电视剧页面地址_base base_url = "https://www.dy10000.com/wplay/68599-2-{}.html" # 生成下载脚本 for i in range(42,48): url = base_url.format(i) html = get_html_by_selenium(url) soup = BeautifulSoup(html, features='lxml') script_all = soup.body.find_all("script") for script in script_all: m3u8_search = re.search(r"http.*?m3u8", str(script)) if m3u8_search: url_m3u8 = m3u8_search.group(0).replace("\\", "") print("ffmpeg -i ", url_m3u8, " -c copy -bsf:a aac_adtstoasc " + str(i) + ".mp4") break # 退出浏览器 browser.quit()ffmpeg -i https://new.iskcd.com/20220518/FhKxDhXk/index.m3u8 -c copy -bsf:a aac_adtstoasc 42.mp4 ffmpeg -i https://new.iskcd.com/20220518/2MSrEhUz/index.m3u8 -c copy -bsf:a aac_adtstoasc 43.mp4 ffmpeg -i https://new.iskcd.com/20220519/7o5nJxJ3/index.m3u8 -c copy -bsf:a aac_adtstoasc 44.mp4 ffmpeg -i https://new.iskcd.com/20220519/BB2x9BaG/index.m3u8 -c copy -bsf:a aac_adtstoasc 45.mp4 ffmpeg -i https://new.iskcd.com/20220520/AxB2XF4T/index.m3u8 -c copy -bsf:a aac_adtstoasc 46.mp43.2 爬取电影先生的视频真实下载地址用到selenium加载页面渲染出m3u8文件的地址from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.chrome.service import Service from selenium.webdriver.common.by import By from selenium.webdriver.support.wait import WebDriverWait from bs4 import BeautifulSoup import re # 实例化一个浏览器对象(传入浏览器的驱动程序) 通过Options实现无可视化界面的操作 chrome_options = Options() chrome_options.add_argument('--headless') # 不显示浏览器在后台运行 chrome_service = Service("chromedriver.exe"); browser = webdriver.Chrome(service=chrome_service,options=chrome_options) # 封装通过selenium获取html的方法 def get_html_by_selenium(url): # 对url发起请求 browser.get(url) # 等待页面加载完成 wait = WebDriverWait(browser, 5); # 获取页面源代码 page_html = browser.page_source return page_html # 电视剧页面地址_base base_url = "https://dyxs15.com/paly-222156-5-{}/" # 生成下载脚本 for i in range(15,41): url = base_url.format(i) html = get_html_by_selenium(url) soup = BeautifulSoup(html, features='lxml') td_all = soup.body.find_all("td") for td in td_all: m3u8_search = re.search(r"http.*?m3u8", str(td)) if m3u8_search: url_m3u8 = m3u8_search.group(0).replace("\\", "") print("ffmpeg -i ", url_m3u8, " -c copy -bsf:a aac_adtstoasc " + str(i) + ".mp4") break break # 退出浏览器 browser.quit()ffmpeg -i https://new.qqaku.com/20220526/t5C1cVna/index.m3u8 -c copy -bsf:a aac_adtstoasc 15.mp4 ······ ffmpeg -i https://new.qqaku.com/20220617/Wpf7uowm/index.m3u8 -c copy -bsf:a aac_adtstoasc 40.mp4参考资料https://www.bilibili.com/video/BV1WF411z7qB自动化爬虫selenium基础教程selenium如何不显示浏览器在后台运行Python selenium的这三种等待方式一定要会!
2022年08月31日
815 阅读
0 评论
0 点赞
2022-08-30
天若OCR对接百度文字识别
0.背景在使用文字识别工具天若OCR的时候遇到搜狗、腾讯、有道等接口崩溃导致无法识别的问题,因此考虑使用百度的付费接口进行识别。1.百度文字识别API Key和Secret Key申请打开百度图文识别网站:https://console.bce.baidu.com/ai/#/ai/ocr/overview/index,输入账号密码登录;领取免费尝鲜略然后点击创建应用填写应用名称、应用归属、应用描述点击立即创建然后点击查看应用详情即可看到申请到的API Key和Secret Key2.对接天若OCR$\color{red}{!!!然后发现天若OCR修改密钥是付费版的特权}$$\color{red}{!!!再然后又发现5.0.0版本的虽然在软件里修改无法生效,但是直接修改Data/config.ini下的相关参数可以生效,感觉我的智商受到了侮辱}$[密钥_百度] secret_id=87gTF7eSNwA9z7L2OGuyaxAA secret_key=G5Yp5sA6POKKrFuGhcub21sGvzDIHaw2使用测试-真香3.自行调用-以JavaScript为例3.1 图片转换成base64格式var path = "/sdcard/pic/test01.jpg"; var imag64 = images.toBase64(images.read(path));3.2 获取access_tokenvar getTokenUrl="https://aip.baidubce.com/oauth/2.0/token"; var token_Res = http.post(getTokenUrl, { grant_type: "client_credentials", client_id: API_Key, //API Key client_secret: Secret_Key, //Secret Key }); var access_token = token_Res.body.json().access_token;3.3 调用百度ocr通用文字识别APIvar ocrUrl = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic"; var ocr_Res = http.post(ocrUrl, { headers: { "Content-Type": "application/x-www-form-urlencoded" }, access_token: access_token, //生成的token image: imag64, //生成的base64编码 language_type:"CHN_ENG" }); var json = ocr_Res.body.json();3.4 得到json格式结果:{ "words_result": [ {"words": "小微"}, {"words": "测试"} ], "log_id": 2471272194, "words_result_num": 2 }参考资料百度文字识别API Key和Secret Key申请及接口调用
2022年08月30日
873 阅读
0 评论
0 点赞
2022-06-15
Prometheus+Grafana:Linux设备群监控系统
1.Prometheus1.1. Prometheus简介Prometheus 是一款基于时序数据库的开源监控告警系统,非常适合Kubernetes集群的监控。Prometheus的基本原理是通过HTTP协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控。不需要任何SDK或者其他的集成过程。这样做非常适合做虚拟化环境监控系统,比如VM、Docker、Kubernetes等。输出被监控组件信息的HTTP接口被叫做exporter 。目前互联网公司常用的组件大部分都有exporter可以直接使用,比如Varnish、Haproxy、Nginx、MySQL、Linux系统信息(包括磁盘、内存、CPU、网络等等)。Promethus有以下特点:支持多维数据模型:由度量名和键值对组成的时间序列数据内置时间序列数据库TSDB支持PromQL查询语言,可以完成非常复杂的查询和分析,对图表展示和告警非常有意义支持HTTP的Pull方式采集时间序列数据支持PushGateway采集瞬时任务的数据支持服务发现和静态配置两种方式发现目标支持接入Grafana1.2. Prometheus架构1.2.1. Prometheus Server主要负责数据采集和存储,提供PromQL查询语言的支持。包含了三个组件:Retrieval: 获取监控数据TSDB: 时间序列数据库(Time Series Database),我们可以简单的理解为一个优化后用来处理时间序列数据的软件,并且数据中的数组是由时间进行索引的。具备以下特点:大部分时间都是顺序写入操作,很少涉及修改数据删除操作都是删除一段时间的数据,而不涉及到删除无规律数据读操作一般都是升序或者降序HTTP Server: 为告警和出图提供查询接口1.2.2. 指标采集Exporters: Prometheus的一类数据采集组件的总称。它负责从目标处搜集数据,并将其转化为Prometheus支持的格式。与传统的数据采集组件不同的是,它并不向中央服务器发送数据,而是等待中央服务器主动前来抓取Pushgateway: 支持临时性Job主动推送指标的中间网关1.2.3. 服务发现Kubernetes_sd: 支持从Kubernetes中自动发现服务和采集信息。而Zabbix监控项原型就不适合Kubernets,因为随着Pod的重启或者升级,Pod的名称是会随机变化的。file_sd: 通过配置文件来实现服务的自动发现1.2.4. 告警管理通过相关的告警配置,对触发阈值的告警通过页面展示、短信和邮件通知的方式告知运维人员。1.2.5. 图形化展示通过PromQL语句查询指标信息,并在页面展示。虽然Prometheus自带UI界面,但是大部分都是使用Grafana出图。另外第三方也可以通过 API 接口来获取监控指标。2.Prometheus简单部署2.1 部署和配置prometheus(在监控中心布置)下载prometheus(网页下载地址:https://prometheus.io/download/)wget https://github.com/prometheus/prometheus/releases/download/v2.36.1/prometheus-2.36.1.linux-amd64.tar.gz tar -xvf prometheus-2.36.1.linux-amd64.tar.gz mv prometheus-2.36.1.linux-amd64 prometheus cd prometheus修改配置文件vim prometheus.yml# my global config global: scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute. # scrape_timeout is set to the global default (10s). # Alertmanager configuration alerting: alertmanagers: - static_configs: - targets: # - alertmanager:9093 # Load rules once and periodically evaluate them according to the global 'evaluation_interval'. rule_files: # - "first_rules.yml" # - "second_rules.yml" # A scrape configuration containing exactly one endpoint to scrape: # Here it's Prometheus itself. scrape_configs: # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config. - job_name: "prometheus" # metrics_path defaults to '/metrics' # scheme defaults to 'http'. static_configs: - targets: ["localhost:9090"] # node_exporter 监控数据采集 - job_name: 'node' static_configs: - targets: - "3090.inat.top:9100" - "v100.inat.top:9100" - "raspberry.inat.top:9100" - "agx.inat.top:9100" - "nx.inat.top:9100" - "nano.inat.top:9100"检查配置文件./promtool check config prometheus.yml启动测试./prometheus配置开机自启动sudo vim /etc/systemd/system/prometheus.service[Unit] Description=prometheus service After=network.target [Service] ExecStart=/software/prometheus/prometheus --config.file=/software/prometheus/prometheus.yml Restart=always RestartSec=20 TimeoutSec=300 User=root Group=root StandardOutput=journal StandardError=journal WorkingDirectory=/software/prometheus/ [Install] WantedBy=default.targetsudo systemctl daemon-reload sudo systemctl start prometheus.service sudo systemctl enable prometheus.servicesudo systemctl status prometheus.service2.2 部署Node-Exporter(在被监控的机器上布置)下载Node-Exporter(网页下载地址:https://prometheus.io/download/)wget https://github.com/prometheus/node_exporter/releases/download/v1.0.1/node_exporter-1.0.1.linux-amd64.tar.gz tar -xvf node_exporter-1.0.1.linux-amd64.tar.gz mv node_exporter-1.0.1.linux-amd64 node_exporter cd node_exporter创建monitor用户和组sudo groupadd -g 9100 monitor sudo useradd -g 9100 -u 9100 -s /sbin/nologin -M monitor修改对应文件夹的权限sudo chown -R monitor.monitor /software/node_exporter启动测试./node_exporter配置开机自启动sudo vim /etc/systemd/system/node_exporter.service[Unit] Description=node-exporter service After=network.target [Service] User=monitor Group=monitor KillMode=control-group Restart=on-failure RestartSec=60 ExecStart=/software/node_exporter/node_exporter [Install] WantedBy=multi-user.targetsudo systemctl daemon-reload sudo systemctl start node_exporter.service sudo systemctl enable node_exporter.servicesudo systemctl status node_exporter.service3.部署Grafana(在监控中心部署)下载Grafana(网页下载地址:https://grafana.com/grafana/download)sudo apt-get install -y adduser libfontconfig1 wget https://dl.grafana.com/enterprise/release/grafana-enterprise_8.5.5_amd64.deb sudo dpkg -i grafana-enterprise_8.5.5_amd64.deb设置开机自启动 sudo /bin/systemctl daemon-reload sudo /bin/systemctl start grafana-server sudo /bin/systemctl enable grafana-server sudo /bin/systemctl status grafana-server访问测试(默认用户名和密码均为admin)添加数据源添加dashbord查看dashbord参考资料Prometheus看完这些,入门就够了Prometheus 重启失败的教训Prometheus(普罗米修斯)监控Prometheus(普罗米修斯)监控系统(一)https://grafana.com/grafana/downloadhttps://prometheus.io/download/
2022年06月15日
907 阅读
0 评论
0 点赞
2022-06-14
Bitwarden:搭建自己的密码管理服务器
0.应用背景各种杂七杂八的APP实在太多了,使用统一密码容易导致密码泄露,使用不同的密码容易记不住,将密码存在第三方也怕会发生数据泄露和服务商倒闭,因此自行考虑搭建密码管理工具1.搭建步骤1.1 安装docker宝塔在软件商店安装Docker管理器即可,其它使用命令行安装sudo apt update sudo apt install docker.io1.2 拉取 vaultwarden/server镜像[备注:老版bitwardenrs/server和手机APP不兼容]docker pull vaultwarden/server1.3 运行容器docker run -d --name vaultwarden -v /vw-data/:/data/ -p 60080:80 vaultwarden/server:latest备注:-v /vw-data/:/data/为必须,否则会出现如下 No persistent volume 报错:/--------------------------------------------------------------------\ | Starting Vaultwarden | | Version 1.30.5 | |--------------------------------------------------------------------| | This is an *unofficial* Bitwarden implementation, DO NOT use the | | official channels to report bugs/features, regardless of client. | | Send usage/configuration questions or feature requests to: | | https://github.com/dani-garcia/vaultwarden/discussions or | | https://vaultwarden.discourse.group/ | | Report suspected bugs/issues in the software itself at: | | https://github.com/dani-garcia/vaultwarden/issues/new | \--------------------------------------------------------------------/ [2024-03-21 13:46:40.290][vaultwarden][ERROR] No persistent volume! ######################################################################################## # It looks like you did not configure a persistent volume! # # This will result in permanent data loss when the container is removed or updated! # # If you really want to use volatile storage set `I_REALLY_WANT_VOLATILE_STORAGE=true` # 1.4 通过nginx创建网站1.5 开启SSL1.6 添加反向代理1.7 访问测试参考资料密码管理 Bitwarden服务端部署文档搭建自己的密码管理服务器 Bitwarden使用云服务器+docker搭建私有密码库Vaultwarden_docker安装vaultwarden-CSDN博客自建Vaultwarden (Bitwarden) 无法登陆问题的解决办法 - FREEZhao
2022年06月14日
618 阅读
0 评论
0 点赞
2022-05-13
cifs:Ubuntu 挂载 Samba 共享文件夹
1.安装cifs-utifssudo apt-get install cifs-utils2.列举指定IP地址所提供的共享文件夹列表sudo apt install smbclient smbclient -L ${ip_addr} -U ${username}%${password}3.挂载共享文件夹sudo mount -t cifs //指定SambaIP/文件夹名 /mnt/ -o username=${username},password=${password},iocharset=utf8,vers=1.04.实现开机自动挂载在/etc/fstab的末尾加入如下内容vim /etc/fstab//指定SambaIP/文件夹名 /mnt/ cifs defaults,username=${username},password=${password},iocharset=utf8,vers=1.0参考资料Ubuntu 挂载 Samba 共享文件夹Ubuntu 下挂载samba 服务
2022年05月13日
578 阅读
0 评论
0 点赞
2022-04-19
常用网站推荐
1.小说下载八零电子书:https://www.txt80.com/熊猫搜书:https://xmsoushu.com/2.百度文库下载在待下载的文档的链接里面把baidu换成baiduvvveg:https://wenku.baidu.com/view/108dccfc487302768e9951e79b89680202d86b3a.html换成https://wenku.baiduvvv.com/view/108dccfc487302768e9951e79b89680202d86b3a.html3.论文下载sci-hub:https://sci-hub.se/4.网盘资源搜索大圣盘:https://www.dashengpan.com/大力盘:https://www.dalipan.com/5.影视资源搜索人人电影网:https://www.rrdynb.com/index.html -- 支持百度网盘保存电影先生:http://dyxs12.com/ -- 可以结合m3u8工具下载BD影视:https://www.bd2020.co/ -- 支持百度网盘保存热点剧更新 -- 支持百度网盘保存6.PPT模板免费下载优品PPT:https://www.ypppt.com/PPT宝藏:http://www.pptbz.com/PPT超级市场:https://www.pptsupermarket.com/office plus:https://www.officeplus.cn/7.简历模板免费下载office plus:https://www.officeplus.cn/8.图像处理图片背景消除:https://www.remove.bg/zh在线ps:https://ps.gaoding.com/#/9.临时邮箱临时邮箱,邮箱有效不限时间 https://www.linshi-email.com/YOPmail 邮箱有效5日 http://www.yopmail.com/10分钟邮箱 邮箱有效10分钟[可无限续时10分钟] https://10minutemail.net/Guerrilla 邮箱有效60分钟 https://www.guerrillamail.comTempMail 邮箱有效不限时 https://temp-mail.org/crazymailing 邮箱有效30分钟 https://www.crazymailing.com/10.jetbrains破解码Pycharm 激活码:https://docs.qq.com/doc/DUWhnVEN4VlJEQmJ3?dver=IDEA 激活码:https://ma.qieit.com/idea.html
2022年04月19日
1,759 阅读
4 评论
1 点赞
2022-04-13
CommentToMail:给博客添加评论邮箱提醒功能
1.下载安装首先下载插件再上传到/usr/plugins目录解压,博客后台启用并配置插件。下载地址:CommentToMail2.配置邮箱smtp地址:smtp.qq.com(我用的QQ邮箱)SMTP端口:465SMTP用户:自己的邮箱账户SMTP密码:开启smtp时获取的授权码(QQ在设置-账户里面,其他百度)STMP验证:服务器需要验证、ssl加密全打勾3.美化代码3.1步骤一依次打开:博客后台 -> 控制台 -> 评论邮件提醒 -> 编辑邮件模板3.2步骤二将以下代码复制粘贴到guest.html<table style="width: 99.8%;height:99.8% "><tbody><tr><td style="background:#fafafa url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAy0lEQVQY0x2PsQtAYBDFP1keKZfBKIqNycCERUkMKLuSgZnRarIpJX8s3zfcDe9+794du+8bRVHQOI4wDAOmaULTNDDGYFkWMVVVQUTQdZ3iOMZxHCjLElVV0TRNYHVdC7ptW6RpSn3f4wdJkiTs+w6WJAl4DcOAbdugKAq974umaRAEARgXn+cRW3zfFxuiKCJZloXGHMeBbdv4Beq6Duu6Issy7iYB8Jbnucg8zxPLsggnj/zvIxaGIXmeB9d1wSE+nOeZf4HruvABUtou5ypjMF4AAAAASUVORK5CYII=')"> <div style="border-radius: 10px 10px 10px 10px;font-size:13px; color: #555555;width: 666px;font-family:'Century Gothic','Trebuchet MS','Hiragino Sans GB',微软雅黑,'Microsoft Yahei',Tahoma,Helvetica,Arial,'SimSun',sans-serif;margin:50px auto;border:1px solid #eee;max-width:100%;background: #ffffff repeating-linear-gradient(-45deg,#fff,#fff 1.125rem,transparent 1.125rem,transparent 2.25rem);box-shadow: 0 1px 5px rgba(0, 0, 0, 0.15);"> <div style="width:100%;background:#49BDAD;color:#ffffff;border-radius: 10px 10px 0 0;background-image: -moz-linear-gradient(0deg, rgb(67, 198, 184), rgb(255, 209, 244));background-image: -webkit-linear-gradient(0deg, rgb(67, 198, 184), rgb(255, 209, 244));height: 66px;"> <p style="font-size:15px;word-break:break-all;padding: 23px 32px;margin:0;background-color: hsla(0,0%,100%,.4);border-radius: 10px 10px 0 0;">您在<a style="text-decoration:none;color: #ffffff;" href="https:"> {siteTitle} </a>上的留言有新回复啦! </p> </div> <div style="margin:40px auto;width:90%"> <p>{author_p} 您曾在文章《{title}》上发表评论:</p> <p style="background: #fafafa repeating-linear-gradient(-45deg,#fff,#fff 1.125rem,transparent 1.125rem,transparent 2.25rem);box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15);margin:20px 0px;padding:15px;border-radius:5px;font-size:14px;color:#555555;">{text_p}</p> <p>{author} 给您的回复如下:</p> <p style="background: #fafafa repeating-linear-gradient(-45deg,#fff,#fff 1.125rem,transparent 1.125rem,transparent 2.25rem);box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15);margin:20px 0px;padding:15px;border-radius:5px;font-size:14px;color:#555555;">{text}</p> <p>您可以点击 <a style="text-decoration:none; color:#12addb" href="{permalink}">查看回复的完整內容 </a>,欢迎再次光临 <a style="text-decoration:none; color:#12addb" href="https:"> {siteTitle} </a>。</p> <style type="text/css">a:link{text-decoration:none}a:visited{text-decoration:none}a:hover{text-decoration:none}a:active{text-decoration:none}</style> </div> </div> </td></tr></tbody></table>3.3步骤三接着将以下代码复制粘贴到owner.html<style> .wrap span { display: inline-block; } .w260{ width: 260px;} .w20{ width: 20px;} .wauto{ width: auto;} </style> <table style="width: 99.8%;height:99.8% "><tbody><tr><td style="background:#fafafa url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAy0lEQVQY0x2PsQtAYBDFP1keKZfBKIqNycCERUkMKLuSgZnRarIpJX8s3zfcDe9+794du+8bRVHQOI4wDAOmaULTNDDGYFkWMVVVQUTQdZ3iOMZxHCjLElVV0TRNYHVdC7ptW6RpSn3f4wdJkiTs+w6WJAl4DcOAbdugKAq974umaRAEARgXn+cRW3zfFxuiKCJZloXGHMeBbdv4Beq6Duu6Issy7iYB8Jbnucg8zxPLsggnj/zvIxaGIXmeB9d1wSE+nOeZf4HruvABUtou5ypjMF4AAAAASUVORK5CYII=')"> <div style="border-radius: 10px 10px 10px 10px;font-size:13px; color: #555555;width: 666px;font-family:'Century Gothic','Trebuchet MS','Hiragino Sans GB',微软雅黑,'Microsoft Yahei',Tahoma,Helvetica,Arial,'SimSun',sans-serif;margin:50px auto;border:1px solid #eee;max-width:100%;background: #ffffff repeating-linear-gradient(-45deg,#fff,#fff 1.125rem,transparent 1.125rem,transparent 2.25rem);box-shadow: 0 1px 5px rgba(0, 0, 0, 0.15);"> <div style="width:100%;background:#49BDAD;color:#ffffff;border-radius: 10px 10px 0 0;background-image: -moz-linear-gradient(0deg, rgb(67, 198, 184), rgb(255, 209, 244));background-image: -webkit-linear-gradient(0deg, rgb(67, 198, 184), rgb(255, 209, 244));height: 66px;"> <p style="font-size:15px;word-break:break-all;padding: 23px 32px;margin:0;background-color: hsla(0,0%,100%,.4);border-radius: 10px 10px 0 0;">您的<a style="text-decoration:none;color: #ffffff;" href="https:"> {siteTitle} </a>上有新的评论啦! </p> </div> <div style="margin:40px auto;width:90%"> <p>{author} 在您文章《{title}》上发表评论:</p> <p style="background: #fafafa repeating-linear-gradient(-45deg,#fff,#fff 1.125rem,transparent 1.125rem,transparent 2.25rem);box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15);margin:20px 0px;padding:15px;border-radius:5px;font-size:14px;color:#555555;">{text}</p> <p class="wrap" style="text-decoration:none"><span class="w260">时间:{time}</span><span class="w20"> </span><span class="wauto"> IP:{ip}</span></p> <p class="wrap" style="text-decoration:none"><span class="w260">邮箱:{mail}</span><span class="w20"> </span><span class="wauto">状态:{status}</span></p> <p><a style="text-decoration:none; color:#12addb" href="{permalink}" target='_blank'>[查看评论]</a> | <a style="text-decoration:none; color:#12addb" href="{manage}" target='_blank'>[管理评论] </a></p> <style type="text/css">a:link{text-decoration:none}a:visited{text-decoration:none}a:hover{text-decoration:none}a:active{text-decoration:none}</style> </div> </div> </td></tr></tbody></table>注意:要把里面的链接改为自己的哦3.4美化效果被评论:被回复:
2022年04月13日
576 阅读
0 评论
0 点赞
2022-01-16
TensorBoard:训练日志及网络结构可视化工具
1.安装pip install tensorboard2.可视化标量数据(loss和accuracy)from torch.utils.tensorboard import SummaryWriter import random # 实例化TensorBoard logs_writer = SummaryWriter('./logs') # 可视化标量数据 for epoch_id in range(100): logs_writer.add_scalar("train/loss",random.random(),epoch_id) logs_writer.add_scalar("train/accuracy",random.random(),epoch_id) logs_writer.add_scalar("test/loss",random.random(),epoch_id) logs_writer.add_scalar("test/accuracy",random.random(),epoch_id)tensorboard --logdir=logs --bind_all3.可视化网络结构""" 可视化网络结构 """ import torch import torch.nn as nn from torch.utils.tensorboard import SummaryWriter # 实例化TensorBoard writer = SummaryWriter('./model_vis') # 构建网络模型 - 使用自定义类 class Digit_Rec(nn.Module): def __init__(self): super(Digit_Rec,self).__init__() self.conv1 = nn.Conv2d(1,10,5) #1:灰度图片的通道,10:输出通道,5:kernel self.relu1 = nn.ReLU() self.max_pool = nn.MaxPool2d(2,2) self.conv2 = nn.Conv2d(10,20,3) #10:输入通道,20:输出通道,3:Kernel self.relu2 = nn.ReLU() self.fc1 = nn.Linear(20*10*10,500) # 20*10*10:输入通道,500:输出通道 self.relu3 = nn.ReLU() self.fc2 = nn.Linear(500,10) # 500:输入通道,10:输出通道 self.relu4 = nn.ReLU() self.softmax = nn.Softmax(dim=1) def forward(self,x): batch_size = x.size(0) # x的格式:batch_size x 1 x 28 x 28 拿到了batch_size x = self.conv1(x) # 输入:batch*1*28*28 输出:batch*10*24*24 x = self.relu1(x) x = self.max_pool(x) # 输入:batch*10*24*24输出:batch*10*12*12 x = self.conv2(x) x = self.relu2(x) x = x.view(batch_size,-1) #fatten 展平 -1自动计算维度,20*10*10=2000 x = self.fc1(x) # 输入:batch*2000 输出:batch*500 x = self.relu3(x) x = self.fc2(x) # 输入:batch*500 输出:batch*10 x = self.relu4(x) output = self.softmax(x) # 计算分类后,每个数字的概率值 return output model = Digit_Rec() model = Digit_Rec() images = torch.randn(1, 1, 28, 28) writer.add_graph(model, images) writer.close()tensorboard --logdir=model_vis --bind_all参考资料Pytorch中使用tensorboard学习笔记(2)记录损失loss和准确率accuracypytorch中使用tensorboard绘制Accuracy/Loss曲线(train和test显示在同一幅图中)pytorch中使用TensorBoard进行可视化Loss及特征图
2022年01月16日
12,495 阅读
4 评论
0 点赞
2022-01-15
MyGraphPaper:免费在线方格笔记本制作工具
官方网站:https://www.mygraphpaper.com/index.php?lang=zh-hans如果你的笔记本纸用完了,买,是一种解决方案。自己做,也可以。而且更快更省钱。你还能想做什么样式,就做什么样式,用 MyGraphPaper 这样的在线工具就可以。在方格纸生成界面上,有包括笔记纸、方格纸、网格纸、画稿纸、乐谱纸等 17 种类型的笔记纸可供选择。在上方选择好类型后,下面还能对笔记纸进行自定义调整。在纸张设定里,提供了纸张类别、自定义大小、方向等多项自定义选项,你还可以自行选择插入小标题。下方还提供了更为细致的自定义选项。你可以在这里自定义间隔线、网点、线条、文字等多种格式。不同的纸张类型提供了不同的自定义选项。想要制作一张康奈尔笔记纸?点击模板,即可得到一张这样的页面。如果我们想要得到只有横向间隔线的页面,将直间隔线取消勾选即可;如果我们想要获得纯白页面,只需要将间隔线取消勾选,同时取消文字和水印。想镜像整个页面,调整方块位置即可。版式设计完成后,点击 PDF 输出下载,即可预览笔记纸。官方为我们提供了 PDF 格式的下载以及快速打印功能。一张自己独有的笔记纸,就这样轻松做出来了。参考资料https://topbook.cc/search/article?keywords=%E4%BD%9C%E4%B8%9A%E7%BA%B8&selectedArticle=1820
2022年01月15日
557 阅读
0 评论
0 点赞
2022-01-13
tqdm:简单好用的python进度条
1.介绍Tqdm是一个快速,可扩展的Python进度条,可以在 Python 长循环中添加一个进度提示信息,用户只需要封装任意的迭代器 tqdm(iterator)。安装方式如下:pip install tqdm2.简单使用2.1 用法一from tqdm import tqdm import time for i in tqdm(range(1000)): time.sleep(0.01) #do something100%|██████████| 1000/1000 [00:10<00:00, 95.17it/s]2.2 用法二from tqdm import trange import time for i in trange(100): time.sleep(0.01) #do something100%|██████████| 100/100 [00:01<00:00, 94.86it/s]2.3 用法三from tqdm import tqdm import timepython pbar = tqdm(total=100) for i in range(100): time.sleep(0.05) #do something pbar.update(1) pbar.close()100%|██████████| 100/100 [00:05<00:00, 19.35it/s2.4 用法四(具有前后缀描述功能)(推荐)from tqdm import tqdm import time import random pbar = tqdm(total=100) for i in range(100): time.sleep(0.05) #do something pbar.update(1) pbar.set_description("Epoch: %d" % 1) # 设置前缀 pbar.set_postfix({'loss':random.random()}) # 设置后缀 pbar.close()Epoch: 1: 100%|██████████| 100/100 [00:07<00:00, 14.28it/s, loss=0.709] 参考资料tqdm介绍及常用方法在tqdm中加入前缀和后缀详细介绍Python进度条tqdm的使用
2022年01月13日
669 阅读
0 评论
0 点赞
2022-01-11
Leanote(蚂蚁笔记):开源个人云笔记搭建
1.介绍Leanote是一款开源云笔记软件,具备 markdown 输入,代码高亮,多人协作,笔记历史记录,笔记内导航,直接发布为博客等等能力。特性高效笔记:Leanote 有易操作的界面, 包含一款富文本编辑器和Markdown编辑器,让您的笔记记录更轻松和高效。对高阶用户,我们还提供Vim 和Emacs 编辑模式,助推你的写作速度更上层楼。知识管理: Leanote 灵活而强大的“笔记本-笔记-标签”系统,让它成为你个人知识管理的利器。分享: 你可以通过Leanote同好友分享知识、想法和经历, 邀请好友加入你的笔记簿,通过云端交流信息。协作: Leanote协助你与同事之间相互协作,激荡新思路,随时随地头脑风暴。博客: Leanote也可以作为你的个人博客, 把你的知识传播的更远!其它特性支持Markdown编辑写作模式Vim 及 Emacs 编辑模式支持PDF导出支持批量操作博客自定义主题, 实现高度定制化2.搭建教程2.1 安装 MongodbcenterOS1、进入到yum仓库中,配置MongoDB的yum源。vim /etc/yum.repos.d/mongodb-org.repo2、通过点击 i 进入编辑模式,并在mongodb-org.repo中添加如下代码。[mongodb-org] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc注意:name #名称baseurl #获得下载的路径gpkcheck=1 #表示对从这个源下载的rpm包进行校验;enable=1 #表示启用这个源。gpgkey #gpg验证3、配置完yum源之后,通过ESC键退出并输入:wq保存退出,然后重新加载下yum源。yum list4、下载Mongodb。yum install mongodb-org -y5、配置MongoDB配置文件。vim /etc/mongod.conf 通过点击 i 进入编辑模式,修改其中的bindIp,配置完后,通过ESC键退出并输入:wq保存退出。net: port: 27017 bindIp: 0.0.0.0 6、执行以下命令,启动MongoDB服务。systemctl start mongod.service7、执行以下命令,查看MongoDB运行状态。systemctl status mongodubuntu1、首先在Mongodb官网下载最新版本。MongoDB 源码下载地址:https://www.mongodb.com/download-center#communitywget https://fastdl.mongodb.org/linux/mongodb-shell-linux-x86_64-ubuntu1804-5.0.5.tgz2、接着解压文件tar -xzvf mongodb-linux-x86_64-3.0.1.tgz/3、修改/etc/profile文件,配置环境变量,添加下面的命令在/etc/profile文件的最后面即可。export PATH=$PATH:/home/userone/mongodb-linux-x86_64-3.0.1/bin4、执行下面的命令使更改生效source /etc/profile5、新建配置文件mongod.confsystemLog: destination: file path: "/home/no4/mongodata/log/mongod.log" logAppend: true storage: dbPath: "/home/no4/mongodata/db" journal: enabled: true processManagement: fork: true net: bindIp: localhost port: 270175、在配置文件所指定的位置建立对应的文件夹mkdir /home/userone/data6、mongod -f /home/no4/mongodb/mongod.conf命令启动mongodb服务器,正常输出如下:root@no4-Default-string:/home/no4# mongod -f ./mongodb/mongod.conf about to fork child process, waiting until server is ready for connections. forked process: 11330 child process started successfully, parent exiting输入下面的命令启动它mongo如果没有提示错误,这说明Mongodb安装成功。2.2 安装Leanote1. 下载Leanote二进制安装包。wget --no-check-certificate https://nchc.dl.sourceforge.net/project/leanote-bin/2.6.1/leanote-linux-amd64-v2.6.1.bin.tar.gz2. 解压安装包。tar -zxvf leanote-linux-amd64-v2.6.1.bin.tar.gz3. 编辑文件leanote/conf/app.conf,在文件中找到app.secret项,将该项的值改为任意字符串。(如不修改将会有安全风险)。说明:根据Leanote官方文档,如不修改app.secret项的值,将会有安全隐患。a. 使用vim编辑器打开文件leanote/conf/app.conf。vim leanote/conf/app.confb. 进入vim编辑器后,输入:/app.secret=并按下回车查找app.secret位置。c. 找到该项位置后按下i键进入编辑模式,修改该项的值为任意字符串。d. 修改完成后,按下esc键退出编辑模式,输入:wq保存并退出vim编辑器。修改后如图所示。4. 初始化数据库。mongorestore -h localhost -d leanote --dir /root/leanote/mongodb_backup/leanote_install_data/5. 启动服务。nohup bash /root/leanote/bin/run.sh > /root/leanote/run.log 2>&1 &6. 访问云笔记。在浏览器中访问http://<IP>:9000,管理用户为admin,密码为abc123。登录成功后如下图所示。参考资料https://developer.aliyun.com/adc/scenario/b1ac9deecdb143469de985471b440aa7?spm=a2c6h.13858375.0.0.511279a9x0qQG8https://github.com/leanote/leanote云服务器搭建开源个人云笔记Leanote(蚂蚁笔记)Ubuntu下mongodb的安装与使用
2022年01月11日
1,390 阅读
0 评论
0 点赞
2022-01-05
Subsonic:使用VPS自建私有云音乐服务
1.简介Subsonic是一个免费且基于Web的媒体流媒体,用Java编写,适用于Linux、MacOS和Windows平台。使用Subsonic,你可以从家用计算机或任何面向公众的计算机流式传输音乐,并通过网络浏览器随时随地聆听音乐,因此你无需将音乐与弹性同步或Syncthing等文件同步应用程序同步。Subsonic功能:支持MP3、OGG、AAC以及通过HTTP流式传输的任何其他音频或视频格式适用于任何支持网络的媒体播放器,如Winamp、iTunes、XMMS、VLC、MusicMatch和Windows Media Player。专辑艺术展示,即时播放列表,即时转码。适用于Mac、Windows、Android、iPhone、Windows Phone和桌面应用的移动应用,Android应用支持离线播放。收听播客,分配评级,添加评论和创建播放列表。与朋友和家人分享音乐。流视频(高级功能)。2.在Ubuntu 上安装Subsonic2.1 安装java环境sudo apt update sudo apt install openjdk-8-jre当前Subsonic版本与Java 11不兼容,如果之前在Ubuntu 18.04上安装了Java 11,那么需要运行以下命令来选择默认的Java版本sudo update-alternatives --config java2.2 安装Subsonic接下来,使用以下命令下载Subsonic deb软件包,该命令将下载6.1.6版,可以在Subsonic网站的下载页面上查看最新版本,如果有新版本,只需将6.1.6替换为新版本号即可:wget https://s3-eu-west-1.amazonaws.com/subsonic-public/download/subsonic-6.1.6.deb用dpkg安装它:sudo dpkg -i subsonic-6.1.5.deb安装后,Subsonic守护程序将自动启动2.3 管理Subsonic# 可以通过以下命令检查其状态: systemctl status subsonic # 如果它没有运行,那么你可以手动启动它: sudo systemctl start subsonic # 并在系统启动时启用自动启动: sudo systemctl enable subsonic2.4 访问测试并进行相关设置登录默认情况下,subsonic侦听0.0.0.0:4040,这意味着它接受来自本地网络和Internet的请求。如果在本地Ubuntu计算机上安装了Subsonic,请在浏览器中输入http://localhost:4040访问Subsonic Web界面:如果在面向Internet的Ubuntu服务器上安装了Subsonic,请在浏览器中输入http://your-server-ip:4040访问Subsonic Web界面:默认用户名和密码是admin修改语言修改媒体文件夹请注意,用户必须可以访问该文件夹添加文件夹后,单击“立即扫描媒体文件夹”按钮,将可以在“Index”页面中收听音乐:2.5 更改启动用户默认情况下,Subsonic进程以root用户身份运行,出于安全原因,应该将其更改为普通用户,这可以通过编辑/etc/default/subsonic文件来完成:sudo vim /etc/default/subsonic找到以下行:SUBSONIC_USER=root将root更改为自己的用户帐户,如jupiter:SUBSONIC_USER=jupiter保存并关闭文件,然后重新启动subsonic守护程序以使更改生效:sudo systemctl restart subsonic2.在Centos 上安装Subsonic参考:https://zhuanlan.zhihu.com/p/46767211参考资料使用VPS自建私有云音乐服务–Subsonic在Ubuntu 18.04系统上安装Subsonic的方法
2022年01月05日
1,125 阅读
0 评论
0 点赞
2021-12-23
Code-server:一款基于VScode的在线编辑器
1.介绍code-server是一款基于VScode的在线编辑器,主要用于在Linux服务器环境下,实现任何设备通过浏览器即可访问VScode, 进而实现在远程编程.GIthub官方文档:https://github.com/cdr/code-server2.安装使用一键脚本安装curl -fsSL https://code-server.dev/install.sh | sh修改配置文件vim ~/.config/code-server/config.yaml# 对以下内容自行进行修改 bind-addr: 0.0.0.0:8080 auth: password password: jupiter cert: false使用screen后台运行screen -S code-server code-server打开IP:8080输入密码测试参考资料https://github.com/coder/code-server
2021年12月23日
1,108 阅读
1 评论
0 点赞
2021-12-23
SSHFS:通过ssh实现挂载远程目录到本地
1.简介SSHFS(SSH Filesystem)是一个基于FUSE的文件系统客户端,用于通过SSH连接远程目录。SSHFS使用的是SFTP协议,它是SSH的一个子系统,在大多数SSH服务器上默认启用与其他网络文件系统(如NFS和Samba)相比,SSHFS的优势在于它不需要在服务器端进行任何额外的配置。要使用SSHFS,您只需要SSH访问远程服务器。2.安装ubuntusudo apt install sshfscenteOSsudo yum -y install sshfs3.使用3.1 命令格式挂载sshfs [user@]host:[dir] mountpoint [options] # 常用option -p PORT #指定端口取消挂载umount mountpoint3.2 示例sshfs root@192.168.0.105:/Shares /mnt # 挂载 umount /mnt # 取消挂载如果需要开机自动挂载,可以在/etc/fstab文件中添加挂载项(前提是需要设置无密码登录,不然开机不能挂载):echo 'root@192.168.0.105:/Shares /mnt fuse.sshfs defaults 0 0'>> /etc/fstab参考资料使用SSHFS文件系统远程挂载目录Ubuntu下使用sshfs挂载远程目录到本地
2021年12月23日
767 阅读
0 评论
0 点赞
1
2
3
4