<p>我试图删除HDF5文件中的数据集。具体地说,我试图从我之前培训和保存的keras深度学习模型中删除优化器层。在</p>
<p>代码如下</p>
<pre><code>f = h5py.File('model.h5', 'r+')
del f['optimizer_weights']
f.close()
</code></pre>
<p>错误是</p>
^{pr2}$
<p>详细的错误消息</p>
<pre><code> del f['optimizer_weights']
File "h5py\_objects.pyx", line 54, in h5py._objects.with_phil.wrapper (D:\Build\h5py\h5py-2.7.0\h5py\_objects.c:2853)
File "h5py\_objects.pyx", line 55, in h5py._objects.with_phil.wrapper (D:\Build\h5py\h5py-2.7.0\h5py\_objects.c:2811)
File "C:\Users\Anaconda3\envs\tensorflow-keras-gpu\lib\site-packages\h5py\_hl\group.py", line 297, in __delitem__
self.id.unlink(self._e(name))
File "h5py\_objects.pyx", line 54, in h5py._objects.with_phil.wrapper (D:\Build\h5py\h5py-2.7.0\h5py\_objects.c:2853)
File "h5py\_objects.pyx", line 55, in h5py._objects.with_phil.wrapper (D:\Build\h5py\h5py-2.7.0\h5py\_objects.c:2811)
File "h5py\h5g.pyx", line 294, in h5py.h5g.GroupID.unlink (D:\Build\h5py\h5py-2.7.0\h5py\h5g.c:4179)
KeyError: "Couldn't delete link (Can't delete self)"
</code></pre>
<p>关于如何解决这个问题有什么建议吗??在</p>
<p>谢谢!在</p>
<p>你确定数据集真的在那里?我在试图删除不存在的数据集时遇到了这个错误。在</p>
<pre><code>def printname(name):
print(name)
f.visit(printname)
# list of datasets, should contain 'dataset_name'
</code></pre>
<p>不幸的是,在代码中,每次删除之前都需要检查是否存在。要“覆盖”可能已经存在的数据集:</p>
^{pr2}$