小编Gly*_*yph的帖子

如何在不重启内核的情况下在 PyTorch 模型训练后清除 GPU 内存

我正在 Jupyter-Lab 笔记本上训练 PyTorch 深度学习模型,在 Tesla K80 GPU 上使用 CUDA 进行训练。在进行训练迭代时,会使用 12 GB 的 GPU 内存。我通过保存模型检查点来完成训练,但想继续使用笔记本进行进一步分析(分析中间结果等)。

但是,这些 12 GBnvtop在完成训练后继续被占用(如从 中看到的)。我想释放这个内存,以便我可以将它用于其他笔记本。

到目前为止,我的解决方案是重新启动此笔记本的内核,但这并不能解决我的问题,因为到目前为止我无法继续使用相同的笔记本及其各自计算的输出。

python jupyter pytorch

18
推荐指数
4
解决办法
2万
查看次数

如何从管道内的 sklearn TFIDF Vectorizer 返回数据帧?

如何在用于交叉验证的 sklearn 管道内让 TFIDF Vectorizer 返回具有相应列名的 Pandas 数据帧?

我有一个 Sklearn 管道,其中一个步骤是一个 TFIDF 向量化器:

class InspectPipeline(BaseEstimator, TransformerMixin):

    def transform(self, x):
        return x

    def fit(self, x, y=None):
        self.df = x
        return self


pipeline = Pipeline(
        [
         ("selector", ItemSelector(key="text_column")),
         ("vectorizer", TfidfVectorizer()),
         ("debug", InspectPipeline()),
         ("classifier", RandomForestClassifier())
        ]
)
Run Code Online (Sandbox Code Playgroud)

我创建了这个类InspectPipeline,以便稍后检查传递给分类器的特征是什么(通过运行pipeline.best_estimator_.named_steps['debug'].df)。但是, TfidfVectorizer 返回一个稀疏矩阵,这是我在执行时得到的pipeline.best_estimator_.named_steps['debug'].df。我想将 TFIDF 向量作为 Pandas 数据帧,而不是获得稀疏矩阵,其中列名是各自的 tfidf 标记。

我知道这tfidf_vectorizer.get_feature_names()有助于了解列名。但是如何在管道中包含这个 + 将稀疏矩阵转换为数据帧?

python tf-idf pandas scikit-learn

4
推荐指数
1
解决办法
2594
查看次数

标签 统计

python ×2

jupyter ×1

pandas ×1

pytorch ×1

scikit-learn ×1

tf-idf ×1