gpt4 book ai didi

python - 您可以使用 Caffe 在同一数据上训练多个网络吗?

转载 作者:太空宇宙 更新时间:2023-11-03 11:25:13 25 4
gpt4 key购买 nike

我正在编写一个校准管道来学习神经网络的超参数,以检测 DNA 序列的属性*。因此,这需要在具有不同超参数的同一数据集上训练大量模型。

我正在尝试优化它以在 GPU 上运行。与图像数据集相比,DNA 序列数据集非常小(通常 4 个“ channel ”中有 10 或 100 个碱基对来表示 4 个 DNA 碱基 A、C、G 和 T,而 3 个 RGB channel 中有 10,000 个像素) ,因此无法充分利用 GPU 上的并行化,除非同时训练多个模型。

有没有办法在 Python 的 Caffe 中做到这一点?

(我之前 asked this question 引用了在 nolearn、lasagne 或 Theano 中执行此操作,但我不确定是否可行,所以转而使用 Caffe。)

* 它基于 DeepBind model用于检测转录因子与 DNA 结合的位置,如果您有兴趣的话。

最佳答案

是的。为此可以使用以下选项。

选项 1:并行训练过程。为每个超参数配置编写一个网络定义,并为每个运行一个训练过程。

优点:无需自己管理资源。缺点:如果所有网络都使用相同的数据,您将多次支付从 CPU 到 GPU RAM 的数据复制成本。这可能会变得非常冗余。我注意到这种速度变慢了很多,以至于我还不如按顺序训练不同的网络。

选项 2:将不同的网络定义合并到一个 prototxt 中,并使用单个求解器进行训练。层和 blob 名称必须是唯一的,子网络才能独立。

This ipython notebook提供了一个演示。为您将网络合并到 prototxt 中。 notebook 还展示了通过使每个子网络的层和 blob 名称保持唯一,组合训练过程将达到与单独训练每个子网络相同的结果。

关于python - 您可以使用 Caffe 在同一数据上训练多个网络吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35436970/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com