- 博客(50)
- 收藏
- 关注
原创 MMSegmentation实现病理肿瘤分割全流程
MMSegmentation(MMseg)是OpenMMLab团队开发的语义分割开源工具,特别适用于病理影像分析。文章详细介绍了使用MMseg进行病理肿瘤分割的全流程:1)环境配置与数据准备,推荐将WSI大图预处理为patch;2)模型训练配置,支持UNet、DeepLabV3等架构的patch级训练;3)关键实现——滑动窗口推理(inference_sliding),可高效处理超大医学图像,通过设置crop_size和stride实现全图分割;4)结果可视化与评估。文中提供了完整的代码示例,并针对病理影像
2025-07-21 05:01:10
786
原创 MONAI实现病理影像肿瘤检测全流程
本文介绍了使用MONAI框架实现病理全切片图像(WSI)肿瘤检测的完整流程。主要包括:1)通过WSIPatchDataset构建WSI分块数据集;2)使用UNet模型进行训练;3)采用滑动窗口推理(sliding_window_inference)实现全图分割;4)结果可视化与掩膜生成。文章详细说明了环境配置、数据预处理、模型定义、训练过程和推理方法,并提供了兼容OpenSlide处理超大病理图像的解决方案。特别强调了内存管理、多通道处理和数据对齐等关键注意事项,适合开发者快速实现WSI肿瘤检测的二次开发。
2025-07-21 04:54:51
231
原创 深度学习图像预处理:统一输入图像尺寸方案
本文总结了图像分类和分割任务中处理不同尺寸输入的常见方法。在分类任务中,主要采用直接缩放、缩放+裁剪、随机缩放裁剪、填充后缩放或自适应池化等方式,各有优缺点。分割任务需确保图像和掩码同步变换,常用固定大小缩放裁剪、保持长宽比填充、随机裁剪小块或全卷积结构处理。关键是要保持图像和标签的空间对应关系,mask需使用最近邻插值。实际应用中,训练时通常采用固定尺寸处理以保证批量训练效率,推理时可灵活应对不同分辨率。根据不同需求(训练速度、保留比例或增强多样性)可选择或组合这些方案。
2025-07-21 03:08:07
243
原创 SSH开启Socks5服务
如果返回的是代理服务器的公网 IP,就说明 SOCKS5 代理正常工作。客户端配置:将浏览器或其它工具的 SOCKS5 代理地址设为。:在所有网卡监听 1080 端口,作为 SOCKS5 代理。:后台运行、只做端口转发不执行远程命令。(可选)如果你只想本机访问,改用。安装 Dante-server。要允许外部机器连入,保持。安装并启动 SSH 服务。服务器IP:1080。服务器IP:1080。
2025-07-20 21:29:16
163
原创 SSH隧道远程连接局域网的电脑
背景:我有一台公网ip的Ubuntu服务器,地址是:8.137.100.101,内网地址是:192.168.3.100。另外我有一台Windows 10的电脑打开了远程桌面登录,内网地址是:192.168.3.50。(无需安装任何程序,也无需提前配置)如果有一台具有公网IP地址(8.137.100.101)的Ubuntu服务器和一个位于同一内网(192.168.3.x)的Windows 10电脑,可以通过SSH隧道来实现远程连接到Windows 10电脑。可以是选择的任意未被占用的端口,例如。
2023-12-27 17:39:32
1516
原创 Pytorch使用DataLoader, num_workers!=0时的内存泄露
我在做一个超大数据集的多分类,设备Ubuntu 22.04+i9 13900K+Nvidia 4090+64GB RAM,第一次的训练的训练集有700万张,训练成功。找了很久的原因,发现内存随着训练step的增加而线性增加,猜测是内存泄露,最后定位到了DataLoader的num_workers参数(只要num_workers=0就没有问题)。Python中的list转换成tensor时,会发生内存泄漏,要避免list的使用,可以通过使用np.array来代替list。3.正确的重写Dataset方法()
2023-10-08 01:00:56
2323
原创 申请HTTPS证书
Certbot 支持多种方式来验证您的域名所有权,包括通过 HTTP、DNS 等。如果您使用的是 Nginx 或 Apache,Certbot 甚至可以自动配置您的服务器。这里,/var/www/html 是您网站的 web root 目录。Certbot 将在这个目录下创建一个临时文件,以完成 HTTP 验证。一种常用的方式是使用 webroot 插件。首先,您需要在您的服务器上安装 Certbot。这个过程依赖于您的操作系统。
2023-09-11 05:21:24
402
原创 Ubuntu22.04 LTS+NVIDIA 4090+Cuda12.1+cudnn8.8.1
【代码】Ubuntu22.04 LTS+NVIDIA 4090+Cuda12.1+cudnn8.8.1。
2023-08-31 14:28:44
2494
1
原创 Ubuntu CUDA runtime implicit initialization on GPU:0 failed. Status: out of memory
Ubuntu CUDA runtime implicit initialization on GPU:0 failed. Status: out of memory
2022-03-26 07:05:33
2891
2
原创 Visio 保存高质量的PDF
1.在visio中,直接选择“文件”->选"打印";2.打印机选Adobe PDF(或Microsoft Print to PDF);3.仅打印当前页面;4.页面设置(关键);5.打印纸张如果选择A0,打印缩放比就选为400%;如果是A2,就选200%。6.打印保存为电子版,完成。说明:1.纸张越大,经过缩放填充满整个纸张后,电子打印出的pdf就越清晰;2.先点击“应用”,可以查看纸张是否填充满当前纸张的页面。...
2022-01-11 07:45:46
4882
原创 Ubuntu 18.04 从1080Ti升级到3090辛酸历程
1.卸载原有显卡驱动sudo apt-get purge nvidia*或者 sudo apt-get remove --purge nvidia*2.查看可用驱动:ubuntu-drivers devices(base) jack@JACK429:~$ ubuntu-drivers devices== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==modalias : pci:v000010DEd00002204sv00.
2021-03-06 07:00:29
871
1
原创 Ubuntu远程ssh维护teamviewer
1.下载teamviewerhttps://www.teamviewer.cn/cn/download/linux/wget https://dl.teamviewer.cn/download/linux/version_15x/teamviewer_15.9.4_amd64.deb2.安装teamviewersudo dpkg -i teamviewer_15.9.4_amd64.deb解决依赖问题:sudo apt-get install -f3.配置teamviewer文
2020-08-26 02:55:52
507
原创 测试tensorflow-gpu的GPU代码,观察显卡占用情况判断
# import tensorflow as tf## sess = tf.compat.v1.Session(config=tf.compat.v1.ConfigProto(log_device_placement=True))# 如果为False, 检查tensorflow-gpu、cudatoolkit和cudnn版本是否对应一致# print(tf.test.is_gpu_available())from __future__ import print_function'''Ba.
2020-08-25 04:53:11
1331
原创 keras plot_model函数画网络结构图,问号??改成None
Ubuntu找这个目录文件anaconda3/envs/yourEnv/lib/python3.7/site-packages/tensorflow_core/python/keras/utils/vis_utils.pyWindows找这个目录文件Anaconda\envs\yourEnv\Lib\site-packages\tensorflow\python\keras\utils\vis_utils.py问题出在vis_utils.py文件中下面这个函数上面def format_
2020-08-21 07:02:25
1264
原创 深度学习模型运行的浮点次数FLOPs和训练参数程序获取方法
# 浮点运行次数# FLOPS:注意全大写,是floating point operations per second的缩写,意指每秒浮点运算次数,理解为计算速度。是一个衡量硬件性能的指标。# FLOPs:注意s小写,是floating point operations的缩写(s表复数),意指浮点运算数,理解为计算量。可以用来衡量算法/模型的复杂度。# In TF 2.x you have to use tf.compat.v1.RunMetadata instead of tf.RunMetada.
2020-08-08 05:23:55
3567
11
原创 Medical Imaging可投期刊和会议
期刊TMI: IEEE Transactions on Medical Imaginghttps://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=42Medical Image Analysishttps://www.journals.elsevier.com/medical-image-analysis/会议1 M...
2020-05-01 03:57:06
2199
原创 学习笔记(一)什么是梯度?为什么要正则化?偏差(Bias)和方差(Variance)的关系?为了更小的误差(error),如何选择模型?
一、什么是梯度?答:▽ L就是梯度(如图),三角形符号倒过来(▽ )是梯度算子(在空间各方向上的全微分)二、为什么要正则化?
2020-03-18 03:13:43
2891
原创 计算机论文撰写专用术语
夸自己方法好1.We demonstrate that our approach significantly outperforms state-of-the-art techniques and closely matches the performance of human annotators.我们展示了我们的方法显著地优于最先进的技术,并且与人类标注的性能非常接近。2.Our ...
2020-01-19 23:17:14
630
1
原创 SCI论文写作引导
1.论文Introduction怎么写?a.背景介绍,现状(介绍别人研究),存在问题,怎样解决,你的做法,有何亮点b.研究背景和重要性、引出该领域科研空白、点题—指出本文的研究课题、概述文章的核心方法论和主要发现、提出猜想和研究目的c.最后,总结一篇article的introduction 应该包括下面几个部分:1. 研究范围,研究目标,为什么选择这个研究目标。2. 研究背景...
2020-01-08 01:47:28
4863
原创 Conda 使用技巧
# 使用conda创建虚拟环境conda create -n env_name python=3.7 cudatoolkit=10.0 cudnnpip install tensorflow-gpu==2.0.0pip install keras
2019-10-26 01:59:47
252
原创 【医学影像】1.医学影像知识介绍
【影响因子最高的计算机科学期刊(前50种)】1.IEEE Transactions on Medical Imaging 链接影响因子:3.922 2.Medical Image Analysis 链接影响因子:3.2123.Journal of the American Medical Informatics Association影响因子:2.6124.【图...
2018-12-13 15:23:38
3022
原创 浏览器Console下,cookies更新
function UpdateCookies(cookies){ datas = cookies.split(";"); for(var i=0; i<datas.length; i++) { document.cookie = datas[i]; } return "success";};cookies = "your new...
2018-11-10 18:16:27
843
原创 10.逻辑回归-下采样、过采样、交叉验证
import numpy as npimport pandas as pdimport matplotlib.pyplot as pltfrom sklearn.preprocessing import StandardScalerfrom sklearn.model_selection import train_test_splitfrom sklearn.linear_model ...
2018-10-22 17:52:19
3102
1
原创 9.机器学习模型评价指标
1)正确率(accuracy) 正确率是我们最常见的评价指标,accuracy = (TP+TN)/(P+N),这个很容易理解,就是被分对的样本数除以所有的样本数,通常来说,正确率越高,分类器越好; 2)错误率(error rate) 错误率则与正确率相反,描述被分类器错分的比例,error rate = (FP+FN)/(P+N),对某一个实例来说,分对与分错是互斥事...
2018-10-19 20:10:56
1540
原创 8.基础绘图
1.离散点图代码:import numpy as npimport pandas as pdimport matplotlib.pyplot as pltpath = 'LogiReg_data.txt'data = pd.read_csv(path, header=None, names=['Exam1', 'Exam2', 'Admitted'])# 正例positi...
2018-10-15 00:35:13
304
原创 【leetcode】8. 字符串转整数 (atoi)
题目描述:实现 atoi,将字符串转为整数。原题链接该函数首先根据需要丢弃任意多的空格字符,直到找到第一个非空格字符为止。如果第一个非空字符是正号或负号,选取该符号,并将其与后面尽可能多的连续的数字组合起来,这部分字符即为整数的值。如果第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。字符串可以在形成整数的字符后面包括多余的字符,这些字符可以被忽略,它们对于函数没...
2018-09-29 02:59:58
184
原创 【leetcode】7. 反转整数
题目描述:给定一个 32 位有符号整数,将整数中的数字进行反转。方法:弹出和推入数字 & 溢出前进行检查思路我们可以一次构建反转整数的一位数字。在这样做的时候,我们可以预先检查向原整数附加另一位数字是否会导致溢出。方案一#include<iostream>using namespace std;//常规方案int reverse(int number...
2018-09-27 23:08:47
1149
1
原创 【leetcode】排序算法笔记
1.冒泡排序(Bubble Sort) //冒泡排序void BubbleSort(int *a, int length){ for (int i = 0;i < length - 1;i++) { for (int j = 0;j < length - i - 1;j++) { if (a[j] > a[j + 1]) ...
2018-09-27 20:39:35
590
原创 【leetcode】6. Z字形变换
方法一:建立一个二维向量,然后用字符串去一步一步填这个向量,最后输出。效率极低(132 ms,仅战胜%2的提交记录)#include<iostream>#include<string>#include<vector>using namespace std;string convert(string s, int numRows){ int ...
2018-09-26 13:44:13
167
原创 【leetcode】动态规划之01背包问题
先学会手动填动态规划的表 后面的颜色块值是根据前面的颜色块值计算出来的,不懂就留言#include<iostream>#include<vector>using namespace std;int Knapsack(vector<int> weights, vector<int> values, int capacity){ ...
2018-09-26 03:09:53
4686
原创 【leetcode】5. 最长回文子串
我们就可以在 O(n^2)O(n2) 的时间内解决这个问题。我们观察到回文中心的两侧互为镜像。因此,回文可以从它的中心展开,并且只有 (2n - 1 )个这样的中心。你可能会问,为什么会是 2n - 12n−1 个,而不是 nn 个中心?原因在于所含字母数为偶数的回文的中心可以处于两字母之间(例如 “abba”的中心在两个‘b’ 之间)。示例代码:#include<iost...
2018-09-25 17:12:50
171
原创 【leetcode】3. 无重复字符的最长子串
#include<iostream>#include<string>#include<math.h>#include<unordered_set>using namespace std;方法一:暴力法思路逐个检查所有的子字符串,看它是否不含有重复的字符。算法假设我们有一个函数 boolean allUnique(Stri...
2018-09-21 23:33:06
158
原创 【leetcode】415. 字符串相加(大整数相加)
#include<iostream>#include<string>#include<vector>using namespace std;string Add(string num1, string num2){ //保证a永远是最长的那个字符串 if (num1.size() < num2.size()) { string tem...
2018-09-21 15:38:41
553
原创 【leetcode】2. 两数相加
#include<iostream>using namespace std;struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};//方法一(不推荐):ListNode* addTwoNumbers(ListNode* l1, ListNode* l2...
2018-09-21 03:08:39
202
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人