【——机器学习相关——】
LP_Cong
Python, Qt C++ Developer ACMer https://github.com/Linzecong
展开
-
uWSGI +Flask+torch Cannot re-initialize CUDA in forked subprocess
用uWSGI +Flask多进程多线程部署你的深度学习应用时,访问会报这样的错"Cannot re-initialize CUDA in forked subprocess. To use CUDA with "RuntimeError: Cannot re-initialize CUDA in forked subprocess. To use CUDA with multiprocessing, you must use the 'spawn' start method查了半天,终于查原创 2022-02-10 15:50:27 · 2277 阅读 · 4 评论 -
Pytorch 单机加载分布式训练的模型
前言在使用load_state_dict函数来加载模型的时候会出现各种各样的坑。比如会报这种错误RuntimeError: Error(s) in loading state_dict for Net:Missing key(s) in state_dict:网上有人说,在load_state_dict函数中,设置strict为True,即load_state_dict(xxxx,True),但是这种方式会有Bug。在你加载分布式训练的模型的时候,参数会无效……所有又有的人说在load_stat原创 2020-07-13 20:10:46 · 5538 阅读 · 2 评论 -
PyTorch 多输入多输出模型构建
本篇教程基于 PyTorch 1.5版本直接上代码!import torchimport torch.nn as nnfrom torch.autograd import Variableimport torch.distributed as distimport torch.utils.data as data_utilsclass Net(nn.Module): def __init__(self, n_input, n_hidden, n_output):原创 2020-06-15 20:15:24 · 10621 阅读 · 8 评论 -
Tensorflow中使用Keras自定义数据集 分布式训练 极简教程
前言连滚带爬的摸索了一周,网上的教程参差不齐,都是在讲一大堆概念,而没有动手的教程。就算是动手的教程,也大都版本太旧,而且是在理想状态下的试验,不符合每个人的需求。最后经过摸索,终于跑通了!其实说白了,就是希望能有一个教程,从自己的数据集,自己的模型开始教分布式训练。本篇教程基于Tensorflow 2.1 !很多分布式的东西在2.3才支持!!但是目前为止,还没发布!分布式训练介绍分布式训练的文章很多,这里就不重复了。要注意的是,分布式训练有如下几种分类方法单机多卡,多机多卡模型并行,数据并行原创 2020-06-15 20:05:23 · 976 阅读 · 5 评论 -
sample_weight argument is not supported when using dataset as input 解决方案
当使用Keras 调用fit进行训练模型时,有时需要传入sample_weight参数。对于传入fit的为普通的输入输出序列数据时没有问题。但是当传入的数据时Datasent时就会报错。解决方案如下:https://keras.io/api/models/model_training_apis/直接把sample_weight 作为Dataset的第三维!dataset = tf.data.Dataset.from_tensor_slices((input, output, weights))dat原创 2020-06-12 12:34:29 · 1600 阅读 · 0 评论 -
Tensorflow/Keras Linux上多进程加载模型卡死解决办法
因为在Windows上是没有问题的,因此考虑可能是进程复制的方式有问题!多进程文档查看文档后,强制使用spawn方式,问题解决!在代码最开始的地方,加入如下语句import multiprocessingif __name__ == '__main__': multiprocessing.set_start_method('spawn')...原创 2020-05-09 11:29:57 · 2194 阅读 · 6 评论 -
Tensorflow/Keras 多线程同时训练多个模型
研究了很久,终于实现了多线程同时训练多个模型。核心在于要理解TF里的Graph和Session。废话不多说,直接上代码,看完代码就懂了!class MyModel(object): def __init__(self): self.model1Thread = None self.model2Thread = None self...原创 2020-04-20 11:57:58 · 2240 阅读 · 0 评论 -
基于梯度下降法的三层神经网络的C++实现(支持保存和读取)
前言:这也是我根据很久之前看到一本关于游戏AI设计的书里的代码写的,改了一点点,支持保存和读取神经网络。关于什么是神经网络已经有很多博客都有详细的介绍了,这里主要是写写代码的实现。把整个神经网络封装成类,用起来贼超方便!BP-Neural-Network一个三层神经网络模板采用梯度下降算法,和sigmoid单元,因此输出应限定在0~1支持保存和读取训练好原创 2017-08-12 13:26:27 · 555 阅读 · 0 评论