|
本帖最后由 江苏人 于 2024-1-25 21:15 编辑
小白专用,快速更改训练迭代
版权声明:此非原创 仅为搬运帖
下载连结:
https://wwjm.lanzouq.com/iFmhi1mamsih
密码:cbn3
(仅适用DF原版或兼容的MVE版本模型,魔改版DF不适用)
前言:
设计这修改迭代,是基于有些参数改完后,或者更换了素材
要重新计数,以便于知道修改后或更换素材后,知道训练了多少迭代
一把菜刀能用来使坏也可以用来厨艺做菜,请往好的方向考量!
================================================
以下将代码拷贝到记事本,储存为 .bat 脚本(或者上方连结直接下载亦可)
放置在 df 工作目录,运行修改迭代的程序
@echo off
mode con cols=85 lines=60
REM 以下为检测python版本路径是否正确
if not exist "%~dp0_internal\python-3.6.8\" (
cls
@echo .
@echo .
@echo . 检测到你的python不是 3.6.8
@echo .
@echo . 请用记事本,将本脚本上有 python-3.6.8 的文字
@echo .
@echo . 改为你自己的python目录名称路径
@echo .
@echo . ===== 按任何键结束 =====
@echo .
pause>nul
exit)
REM 以下为检测模型是否存在
if not exist "%~dp0workspace\model\*_data.dat" (
cls
@echo .
@echo .
@echo . 没检测到存在的模型
@echo .
@echo . 请核实后再运行本脚本
@echo .
@echo .
@echo . ===== 按任何键结束 =====
@echo .
pause>nul
exit)
cls
REM dir 指令查询存在的模型
@echo .
@echo 以下为找到的 df 模型
dir/b "%~dp0workspace\model\*_data.dat"
@echo =================================
@echo .
@echo .
@echo . 1.xseg_data.dat的档名是遮罩模型,请勿更改!
@echo . 2.以下你仅需输入档名,副档名 .dat 不用输入
@echo . 例如new_SAEHD_data.dat 仅输入 new_SAEHD_data
@echo . 3.严格区分大小写,档名如为 new_SAEHD_data或中文字均可
@echo . 不可以输入NEW_SAEHD_DATA 切记!! 建议用复制方式贴上
@echo .
set /p model=请参考上面列出的模型,手动输入档名→
REM 以下检测你输入的模型是否正确
if not exist "%~dp0workspace\model\%model%.dat" (
cls
@echo .
@echo .
@echo . 你输入的模型档名错误!
@echo .
@echo . 请核实后再运行本脚本
@echo .
@echo .
@echo . ===== 按任何键结束 =====
@echo .
pause>nul
exit)
REM 以下输入要修改的迭代数
@echo .
@echo .
@echo . 请输入要修改的迭代数,必须是三位数以上 例如100 2000 等
@echo . 请勿输入个位数和两位数,例如 0-99 这样会出错
@echo .
@echo .
set /p Iterate=. 请输入你要修改的迭代数→
cls
rem =============修改迭代开始==============
REM 以下两行删除先前的暂存档(若有),则直接删除
del test.py/Q > nul
del "%~dp0_internal\python-3.6.8\test.py" /Q > nul
rem 用导管建立临时的 test.py 档案
echo from os import path>>test.py
echo import pickle>>test.py
echo from pathlib import Path>>test.py
echo model_data_path = r"..\..\workspace\model/%model%.dat">>test.py
echo filepath = Path(model_data_path)>>test.py
echo if filepath.exists():>>test.py
echo d_dumped = filepath.read_bytes()>>test.py
echo d = pickle.loads(d_dumped)>>test.py
echo d['options']['target_iter'] = 0>>test.py
echo d['iter'] = %Iterate%>>test.py
echo d['loss_history'] = []>>test.py
echo d['sample_for_preview'] = []>>test.py
echo d_dumped = pickle.dumps (d, 4)>>test.py
echo p_tmp = filepath.parent / (filepath.name + '.tmp')>>test.py
echo p_tmp.write_bytes(d_dumped)>>test.py
echo if filepath.exists():>>test.py
echo filepath.unlink()>>test.py
echo p_tmp.rename (filepath)>>test.py
echo filepath.write_bytes(pickle.dumps(d))>>test.py
xcopy test.py .\_internal\python-3.6.8\ /Y/Q > nul
cd _internal
cd python-3.6.8
python test.py>nul
cd..
cd..
del "%~dp0_internal\python-3.6.8\test.py" /Q > nul
del test.py/Q > nul
rem =============修改迭代结束==============
cls
@echo .
@echo .
@echo .
@echo . 你修改的模型 %model%.dat
@echo . 迭代数为 %Iterate%
@echo .
@echo . 按任何键关闭本程序。。。
@echo .
pause>nul
exit/b
|
|