转载

Scikit Flow —— 谷歌开源 TensorFlow 简化接口

为什么使用 TensorFlow?

  • TensorFlow 提供构建各种不同类型机器学习应用的核心

  • 会继续在分布式方向和常规管道机器中进行创新

为什么使用 Scikit Flow?

  • 可以平滑的从单向机器学习 Scikit Learn 过渡到更开放的,可以构建不同类型的 ML 模型。用户可以通过 fit/predict 和切换到 TensorFlow APIs。

  • 提供一系列的参考模型,方便与现有的代码集成。

Linear Classifier

import skflow from sklearn import datasets, metrics iris = datasets.load_iris() classifier = skflow.TensorFlowLinearClassifier(n_classes=3) classifier.fit(iris.data, iris.target) score = metrics.accuracy_score(classifier.predict(iris.data), iris.target) print("Accuracy: %f" % score)

Linear Regressor

import skflow from sklearn import datasets, metrics, preprocessing  boston = datasets.load_boston() X = preprocessing.StandardScaler().fit_transform(boston.data) regressor = skflow.TensorFlowLinearRegressor() regressor.fit(X, boston.target) score = metrics.mean_squared_error(regressor.predict(X), boston.target) print ("MSE: %f" % score)

Deep Neural Network

import skflow from sklearn import datasets, metrics  iris = datasets.load_iris() classifier = skflow.TensorFlowDNNClassifier(hidden_units=[10, 20, 10], n_classes=3) classifier.fit(iris.data, iris.target) score = metrics.accuracy_score(classifier.predict(iris.data), iris.target) print("Accuracy: %f" % score)

Custom model

import skflow from sklearn import datasets, metrics  iris = datasets.load_iris()  def my_model(X, y):     """This is DNN with 10, 20, 10 hidden layers, and dropout of 0.5 probability."""     layers = skflow.ops.dnn(X, [10, 20, 10], keep_prob=0.5)     return skflow.models.logistic_regression(layers, y)  classifier = skflow.TensorFlowEstimator(model_fn=my_model, n_classes=3) classifier.fit(iris.data, iris.target) score = metrics.accuracy_score(classifier.predict(iris.data), iris.target) print("Accuracy: %f" % score)

未来计划

  • 更好的处理类别变量

  • 文本分类

  • 图像 (CNNs)

  • 更多 & 更深

正文到此结束
Loading...