blastml是一个快速的机器学习原型库

BlastML的Python项目详细描述


blastml

blastml是一个快速的机器学习原型库

使用blastml,您可以轻松地创建cnn网络的原型(nlp将在将来添加)。 blastml使用keras(tflow)作为下划线库,但它比keras本身要简单得多。

项目

blastml允许您创建一个新项目,该项目旨在帮助 整个机器学习成单文件夹结构。

如何创建新项目:

note:在对我们的数据进行任何训练/推断之前,最好确保 我们先收集资料。blastml使用此数据集格式:

root/
----project/
---------dataset/
------------Class1/
----------------File1
----------------File2
----------------File3
----------------<...>
------------Class2/
----------------File1
----------------File2
----------------File3
----------------<...>
------------<...>

一旦以该格式设置数据集,并指定 在项目配置设置中正确的路径,只需调用 create_project()方法在您的网络实例中。

bt默认,blastml使用标准的80:20训练、推理、验证文件分发。 一旦数据处理完毕,您就可以使用 你选择的CNN。

卷积神经网络

blastml包含各种知名和经过测试的cnn的实现,例如:

  1. 简单(基本CNN)
  2. VGG-16
  3. resnet-18

CNN建设者

blastml包含简单的cnn构建块,允许您集中精力构建和测试自己的cnn 而不会在函数名、参数和其他混合设置上花费太多时间。 要构建自定义网络,只需调用create()函数。

自定义CNN示例:

Net.create()
.add_2d(filters=32, kernel=(3, 3), activation="relu", padding='same', input_shape=(224, 224, 3))
.add_2d(filters=32, kernel=(3, 3), activation='relu')
.add_max_pooling()
.add_dropout()
.add_basic_block()
.add_basic_block()
.add_flatten()
.add_dense(size=512, activation='relu', name="layer_features")
.add_dense(size=cfg.get_num_classes(), activation='softmax', name="layer_classes")
.show_model_summary()
.compile()
.train()
.evaluate()

如何使用blastml

培训和评估

blastml使它非常易于使用,您只需要:

  1. 使用数据创建数据集文件夹:
    1. 创建a/train文件夹
    2. 创建/验证文件夹
    3. 创建/推断文件夹
    4. 创建a/model文件夹(保存模型的位置)
  2. 创建blastml配置(cfg):
    1. 设置训练/验证/推理/模型文件夹。
    2. 输入纪元数。
    3. 输入批数(要处理每个批的图像)。
    4. 输入类数。
    5. 输入线程数(如果启用多线程)。
    6. 选择优化器(例如:adam、sgd、rmsprop等等)。
    7. 选择“损失函数”(例如:稀疏分类交叉熵、二进制交叉熵等)。
    8. 选择型号名称
    9. 类模式:稀疏、分类、二进制(分类类型)
    10. [可选]启用全局保存模式:
      1. 保存模型
      2. 节省重量
      3. 保存历史记录
    11. 选择增强参数
  3. 创建blastml(cfg)实例(将配置附加到blastml)
  4. 把CNN连接到BLASTML。
  5. 编辑CNN。
  6. 训练(获得准确性+模型损失+验证准确性+损失)。
  7. 评估(查看模型如何根据从未见过的数据进行评估)。

训练很简单:

net = BlastML(cfg=cfg)
net.vgg16().compile().train().evaluate()
推断和绘制结果
  1. 将“线程数”设置为1(确保线程不会与数据集重叠)
  2. 将模型从磁盘加载到内存
  3. [可选]将历史记录打印到/model文件夹(为丢失和准确性创建两个图像)
  4. 推断数据集(获取嵌入/分类结果)

目标检测

blastml支持用于对象检测的darknet(yolo v3)。
见:https://github.com/qqwweee/

功能:

  1. 将暗权重转换为路缘石权重(h5文件)
  2. 使用我们自己的数据集训练Darknet(使用Yolo V3预先训练并将权重转换为H5)
    1. 创建模型/黑暗/数据
      1. 放置anchors.txt
      2. put classes.txt
      3. 输入train.txt
    2. 创建model/darknet/data/log/(用于Tensorboard日志结果)

note:培训部分是donE分两个阶段:

  1. 1-50个时期,冻结42/44层
  2. 51-100层,未冷冻。

我上传了一个演示(压缩)darknet/文件夹,请点击这里: here

训练很简单:

net = BlastML(cfg=cfg)
net.darknet().create().compile().train()

训练完成后,将创建2.h5(重量)文件

  1. 1-50阶段.h5<;project name>;.darknet.trained.stage.h5
  2. 51-100训练.h5(即:<;project name>;.darknet.trained.h5

接下来我们可以推断我们的视频/图像。

其他功能
  1. blastml可以将keras模型导出到tensorflow图中

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java分类集转换   java我应该把工作线程放在哪里   桌面上的用户界面图像未显示(Java)   java如何确保输入的输入与数组索引匹配以输出正确的解决方案?   java使用“BasicButtoni”实现相对简单的GUI,这是正确的方法吗?   json调用一个。java类或创建名称与字符串匹配的java类的对象   java我想要我在firebase的键值'pqty'中保存的生产数量的累计值?   java如何在安卓 studio的库模块中使用getResources()函数   java同时关闭服务器和客户端socket连接   从后端提交javascript值时的java星级   java servlet容器和spring容器有什么区别?   从命令行在包中运行java   Selenide中的java捕获shouldHave/shouldBe方法   PostgreSql连接字符串的授权中存在java非法字符   Eclipse中划掉断点的java含义   c#拖放文件上载asp。net还是java   javascript如何使用selenium java处理页面加载时出现的警报框   java为什么这段代码会生成错误:“不可解析的日期”   在OpenGL中生成二维地形的java问题