Clean
This commit is contained in:
@@ -1,154 +0,0 @@
|
|||||||
{
|
|
||||||
"cells": [
|
|
||||||
{
|
|
||||||
"cell_type": "code",
|
|
||||||
"execution_count": 1,
|
|
||||||
"metadata": {},
|
|
||||||
"outputs": [],
|
|
||||||
"source": [
|
|
||||||
"import os\n",
|
|
||||||
"\n",
|
|
||||||
"root = \"model_assets/jvnv-F1\"\n",
|
|
||||||
"pth_files = [os.path.join(root, f) for f in os.listdir(root) if f.endswith(\".pth\")]"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"cell_type": "code",
|
|
||||||
"execution_count": 8,
|
|
||||||
"metadata": {},
|
|
||||||
"outputs": [],
|
|
||||||
"source": [
|
|
||||||
"import torch\n",
|
|
||||||
"\n",
|
|
||||||
"model_name = \"G_0.pth\"\n",
|
|
||||||
"model = torch.load(f\"pretrained/{model_name}\", map_location=torch.device(\"cpu\"))"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"cell_type": "code",
|
|
||||||
"execution_count": 5,
|
|
||||||
"metadata": {},
|
|
||||||
"outputs": [
|
|
||||||
{
|
|
||||||
"name": "stdout",
|
|
||||||
"output_type": "stream",
|
|
||||||
"text": [
|
|
||||||
"enc_p.emo_proj.bias\n",
|
|
||||||
"enc_p.emo_q_proj.weight\n",
|
|
||||||
"enc_p.emo_q_proj.bias\n"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"source": [
|
|
||||||
"from safetensors.torch import save_file\n",
|
|
||||||
"state_dict = model[\"model\"]\n",
|
|
||||||
"new_dict = {}\n",
|
|
||||||
"for k in state_dict.keys():\n",
|
|
||||||
" if k.startswith(\"enc_p.emo\"):\n",
|
|
||||||
" print(k)\n",
|
|
||||||
" else:\n",
|
|
||||||
" new_dict[k] = state_dict[k]\n"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"cell_type": "code",
|
|
||||||
"execution_count": 6,
|
|
||||||
"metadata": {},
|
|
||||||
"outputs": [],
|
|
||||||
"source": [
|
|
||||||
"save_file(new_dict, f\"pretrained/{model_name.replace('.pth', '.safetensors')}\")"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"cell_type": "code",
|
|
||||||
"execution_count": 1,
|
|
||||||
"metadata": {},
|
|
||||||
"outputs": [],
|
|
||||||
"source": [
|
|
||||||
"from glob import glob\n",
|
|
||||||
"root_dir = \"model_assets\"\n",
|
|
||||||
"\n",
|
|
||||||
"safetensors_files = glob(f\"{root_dir}/**/*.safetensors\", recursive=True)\n"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"cell_type": "code",
|
|
||||||
"execution_count": null,
|
|
||||||
"metadata": {},
|
|
||||||
"outputs": [],
|
|
||||||
"source": [
|
|
||||||
"# 推論に不要なenc_qを消し忘れていたのを削除\n",
|
|
||||||
"\n",
|
|
||||||
"from safetensors import safe_open\n",
|
|
||||||
"from safetensors.torch import save_file\n",
|
|
||||||
"\n",
|
|
||||||
"for path in safetensors_files:\n",
|
|
||||||
" print(path)\n",
|
|
||||||
" tensors = {}\n",
|
|
||||||
" with safe_open(path, framework=\"pt\", device=\"cpu\") as f:\n",
|
|
||||||
" for key in f.keys():\n",
|
|
||||||
" if key.startswith(\"enc_q\"):\n",
|
|
||||||
" print(key)\n",
|
|
||||||
" continue\n",
|
|
||||||
" tensors[key] = f.get_tensor(key)\n",
|
|
||||||
" save_file(tensors, path.replace(\".safetensors\", \".new.safetensors\"))"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"cell_type": "code",
|
|
||||||
"execution_count": 6,
|
|
||||||
"metadata": {},
|
|
||||||
"outputs": [
|
|
||||||
{
|
|
||||||
"name": "stdout",
|
|
||||||
"output_type": "stream",
|
|
||||||
"text": [
|
|
||||||
"enc_p.xvec_proj.weight enc_p.style_proj.weight\n",
|
|
||||||
"enc_p.xvec_proj.bias enc_p.style_proj.bias\n"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"source": [
|
|
||||||
"# pthファイルを推論用safetensorsに変換\n",
|
|
||||||
"from safetensors.torch import save_file\n",
|
|
||||||
"from safetensors import safe_open\n",
|
|
||||||
"import torch\n",
|
|
||||||
"\n",
|
|
||||||
"pth_path = \"model_assets/jvnv-F1/release_7000.pth\"\n",
|
|
||||||
"pth_weight = torch.load(pth_path, map_location=torch.device(\"cpu\"))\n",
|
|
||||||
"new_dict = {}\n",
|
|
||||||
"for key in pth_weight[\"model\"]:\n",
|
|
||||||
" if key.startswith(\"enc_p.xvec_proj.\"): # 前のモデルの名残\n",
|
|
||||||
" print(key, key.replace(\"enc_p.xvec_proj.\", \"enc_p.style_proj.\"))\n",
|
|
||||||
" new_dict[key.replace(\"enc_p.xvec_proj.\", \"enc_p.style_proj.\")] = pth_weight[\"model\"][key].clone().contiguous() # よく分からないおまじないをしないとエラーになる\n",
|
|
||||||
" elif not key.startswith(\"enc_q\"):\n",
|
|
||||||
" new_dict[key] = pth_weight[\"model\"][key]\n",
|
|
||||||
" else:\n",
|
|
||||||
" continue\n",
|
|
||||||
"new_dict[\"iteration\"] = torch.LongTensor([pth_weight[\"iteration\"]])\n",
|
|
||||||
"save_file(new_dict, pth_path.replace(\".pth\", \".pth.safetensors\"))\n"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"metadata": {
|
|
||||||
"kernelspec": {
|
|
||||||
"display_name": "venv",
|
|
||||||
"language": "python",
|
|
||||||
"name": "python3"
|
|
||||||
},
|
|
||||||
"language_info": {
|
|
||||||
"codemirror_mode": {
|
|
||||||
"name": "ipython",
|
|
||||||
"version": 3
|
|
||||||
},
|
|
||||||
"file_extension": ".py",
|
|
||||||
"mimetype": "text/x-python",
|
|
||||||
"name": "python",
|
|
||||||
"nbconvert_exporter": "python",
|
|
||||||
"pygments_lexer": "ipython3",
|
|
||||||
"version": "3.10.11"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nbformat": 4,
|
|
||||||
"nbformat_minor": 2
|
|
||||||
}
|
|
||||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user