张量流中的model_dir删除

时间:2017-04-26 16:13:29

标签: python tensorflow

作为超参数优化例程的一部分,我使用张量流高级别api tf.contrib.learn.DNNRegressor()。问题是它为每个实例创建了一个自己的新model_dir,在运行程序期间我无法将其删除(即使在模型被覆盖且不再在RAM中之后)。这是一个问题,因为它消耗相当快的大量磁盘存储。问题如何删除model_dir

这是一些伪示例:

import shutil
import tensorflow as tf

X = ... (some large input matrix)
y = ....(some large output vector)
for train, valid in KFoldCV(X, y):
    # res: dataframe of random hyper_parameters
    for idx, row in res.iterrows():
        print(row)

        x_1= tf.contrib.layers.real_valued_column("x_1")
        x_2= tf.contrib.layers.real_valued_column("x_2")

        # DNN specification
        optimizer = tf.train.ProximalGradientDescentOptimizer(
                learning_rate=float(row['learning_rate']),
                l2_regularization_strength=float(row[
                    'l2_regularization_strength']))

        model = tf.contrib.learn.DNNRegressor(
                hidden_units=[int(row['hidden_units'])] * int(
                    row['layers']),
                feature_columns=[x_1, x_2],
                optimizer=optimizer,
                dropout=float(row['dropout']))

       model.fit(input_fn=lambda: input_fn(train[0], train[1]),
                      steps=step)
       res['loss']= model.evaluate(....)
       shutil.rmtree(model.model_dir)

最后一个语句首先引发了以下错误:

 OSError: [WinError 145] The directory is not empty:

如果第二次打电话:

PermissionError: [WinError 5] Access is denied:

编辑: 看来TF事件文件在此过程中允许只读,后台的某些会话阻止这些文件。一旦我终止程序,TF就会自行删除这些文件。

0 个答案:

没有答案