在我的嵌入式Selenium/PhantomJSDriver驱动程序中,似乎没有清理资源.同步运行客户端会导致数百万个打开的文件,并最终抛出"打开的文件太多"类型异常.
这是我lsof在程序运行约1分钟时收集的一些输出
$ lsof | awk '{ print $2; }' | uniq -c | sort -rn | head
1221966 12180
34790 29773
31260 12138
20955 8414
17940 10343
16665 32332
9512 27713
7275 19226
5496 7153
5040 14065
$ lsof -p 12180 | awk '{ print $2; }' | uniq -c | sort -rn | head
2859 12180
1 PID
$ lsof -p 12180 -Fn | sort -rn | uniq -c | sort -rn | head
1124 npipe …Run Code Online (Sandbox Code Playgroud) 1.0中的固定估算器(LinearClassifier,DNNClassifier等)使用Trainable接口定义:
fit(
x=None,
y=None,
input_fn=None,
steps=None,
batch_size=None,
monitors=None,
max_steps=None
)
Run Code Online (Sandbox Code Playgroud)
并将步骤描述为
训练模型的步数.如果没有,永远训练.'steps'以递增方式工作.如果您调用两次(步数= 10),则总共20个步骤进行训练.如果您不想有增量行为,请改为设置max_steps.如果设置,则max_steps必须为None.
我完全不知道这意味着什么.
m = LinearClassifier(
feature_columns=[sparse_column_a, sparse_feature_a_x_sparse_feature_b],
optimizer=tf.train.FtrlOptimizer(
learning_rate=0.1,
l1_regularization_strength=0.001
))
m.fit(input_fn=train_input_fn, steps=???)
Run Code Online (Sandbox Code Playgroud)
使用LinearClassifier,我们如何训练一次train_input_fn?应该是步数是train_input_fn多少?
如果我们想要对每个样品进行train_input_fn3次训练怎么办?
答案1(被删除?):"步骤是调用input_fn进行数据生成的次数"
我认为这个问题的很多逻辑都在Estimator的_train_model 功能中
它执行以下操作:
all_hooks = []
self._graph = ops.Graph()
with self._graph.as_default() as g, g.device(self._device_fn):
random_seed.set_random_seed(self._config.tf_random_seed)
global_step = contrib_framework.create_global_step(g)
features, labels = input_fn()
.......
.......
with monitored_session.MonitoredTrainingSession(
...
hooks=all_hooks + model_fn_ops.training_hooks,
chief_only_hooks=chief_hooks + model_fn_ops.training_chief_hooks,
...
) as mon_sess:
loss = None
while not mon_sess.should_stop(): …Run Code Online (Sandbox Code Playgroud)