机器/深度学习Caire、NapkinML、NiftyNet、Crux介绍

以下为你介绍的机器学习/深度学习软件都可用在Linux系统上:Caire(内容感知图像压缩/扩展库)、NapkinML(NumPy 机器学习模型的袖珍实现)、NiftyNet(开源的卷积神经网络和医疗影像分析平台)、Crux(HTML 正文内容提取库)。

1、Caire(内容感知图像压缩/扩展库)

Caire 是基于论文《Seam Carving for Content-Aware Image Resizing》(图像伸缩变换算法)实现的一个内容感知图像 (尺寸) 压缩/扩展库。

特性:

1]、已实现:

支持自定义命令行、支持缩小/放大图像、可垂直/水平地调整图像大小、可调整目录中的所有图像的大小、不需要任何第三方库、使用 sobel 阈值进行微调、使用模糊滤镜来增强边缘检测。

2]、正实现:

人脸检测。

效果:

1]、缩小图像

机器/深度学习Caire、NapkinML、NiftyNet、Crux介绍

2]、放大图像

机器/深度学习Caire、NapkinML、NiftyNet、Crux介绍

安装:

首先,安装Go,设置GOPATH,并确保$GOPATH/bin在PATH上:

$ export GOPATH="$HOME/go"

$ export PATH="$PATH:$GOPATH/bin"

接下来下载项目并构建二进制文件:

$ go get -u -f github.com/esimov/caire/cmd/caire

$ go install

用法:

$ caire -in input.jpg -out output.jpg

要在重新缩放之前检测面部,请使用-face选项,并提供数据文件夹中包含的面部分类二进制文件。 下面的示例代码将以20%的比例重新缩放提供的图像,但是在重新缩放之前将检查人脸:

$ caire -in input.jpg -out output.jpg -face=1 -cc="data/facefinder" -perc=1 -width=20

可以运行以下命令查看详细的帮助:

$ caire --help

下载地址:https://github.com/esimov/caire

2、NapkinML(NumPy 机器学习模型的袖珍实现)

NapkinML 是 NumPy 中机器学习模型的袖珍实现。

安装:

$ git clone https://github.com/eriklindernoren/NapkinML

$ cd NapkinML

$ sudo python setup.py install

实现:

1]、K-Nearest 最近邻

class KNN():

def predict(self, k, Xt, X, y):

y_pred = np.empty(len(Xt))

for i, xt in enumerate(Xt):

idx = np.argsort([np.linalg.norm(x-xt) for x in X])[:k]

y_pred[i] = np.bincount([y[i] for i in idx]).argmax()

return y_pred

$ python napkin_ml/examples/knn.py

机器/深度学习Caire、NapkinML、NiftyNet、Crux介绍

图:使用K-Nearest最近邻的Iris数据集的分类。

2]、线性回归

class LinearRegression():

def fit(self, X, y):

self.w = np.linalg.lstsq(X, y, rcond=None)[0]

def predict(self, X):

return X.dot(self.w)

$ python napkin_ml/examples/linear_regression.py

机器/深度学习Caire、NapkinML、NiftyNet、Crux介绍

图:线性回归。

3]、线性判别分析

class LDA():

def fit(self, X, y):

cov_sum = sum([np.cov(X[y == val], rowvar=False) for val in [0, 1]])

mean_diff = X[y == 0].mean(0) - X[y == 1].mean(0)

self.w = np.linalg.inv(cov_sum).dot(mean_diff)

def predict(self, X):

return 1 * (X.dot(self.w) < 0)

$ python napkin_ml/examples/lda.py

4]、Logistic 回归

class LogisticRegression():

def fit(self, X, y, n_iter=4000, lr=0.01):

self.w = np.random.rand(X.shape[1])

for _ in range(n_iter):

self.w -= lr * (self.predict(X) - y).dot(X)

def predict(self, X):

return sigmoid(X.dot(self.w))

$ python napkin_ml/examples/logistic_regression.py

机器/深度学习Caire、NapkinML、NiftyNet、Crux介绍

