nibabel不能原地写回影像的问题
问题背景:因为我太菜了……为了图省事需要对一个nii文件反复读取、修改、写回磁盘。但是突然之间报这个问题:
PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问。: ‘centiloid_eval\AV45\iter_rigid\ED05_PET.nii’
大概代码如下:
1234567...for path, affine in zip(paths, corrected_affines): nii = nib.load(path) new_nii = nib.Nifti1Image(nii.get_fdata(), affine, nii.header) os.remove(path) # PermissionError results.append(new_nii)...
破案:numpy的mmap问题。
mmap解释:memory-mapped file,一个非常强大的操作系统功能,允许你将文件直接映射到内存中,使得程序可以像操作内存一样直接访问文件数据,而不需要显式地读取或写入文件。
上述代码改为
1n ...
PVE 8.3安装不成功重启后进grub解决方法
问题:安装PVE 8.3重启后不能正确进入PVE,而是自动进入grub rescue模式(grub命令行)。
解决:主要方案。解决思路为手动加载内核和启动文件,结合gpt具体解决步骤如下:
查找内核文件(vmlinuz)、启动文件(initrd)位置12ls# (proc) (pve-root) (pve-server) (hd0) (hd0,gpt3)...
内核文件和启动文件都在pve-root/boot下。可以通过ls (pve-root)/查看里面有什么东西。要注意的是,括号()和分隔符/都不可以少!
设置根分区1set root=(lvm/pve-root)
加载内核1linux /boot/vmlinuz-<version> root=/dev/mapper/pve-root
这里稍微解释一下:这条指令做两件事情,一个是加载内核到内存,再一个是指定内核应该挂载哪个根文件系统。如果是一个正常的OS,就应该挂载一个物理卷(Volume),比如/dev/sda1;如果是PVE,默认就是逻辑卷/dev/mapper/pve-root。可以回想一下hyper-v的操作 ...
homelab踩坑记
docker与反向代理篇
没有域名!
没有域名真的寸步难行……很多container默认在根目录/下工作,一旦redirect出来不带相对路径就寄了,所以还是老老实实的在内网开端口吧
考虑使用cloudflare tunnel
homepage
docker container不显示widget状态(链接)
首先,docker要能通过TCP提供docker本身的状态(比如这样)。或者通过一个container反向代理只在docker内网里提供信息
12345678910111213141516171819202122dockerproxy: image: ghcr.io/tecnativa/docker-socket-proxy:latest container_name: dockerproxy environment: - CONTAINERS=1 # Allow access to viewing containers - SERVICES=1 # Allow access to viewing services (necessary whe ...
nginx与docker
Nginx
nginx的作用
多server的负载均衡
加密:HTTPS
术语
directives(指令?): key-value
context:{…}
serve static files
12345678http { server { listen 8080; root /path/to/static/file/folder; }}events {}
然后reload
1nginx -s reload
MIME Types
在不配置的情况下,css不能成功应用到html文件中
检查Response headers - Content-Type: text/plain
1234567http { types { text/css css; # 斜杠就代表文件名中的. text/html html; } server {...}}
但是MIME Type太多 ...
理性的边界
披着科幻外衣的哲学拷问
缸中之脑描述了这样一个思想实验:把一个脑子取下来放在一个鱼缸里,用计算机模拟感知觉的输入,甚至通过某种技术为它植入虚假的记忆或情感。这个脑子能否感知自己正处在某种虚拟现实之中?
在我看来,这个问题最棘手的地方在于,Putnam实际上是为一种哲学终极疑问套上了一个科幻外壳。它在事实上拷问每一个读者:我们是谁,从哪里来,要到哪里去?缸中之脑实际上给出了一个非常悲观的答案:我们什么都不是,既不从哪里来,也不到哪里去。我们所知的世界不过是一种光影的幻象,毫无真实可言,充满了虚无主义的荒诞不经,周遭的一切都是不可知论和怀疑论构建的深渊。我们所做的一切,只是游戏引擎里徒劳无用的努力;快乐与痛苦,亦不过是程序虚构的假象;高尚或卑劣,在代码层面并无贵贱之分。缸中之脑要怀疑一切,否定一切,它甚至不在意这世界上是否真正存在这样一个神奇的鱼缸,只要在理智的头脑里种下怀疑的种子,缸中之脑就自然诞生,并再不可能在理性的世界里抹去。
从缸中之脑里引出的更深刻的问题是:假如这一切不过都是幻影,我们的存在又有什么意义?假如人生真如叔本华所言,不过是如同钟摆一样在痛苦和无聊中摆荡,我们为什么不干 ...
解决docker镜像拉取问题
docker拉取镜像的时候经常断,之前解决过一次,结果忘了,又折腾一遍。所以写个短小的笔记记录一下
首先遇到了这个问题:
1ailed to solve: nginx:alpine: failed to copy: httpReadSeeker: failed open: failed to do request: Get "https://production.cloudflare.docker.com/registry-v2/docker/registry/v2/blobs/sha256/cb/cb8f91112b6b50ead202f48bbf81cec4b34c254417254efd94c803f7dd718045/data?verify=1730801617-FU3heZxDeHwA43OyZBn3i%2BkKwM0%3D": dialing production.cloudflare.docker.com:443 matches manual override exclude: connecting to 173.252.108.3:443: dial ...
在WSL2中安装SPM12 Standalone
在这个链接下载MATLAB Compiler Runtime
在这个连接下载SPM Standalone
运行./MCRInstaller.bin的时候遇到 No Java Runtime Environment(JRE) was found on this system. 使用sudo apt install openjdk-11-jre尝试解决,发现解决不了!可以去看这个讨论
绝妙口诀一览
网罗医学绝妙口诀
头孢代数口诀
坐着拉大便
坐:头孢唑林
拉:头孢拉定
便:头孢氨苄、头孢羟氨苄
克夫多可惜
克:头孢克洛
夫:头孢呋辛
多:头孢孟多
他派我去出差
他:头孢他啶
派:头孢哌酮
我:头孢克肟
去:头孢曲松
比我厉害
比我:头孢吡肟、头孢匹罗
脑出血MRI信号转变3-7法则:I Bleed, I Die, Bleed Die, Bleed Bleed, Die Die
分期
出血时间
T1
T2
超急性期
<7h
等信号Isointense, I
高信号Bright, B
急性期
3h-3d
I
D
亚急性早期
3d-7d
B
D
亚急性晚期
7d-3w
B
B
慢性期
>3w
D
D
影像征象
牛眼征:转移性肝癌典型表现
儿科
运动:二抬四翻六会坐,七滚八爬周会走,二岁会跳三岁跑
解剖结构关闭:六月卵圆八周脐,三月导管一年闭
小儿体重公式
w={3.25m=0m+923≤m≤92y+81≤y≤67y−527≤y≤12 w = \begin{cases} 3.25 & m ...
ADNI学习笔记
有关诊断相关的内容,可以参考这个链接或者前往ADNIMERGE搜索对应的表格。
记录一次tf缺少cuDNN dll的问题
使用tensorflow的时候遇到了这个问题:Loaded cuDNN version 8302 Could not load library cudnn_cnn_infer64_8.dll. Error code 126
但实际上我已经把cudnn_cnn_infer64_8.dll加到环境变量中去了。
这可能是由于tf和cuDNN版本不匹配造成的问题。
可以考虑强行引入动态链接库:
12import ctypesctypes.WinDLL('path/to/cudnn_cnn_infer64_8.dll')
这样tf就可以正常训练啦!