mirror of
https://github.com/lltcggie/waifu2x-caffe.git
synced 2025-06-26 05:32:47 +00:00
cuDNNのアルゴリズムデータ読み書きの例外対策
This commit is contained in:
parent
2ea99797c6
commit
aba4f717fb
@ -318,12 +318,19 @@ private:
|
|||||||
|
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
|
|
||||||
CcuDNNAlgorithmElement elm;
|
try
|
||||||
msgpack::unpack(sbuf.data(), sbuf.size()).get().convert(elm);
|
{
|
||||||
sbuf.clear();
|
CcuDNNAlgorithmElement elm;
|
||||||
|
msgpack::unpack(sbuf.data(), sbuf.size()).get().convert(elm);
|
||||||
|
sbuf.clear();
|
||||||
|
|
||||||
const uint64_t key = InfoToKey(kernel_w, kernel_h, pad_w, pad_h, stride_w, stride_h, batch_size);
|
const uint64_t key = InfoToKey(kernel_w, kernel_h, pad_w, pad_h, stride_w, stride_h, batch_size);
|
||||||
mAlgoEmlMap[key] = std::move(elm);
|
mAlgoEmlMap[key] = std::move(elm);
|
||||||
|
}
|
||||||
|
catch (...)
|
||||||
|
{
|
||||||
|
boost::filesystem::remove(SavePath);
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -373,22 +380,27 @@ public:
|
|||||||
auto &eml = p.second;
|
auto &eml = p.second;
|
||||||
if (eml.IsModefy())
|
if (eml.IsModefy())
|
||||||
{
|
{
|
||||||
msgpack::sbuffer sbuf;
|
try
|
||||||
msgpack::pack(sbuf, eml);
|
|
||||||
|
|
||||||
uint8_t kernel_w, kernel_h, pad_w, pad_h, stride_w, stride_h;
|
|
||||||
uint16_t batch_size;
|
|
||||||
eml.GetLayerData(kernel_w, kernel_h, pad_w, pad_h, stride_w, stride_h, batch_size);
|
|
||||||
|
|
||||||
const std::string SavePath = GetDataPath(kernel_w, kernel_h, pad_w, pad_h, stride_w, stride_h, batch_size);
|
|
||||||
FILE *fp = fopen(SavePath.c_str(), "wb");
|
|
||||||
if (fp)
|
|
||||||
{
|
{
|
||||||
fwrite(sbuf.data(), 1, sbuf.size(), fp);
|
msgpack::sbuffer sbuf;
|
||||||
fclose(fp);
|
msgpack::pack(sbuf, eml);
|
||||||
|
|
||||||
eml.Saved();
|
uint8_t kernel_w, kernel_h, pad_w, pad_h, stride_w, stride_h;
|
||||||
|
uint16_t batch_size;
|
||||||
|
eml.GetLayerData(kernel_w, kernel_h, pad_w, pad_h, stride_w, stride_h, batch_size);
|
||||||
|
|
||||||
|
const std::string SavePath = GetDataPath(kernel_w, kernel_h, pad_w, pad_h, stride_w, stride_h, batch_size);
|
||||||
|
FILE *fp = fopen(SavePath.c_str(), "wb");
|
||||||
|
if (fp)
|
||||||
|
{
|
||||||
|
fwrite(sbuf.data(), 1, sbuf.size(), fp);
|
||||||
|
fclose(fp);
|
||||||
|
|
||||||
|
eml.Saved();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
catch(...)
|
||||||
|
{}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user