图:Logistic回归分类。

5]、多层感知器

class MLP():

def fit(self, X, y, n_epochs=4000, lr=0.01, n_units=10):

self.w = np.random.rand(X.shape[1], n_units)

self.v = np.random.rand(n_units, y.shape[1])

for _ in range(n_epochs):

h_out = sigmoid(X.dot(self.w))

out = softmax(h_out.dot(self.v))

self.v -= lr * h_out.T.dot(out - y)

self.w -= lr * X.T.dot((out - y).dot(self.v.T) * (h_out * (1 - h_out)))

def predict(self, X):

return softmax(sigmoid(X.dot(self.w)).dot(self.v))

$ python napkin_ml/examples/mlp.py

机器/深度学习Caire、NapkinML、NiftyNet、Crux介绍

图:带有一个隐藏层的多层感知器对虹膜数据集的分类。

6]、主成分分析

class PCA():

def transform(self, X, dim):

_, S, V = np.linalg.svd(X - X.mean(0), full_matrices=True)

idx = S.argsort()[::-1]

V = V[idx][:dim]

return X.dot(V.T)

$ python napkin_ml/examples/pca.py

机器/深度学习Caire、NapkinML、NiftyNet、Crux介绍

图:主成分分析降维。

下载地址:https://github.com/eriklindernoren/NapkinML

3、NiftyNet(开源的卷积神经网络和医疗影像分析平台)

机器/深度学习Caire、NapkinML、NiftyNet、Crux介绍

NiftyNet 是一个基于 TensorFlow 的开源卷积神经网络平台,用来研究医疗影像分析和影像导向的治疗。NiftyNet 有着模块化的架构设计,能够共享网络架构和预训练模型。使用该模块架构,你可以:

1]、使用内建工具,从建立好的预训练网络开始。

2]、根据自己的图像数据改造已有的网络。

3]、根据自己的图像分析问题快速构建新的解决方案。

特征:

NiftyNet 现在支持医疗影像分割和生成式对抗网络。该开源平台并非面向临床使用,其他的特征包括:

易于定制的网络组件接口。

共享网络和预训练模块。

支持 2D、2.5D、3D、4D 输入。

支持多 GPU 的高效训练。

多种先进网络的实现(HighRes3DNet、3D U-net、V-net、DeepMedic)。

对医疗影像分割的综合评估指标。

下载地址:https://niftynet.io/

4、Crux(HTML 正文内容提取库)

Crux 是一个 HTML 正文内容提取库,它通过分析 Web 页面,以确定一篇文章的关键内容。该库由多个独立的 API 组成,可随意选择想使用的那个。比如说,如果你在 Android 应用中使用 Crux ,则可以使用 Proguard 或其他压缩工具来去除不需要的部分。

文章提取 API:

可格式化提取内容丰富,不限于纯文本。

支持更多的网站和更好的页面整体解析。

支持更多的元数据格式:OpenGraph,Twitter Cards,Schema.org 等。

占用空间小,JSoup 是唯一需要的依赖项。

更少的 setters/getters,简单易用

能够使用默认的 HttpUrlConnection 之外的 HTTP 库,例如 OkHttp。

代码简洁。

高度支持通过 Gradle 导入 Android Studio 项目。

持续集成单元测试和 golden file 测试。

示例代码:

在后台线程中,发出网络请求并获取想要分析的页面的 rawHTML。

String url = "https://example.com/article.html";

String rawHTML = "<html><body><h1>This is an article</h1></body></html>";

Article article = ArticleExtractor.with(url, rawHTML)

.extractMetadata()

.extractContent()  // If you only need metadata, you can skip `.extractContent()`

.article();

在 UI 线程上:

// Use article.document, article.title, etc.

下载地址:https://github.com/chimbori/crux

注明

以上就是机器/深度学习Caire、NapkinML、NiftyNet、Crux的介绍内容,这些机器学习/深度学习软件都能使用在Linux操作系统中。

栏目相关文章