最近在看这篇关于自监督本征图分解的论文
Self-Supervised Intrinsic Image Decomposition
想跑通这个代码https://github.com/jannerm/intrinsics-network
按照步骤来,训练shader那一步,输入命令:
python shader.py --data_path dataset/output --save_path saved/shader --num_train 10000 --num_val 20 \
--train_sets motorbike_train,airplane_train,bottle_train \
--val_set motorbike_val,airplane_val,bottle_val
就一直报这个错误:
<Shader> Building Encoder 3 --> 16 --> 32 --> 64 --> 128 --> 256 --> 256
<Shader> Building Decoder 257 --> 256 --> 256 --> 128 --> 64 --> 32 --> 16 --> 1
/home/anaconda3/lib/python3.7/site-packages/torch/nn/_reduction.py:42: UserWarning: size_average and reduce args will be deprecated, please use reduction='mean' instead.
warnings.warn(warning.format(ret))
<Main> Epoch 0
Traceback (most recent call last):
File "/home/anaconda3/lib/python3.7/site-packages/torch/serialization.py", line 379, in save
_save(obj, opened_zipfile, pickle_module, pickle_protocol)
File "/home/anaconda3/lib/python3.7/site-packages/torch/serialization.py", line 486, in _save
zip_file.write_record('data.pkl', data_value, len(data_value))
TypeError: write() argument must be str, not bytes
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "shader.py", line 45, in <module>
torch.save( shader, open(os.path.join(args.save_path, 'model.t7'), 'w') )
File "/home/anaconda3/lib/python3.7/site-packages/torch/serialization.py", line 380, in save
return
File "/home/anaconda3/lib/python3.7/site-packages/torch/serialization.py", line 259, in __exit__
self.file_like.write_end_of_file()
TypeError: write() argument must be str, not bytes
terminate called after throwing an instance of 'pybind11::error_already_set'
what(): TypeError: write() argument must be str, not bytes
已放弃(吐核)