Open KylinMountain opened 4 months ago
为了保证复制粘贴即可无脑成功,建议增加: import lzma import numpy as np
可以提供一个直接把旧pt转换成新pt的脚本吗? 尽量不想在源码里加函数和判断:)
也可以使用chat里的隐藏方法_encode_spk_emb,官方自带。脚本的话 自己拷贝过去不就得了?
@staticmethod
@torch.no_grad()
def _encode_spk_emb(spk_emb: torch.Tensor) -> str:
arr: np.ndarray = spk_emb.to(dtype=torch.float16, device="cpu").numpy()
s = b14.encode_to_string(
lzma.compress(
arr.tobytes(),
format=lzma.FORMAT_RAW,
filters=[{"id": lzma.FILTER_LZMA2, "preset": 9 | lzma.PRESET_EXTREME}],
),
)
del arr
return s
也可以使用chat里的隐藏方法_encode_spk_emb,官方自带。脚本的话 自己拷贝过去不就得了?
@staticmethod @torch.no_grad() def _encode_spk_emb(spk_emb: torch.Tensor) -> str: arr: np.ndarray = spk_emb.to(dtype=torch.float16, device="cpu").numpy() s = b14.encode_to_string( lzma.compress( arr.tobytes(), format=lzma.FORMAT_RAW, filters=[{"id": lzma.FILTER_LZMA2, "preset": 9 | lzma.PRESET_EXTREME}], ), ) del arr return s
谢谢,改代码ok的,我其实意思就是,把判断旧pt的逻辑直接写好在主分支中,这样我自己就不修改了,以后直接就update了,省的冲突,怕越改越多
添加如下压缩方法,将tensor压缩并使用pybase16384编码压缩后tensor为字符串
使用该压缩方法,即可加载