2019-09-11 22:05:45 weixin_44684139 阅读数 8
  • 机器学习& 深度学习 基础视频教程(人工智能AI方向)

    机器学习,深度学习基础教程入门视频培训教程,该课程主要包含机器学习基础,包括常用的数据集、训练集、样本、特征、矩阵、Numpy数组、Pandas的使用等;机器学习数学基础,包括线形代数基础、概率基础、信息论基础、最优化基础等;机器学习算法,包括简单线形回归和逻辑回归、决策树、KNN、SVM、层次聚类、密度聚类等。这是一门非常好的AI入门教程。

    660 人正在学习 去看看 Array老师

先来看深度学习的代码:

# 由于发现使用KNN算法对于facebook地区的分类实在是缓慢
# 因此尝试使用深度学习的方法
import tensorflow as tf
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler


data = pd.read_csv("./train.csv")
# print(data)
# 2. 基本的数据处理
# 1) 缩小数据范围
data = data.query("x<2.5 & x>2 & y<1.5 & y>1.0")

# time是时间戳,因此我们要把时间转换为我们能够理解的年月日时分秒
time_value = pd.to_datetime(data["time"], unit='s')  #转换为正常的时间了
# print(type(time_value))     #<class 'pandas.core.series.Series'>
date = pd.DatetimeIndex(time_value)   #转换为年月日时分秒
# 因为对我们有用的也就是日期、星期几、小时
data['day'] = date.day
data["weekday"] = date.weekday
data["hour"] = date.hour

# 去掉签到次数比较少的地点,分组聚合的方法
place_count = data.groupby("place_id").count()["row_id"]   # 相当于获得了一个地点id签到了多少次,返回一个series
# 过滤掉小于等于三次的:使用布尔索引,之前讲过,用自身过滤自身------place_count[place_count > 3]
# 则data.index返回一个index类型的行索引列表,data.index.values返回的是行索引组成的ndarray类型。
data_final = data[data["place_id"].isin(place_count[place_count > 3].index.values)]

# 筛选特征值和目标值
x = data_final[['x', 'y', 'accuracy', 'day', 'weekday', 'hour']]
y = data_final['place_id']


y = pd.get_dummies(y)
long = len(y.columns.values)
# print("y:\n", len)    # 事实证明此案例就950个地址
# 划分数据集
x_train, x_test, y_train, y_test = train_test_split(x, y)

# # 特征工程: 标准化,注意训练集和测试集要做同样的手脚
# transfer = StandardScaler()
# x_train = transfer.fit_transform(x_train)
# # 注意测试集不要用fit_transform,因为测试集需要用训练集的平均值和标准差
# x_test = transfer.transform(x_test)


x_train = x_train.values.astype(np.float32)
x_train = x_train.reshape(-1, 6)
y_train = y_train.values.astype(np.float32)
y_train = y_train.reshape(-1, long)
x_test = x_test.values.astype(np.float32)
x_test = x_test.reshape(-1, 6)
y_test = y_test.values.astype(np.float32)
y_test = y_test.reshape(-1, long)
# print("y_train", y_train)


tfx = tf.placeholder(tf.float32, [None, 6], "inputx")
tfy = tf.placeholder(tf.float32, [None, long], "inputy")

# 输入神经网络进行模型训练,感觉网络结构不太行

l1 = tf.layers.dense(tfx, 128, tf.nn.relu, name="l1")
l2 = tf.layers.dense(l1, 128, tf.nn.relu, name="l2")
l3 = tf.layers.dense(l2, 128, tf.nn.relu, name="l3")
out = tf.layers.dense(l3, long, name="l4")
prediction = tf.nn.softmax(out, name="pred")


# print("prediction:", prediction)
print("out的尺寸", out.shape)
loss = tf.losses.softmax_cross_entropy(onehot_labels=tfy, logits=out)
accuracy = tf.metrics.accuracy(          # return (acc, update_op), and create 2 local variables
    labels=tf.argmax(tfy, axis=1), predictions=tf.argmax(out, axis=1))[1]
opt = tf.train.GradientDescentOptimizer(learning_rate=0.0001)
train_op = opt.minimize(loss)

sess = tf.Session()
sess.run(tf.group(tf.global_variables_initializer(), tf.local_variables_initializer()))

accuracies, steps = [], []
for t in range(400000):
    # training
    batch_index = np.random.randint(len(x_train), size=1)    # 生成32个随机数,返回array数组
    # print("batch_index:\n", batch_index)
    sess.run(train_op, {tfx: x_train[batch_index], tfy: y_train[batch_index]})  # 注意feeddict可以不用了
    # if t % 400 == 0:
    #     print("x_train[batch_index]:\n", x_train[batch_index])
    #     print("y_train[batch_index]:\n", y_train[batch_index])
    #     print("out:\n", sess.run(out, {tfx: x_train[batch_index], tfy: y_train[batch_index]}))

    if t % 50 == 0:
        # testing
        acc_, pred_, loss_ = sess.run([accuracy, prediction, loss], {tfx: x_test, tfy: y_test})
        # print("prediction:", pred_)
        accuracies.append(acc_)
        steps.append(t)
        print("Step: %i" % t, "| Accurate: %.2f" % (acc_ * 100), "| Loss: %.2f" % loss_,)
        

效果特别不好,刚开始两万步准确率才能到1%
加入标准化以后准确率直接是0%
因此得出一个结论就是,分类类别太多,深度学习不太好用(此案例分类类别共950个)
可能是水平还不到位
因此决定用K近邻算法,但是准确率又不太高:

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import GridSearchCV


# 1.获取数据
data = pd.read_csv("./train.csv")

# 2. 基本的数据处理

# 1) 缩小数据范围
data = data.query("x<2.5 & x>2 & y<1.5 & y>1.0")

# 2) 处理时间特征
# data["time"]
time_value = pd.to_datetime(data["time"], unit='s')  #转换为正常的时间了
date = pd.DatetimeIndex(time_value)   #转换为年月日时分秒,以符合我们的习惯

data['day'] = date.day
data["weekday"] = date.weekday
data["hour"] = date.hour
# 3) 去掉签到次数比较少的地点,分组聚合的方法
place_count = data.groupby("place_id").count()["row_id"]   #data.groupby("place_id").count()相当于统计place_id出现的次数

# 过滤掉小于等于三次的:使用布尔索引,之前讲过,用自身过滤自身
# place_count[place_count > 3].head()
# 只取data中只含有过滤掉的place_id的行
data_final = data[data["place_id"].isin(place_count[place_count > 3].index.values)]



#筛选特征值和目标值
x = data_final[['x', 'y', 'accuracy', 'day', 'weekday', 'hour']]
y = data_final['place_id']

#划分数据集
x_train, x_test, y_train, y_test = train_test_split(x, y)




#3.特征工程: 标准化,注意训练集和测试集要做同样的手脚
transfer = StandardScaler()
x_train = transfer.fit_transform(x_train)
#注意测试集不要用fit_transform,因为测试集需要用训练集的平均值和标准差
x_test = transfer.transform(x_test)

#4.KNN算法预估器
estimator = KNeighborsClassifier()

# 加入网格搜索与交叉验证,上面括号里的n_neighbors=3没必要了
# 参数准备
param_dict = {"n_neighbors": [3,5,7,9]}
estimator = GridSearchCV(estimator, param_grid=param_dict, cv=3)  #3折
estimator.fit(x_train, y_train)

#5.模型评估
#方法一:直接比对真实值和预测值
y_predict = estimator.predict(x_test)
print("y_predict:\n", y_predict)
print("比对真实值和预测值:\n", y_predict == y_test)

#方法二:计算准确率
accuracy = estimator.score(x_test, y_test)
print("准确率为:\n", accuracy)

# 因为这个例子中加入了网格搜索,因此可以调用方法查看最佳参数
# 包括最佳参数、最佳结果、最佳估计器、每一步的交叉验证结果

print("最佳参数k:\n", estimator.best_params_)
print("最佳结果:\n", estimator.best_score_)   #也就是打十折的最佳准确率,是验证集而不是测试集的结果
print("最佳估计器:\n", estimator.best_estimator_)
print("交叉验证结果:\n", estimator.cv_results_)    #看不出什么门道

如果仅仅用缩小范围的这些样本,准确率k=3的时候最好,为30%-40%之间,跟猜差不多
如果跑全部样本,只采用k=3的话,跑了十二分钟都没跑完,就不看了
因为是kaggle的案例
平时做一些小的样本分析还是可以的

2016-12-04 22:34:07 litianqwe 阅读数 819
  • 机器学习& 深度学习 基础视频教程(人工智能AI方向)

    机器学习,深度学习基础教程入门视频培训教程,该课程主要包含机器学习基础,包括常用的数据集、训练集、样本、特征、矩阵、Numpy数组、Pandas的使用等;机器学习数学基础,包括线形代数基础、概率基础、信息论基础、最优化基础等;机器学习算法,包括简单线形回归和逻辑回归、决策树、KNN、SVM、层次聚类、密度聚类等。这是一门非常好的AI入门教程。

    660 人正在学习 去看看 Array老师

在几经摸索下,终于用python开始写下了自己的第一个机器学习算法KNN

这是一个分类算法,可以通过已有标签,判断一个输入的事物是不是已知的标签,其实这个算法算是入门级的,用来练手刚刚好

写完以后觉得,机器学习比较麻烦的是处理数据,输入数据,困难的是对于数据的建模,代码其实写不来多少

话不多说附上我的核心源码

test.py

def classify0(inX,dataSet,lables,k):
    dataSetSize = dataSet.shape[0]

    diffMat = tile(inX,(dataSetSize,1)) - dataSet
    sqDiffMat = diffMat **2
    sqDistances = sqDiffMat.sum(axis=1)
    distances = sqDistances ** 0.5
    sortedDisIndicies = distances.argsort()
    classCount = {}
    for i in range(k):
        voteIlabel = lables[sortedDisIndicies[i]]
        classCount[voteIlabel] = classCount.get(voteIlabel,0)+1

        sortedClassCount = sorted(classCount.iteritems(),key = operator.itemgetter(1),reverse=True)
        return sortedClassCount[0][0]

这是knn核心分类代码,所有一切的基础都是在此基础上得到的


还有一个我抄写大神写的 利用机器学习识别0-9图片识别的源码

from numpy import *
from os import listdir
import test

def hand_writing_class_test():
    hwlabels = []

    training_file_list = listdir('digits/trainingDigits')
    m = len(training_file_list)
    training_mat = zeros((m,1024))
    for i in range(m):
        file_name_str = training_file_list[i]
        file_str = file_name_str.split('.')[0]
        class_num_str = int(file_str.split('_')[0])
        hwlabels.append(class_num_str)
        training_mat[i,:] = img_vector('digits/trainingDigits/%s'%file_name_str)
        test_file_list = listdir('digits/testDigits')
        error_count = 0.0
        m_test = len(test_file_list)
        for i in range(m_test):
            file_name_str = test_file_list[i]
            file_str = file_name_str.split('.')[0]
            class_num_str = int(file_str.split('_')[0])
            vector_under_test = img_vector('digits/testDigits/%s'%file_name_str)
            class_ifier_results = test.classify0(vector_under_test,training_mat,hwlabels,3)
            print ("the class_ifier_results came back with:%d,the real answer is %d"%(class_ifier_results,class_num_str))
            if(class_ifier_results!=class_num_str):error_count +=1.0
        print "\n the total number of errors is %d" %error_count
        print "\n the total error rate is %f" %(error_count/float(m_test))

暂时先写着么多,我以后一点一点的学习,一点一点的写


2016-06-01 22:34:46 flying_all 阅读数 1411
  • 机器学习& 深度学习 基础视频教程(人工智能AI方向)

    机器学习,深度学习基础教程入门视频培训教程,该课程主要包含机器学习基础,包括常用的数据集、训练集、样本、特征、矩阵、Numpy数组、Pandas的使用等;机器学习数学基础,包括线形代数基础、概率基础、信息论基础、最优化基础等;机器学习算法,包括简单线形回归和逻辑回归、决策树、KNN、SVM、层次聚类、密度聚类等。这是一门非常好的AI入门教程。

    660 人正在学习 去看看 Array老师

图像分类的难点

  • 视角不同
  • 尺寸不同
  • 变形
  • 光影
  • 背景干扰
  • 同类内的差异
    例如躺椅、座椅、

图像识别的核心

数据驱动学习。就像人看过很多猫以后,就知道什么是猫。把很多同一类的图片“喂给”计算机,让计算机自己去学习该类图片的特征。之后做出评估。

KNN解决图片分类

利用图片与图片之间的距离。根据距离最近的N张图片的标签决定预测图片的分类。图片之间的距离可以用曼哈顿距离、欧式距离或者余弦距离表示。
KNN的优点是思路简单,但是预测的时候需要与所有训练集图片比较,时间长。而且效果也不好。基本上是颜色一致的图片是最近邻的。
2018-01-18 11:08:06 signal926 阅读数 5903
  • 机器学习& 深度学习 基础视频教程(人工智能AI方向)

    机器学习,深度学习基础教程入门视频培训教程,该课程主要包含机器学习基础,包括常用的数据集、训练集、样本、特征、矩阵、Numpy数组、Pandas的使用等;机器学习数学基础,包括线形代数基础、概率基础、信息论基础、最优化基础等;机器学习算法,包括简单线形回归和逻辑回归、决策树、KNN、SVM、层次聚类、密度聚类等。这是一门非常好的AI入门教程。

    660 人正在学习 去看看 Array老师

0. 运动检测

  • 通俗来说,运动检测是指从视频中识别发生变化或移动的区域(感兴趣的区域),是计算机视觉和视频处理中常用的预处理步骤

与静态图像的通用目标检测不同,运动检测通常会利用视频连续帧间的上下文来对感兴趣区域进行定位。常应用于人员计数,动作识别,异常检测,跌倒检测,停车检测,目标定位和跟踪等任务中。尽管每种任务的后处理方法可能不同,但是通常都从识别感兴趣区域开始。

1. 评测指标

详细参考:https://en.wikipedia.org/wiki/Precision_and_recall

  • 类别平均排名(Average ranking accross categories) : (rank:Baseline + rank:Dynamic Background + rank:Camera Jitter + rank:Intermittent Object Motion + rank:Shadow + rank:Thermal) / 6
  • 平均排名(Average ranking) : (rank:Recall + rank:Spec + rank:FPR + rank:FNR + rank:PWC + rank:FMeasure + rank:Precision) / 7
  • 精确度 Precision : TP / (TP + FP) 反映了被分类器判定的正例中真正的正例样本的比重
  • 召回率 Re (Recall) : TP / (TP + FN) 反映了被正确判定的正例占总的正例的比重
  • TP : True Positive
  • FP : False Positive
  • FN : False Negative
  • TN : True Negative
  • Sp (Specficity) : TN / (TN + FP)
  • FPR (False Positive Rate) : FP / (FP + TN)
  • FNR (False Negative Rate) : FN / (TP + FN)
  • PWC (Percentage of Wrong Classifications) : 100 * (FN + FP) / (TP + FN + FP + TN)
  • F-Measure : (2 * Precision * Recall) / (Precision + Recall)
  • FPR-S : Average False positive rate in hard shadow areas

2. 经典算法

常见的运动检测算法,有帧差法、光流法、GMM(高斯混合模型)、Codebook(码本)、 SOBS(自组织背景检测)、Vibe(Visual background subtractor)算法等。

经典算法的ROC曲线如下:(上图为线性尺度,下图为对数尺度)
线性尺度

对数尺度

  • 可以看出,除了常用的GMM,SOBS、ViBe、KNN算法效果较好。

(1) SOBS

SOBS( 自组织背景检测 Self-organization background subtraction)

L. Maddalena, A. Petrosino, A Self-Organizing Approach to Background Subtraction for Visual Surveillance Applications, IEEE Transactions on Image Processing, Vol. 17, no.7, 2008, p1168-1177

SC-SOBS算法

L. Maddalena, A. Petrosino, “The SOBS algorithm: what are the limits?”, in proc of IEEE Workshop on Change Detection, CVPR 2012

对于自组织背景建模算法即SOBS算法,该算法对光照有一定的鲁棒性,但MAP的模型比输入图片大,计算量比较大,但是可以通过并行处理来解决算法的速度问题,可以进行尝试。

(2) ViBe

ViBe算法

O. Barnich and M. Van Droogenbroeck. ViBe: A universal background subtraction algorithm for video sequences. In IEEE Transactions on Image Processing, 20(6):1709-1724, June 2011

ViBe+算法

M. Van Droogenbroeck, O. Paquot, “Background Subtraction: Experiments and Improvements for ViBe”, in proc of IEEE Workshop on Change Detection, CVPR 2012

[Code] https://github.com/BelBES/VIBE
参考:http://blog.csdn.net/stellar0/article/details/8777283

(3) KNN

Efficient adaptive density estimation per image pixel for the task of background subtraction” Z. Zivkovic , F. van der Heijden Pattern Recognition Letters, vol. 27, no. 7, pages 773-780, 2006
http://www.zoranz.net/Publications/zivkovicPRL2006.pdf

opencv中已有KNN背景减除算法的实现:
[Code] https://github.com/opencv/opencv/blob/master/modules/video/src/bgfg_KNN.cpp

迄今为止已经有许多运动检测算法,这些算法在一些类型的视频中表现良好,但是大多数对于突然的照明变化,环境条件变化(夜间,雨,雪,空气湍流),背景/相机运动,阴影,和迷彩效果(物体和背景的光度相似性)仍面临挑战。目前没有一种算法似乎能够同时解决真实世界(非合成)视频的所有关键挑战。
其他运动检测算法参考:http://www.cnblogs.com/ronny/archive/2012/04/12/2444053.html

3. 深度学习方法

(1) FgSegNet

Long Ang, L., & Hacer, Y. K. (2018). Foreground Segmentation Using a Triplet Convolutional Neural Network for Multiscale Feature Encoding. arXiv preprint arXiv:1801.02225.

处理速度:
18fps for 320x240 with NVIDIA GTX 970 GPU, Keras framework with Tensorflow backend

[Code] https://github.com/lim-anggun/FgSegNet

(2) Cascade CNN

Wang Y., Luo Z. M., and Jodoin P. M. “Interactive Deep Learning Method for Segmenting Moving Objects”, Pattern Recognition Letters, 2016.
Processing time threshold: 0.6, training frames: 200, selecting strategy: manual, model: cascade

[Code] https://github.com/zhimingluo/MovingObjectSegmentation

4. CDW-2014数据集

下载地址:dataset2014.zip | 7z

数据集包含11个视频类别(Baseline、Dynamic Background、Camera Jitter、Intermittent Object、 Motion、Shadow、Thermal、Bad Weather、Low Framerate、Night Videos、PTZ、Turbulence),每个类别有4到6个视频序列,每个单独的视频文件(.zip或.7z)都可以单独下载。

这里写图片描述
其中,Groundtruth图片包含5个标签:

  • 0 : Static
  • 50 : Hard shadow
  • 85 : Outside region of interest
  • 170 : Unknown motion (usually around moving objects, due to semi-transparency and motion blur)
  • 255 : Motion

详见:http://www.changedetection.net/


Reference

[1] Y. Wang, P.-M. Jodoin, F. Porikli, J. Konrad, Y. Benezeth, and P. Ishwar, CDnet 2014: An Expanded Change Detection Benchmark Dataset, in Proc. IEEE Workshop on Change Detection (CDW-2014) at CVPR-2014, pp. 387-394. 2014
[2] Evaluation of background subtraction techniques for video surveillance

2018-02-23 14:01:37 github_37472200 阅读数 331
  • 机器学习& 深度学习 基础视频教程(人工智能AI方向)

    机器学习,深度学习基础教程入门视频培训教程,该课程主要包含机器学习基础,包括常用的数据集、训练集、样本、特征、矩阵、Numpy数组、Pandas的使用等;机器学习数学基础,包括线形代数基础、概率基础、信息论基础、最优化基础等;机器学习算法,包括简单线形回归和逻辑回归、决策树、KNN、SVM、层次聚类、密度聚类等。这是一门非常好的AI入门教程。

    660 人正在学习 去看看 Array老师

深度学习日记

第一章:

有监督学习

 是指人们在获得训练的向量数据后在没有标签的情况下尝试找出其内部蕴含关系的一种挖掘工作,这个过程中使用者除了可能要设置一些必要的超参数(hyper-parameter)以外,不用对这些样本做任何的标记甚至是过程干预;

无监督学习

  每一个样本都有着明确的标签,最后我们只是要总结出这些训练样本向量与标签的映射关系

聚类(clustering)
  • 一种典型的“无监督学习”,是把物理对象或抽象对象的集合分组为由彼此类似的对象组成的多个类的分析过程。
    人类天生具备这种归纳和总结的能力,能够把认知的相似事物放到一起作为一类事物,它们之间可以有彼此的不同,但是有一个我们心里的“限度”,只要在这个限度内,特征稍有区别并无大碍,它们仍然还是这一类事物。
  • 比较常用的聚类算法有K-Means、DBSCAN等几种,基本思路都是利用每个向量之间的“距离”——空间中的欧氏距离或者曼哈顿距离,从远近判断是否从属于同一类别

  在用机器做聚类学习的时候,我们每种算法都对应有相应的计算原则,可以把输入的各种看上去彼此“相近”的向量分在一个群组中。然后下一步,人们通常更有针对性地去研究每一组聚在一起的对象所拥有的共性以及那些远离各个群组的孤立点——这种孤立点研究在刑侦、特殊疾病排查等方面都有应用。在这个过程中,从获得到具体的样本向量,到得出聚类结果,人们是不用进行干预的,这就是“非监督”一词的由来。

回归


  • 线性回归

  • 所谓线性回归,就是在观察和归纳样本的过程中认为向量和最终的函数值呈现线性的关系。而后设计这种关系为:y=f(x)=wx+b
  • 非线性回归
  • 非线性回归类中,在机器学习领域应用最多的当属逻辑回归。它和线性回归都叫回归,但是逻辑回归看上去更像分类。我们先在回归这一节提一下这种回归的工作方式。与前面我们说的线性回归不同,在这种模型中观察者假设的前提是y只有两种值:一种是1,一种是0,或者说“是”或“否”的这种判断。

分类


  • 分类是机器学习中使用的最多的一大类算法,我们通常也喜欢把分类算法叫做“分类器”。这个说法其实也非常形象,在我们看来,这就是一个黑盒子,有个入口,有个出口。我们在入口丢进去一个“样本”,在出口期望得到一个分类的“标签”。

  • 第一,输入样本和分类标签。
  • 第二,建立映射假说的某个y=f(x)的模型。
  • 第三,求解出全局的损失函数Loss和待定系数w的映射关系,Loss=g(w)。
  • 第四,通过迭代优化逐步降低Loss,最终找到一个w能使召回率和精确率满足当前场景需要。注意,这里尤其指在验证数据集上的表现。

总结


  • 聚类:把多个多种不同对象的特征都抽取出来,获取一个限度(标准),把近似值的对象放进同一个群组,从获得到具体的样本向量,到得出聚类结果
  • 回归:个人感觉是聚类的延伸应用,线性回归是对聚类结果的校正,而非线性回归是对聚类结果在实际中的应用。
  • 分类:


  • KNN(最近邻算法)

  • 上面都是在网上根据关键字找的资料。
  • 第一章概念较强,但没有什么太难懂东西,如果有什么看不懂的,反复看上几遍,然后再想想
  • 不要给我赞,不要给我赞,不要给我赞,原因我就不说了。
  • 第二章:

    激励函数


    • Sigmoid函数
    • Tanh函数
    • ReLU函数
    • Linear函数
    • 神经网络
    • 深度神经网络

    • 反正我是看着目录看完本章节的

    第三章:


    • Python3.6可直接下载。exe文件直接安装
    • 安装python时记得选中PIP
    • 然后使用pip安装TensorFlow:pip install TensorFlow
    • Python编译器建议使用PyCharm 作为Android Studio的兄弟编译器有很多共同点,相信你很快就会上手

    以上是安装,还有作者推荐的:Anaconda 它集成了python的环境和通用包,就像以前es集成环境,但是该折腾还是得折腾

  • 多环境与集群支持
    + 首先,TensorFlow支持在PC的CPU环境、GPU环境甚至是安卓环境中运行。它不仅可以支持在单个计算单元(一颗CPU的多核心或一颗GPU的多核心)上进行运算,也支持一台机器上多个CPU或多个GPU上并行计算。可以在网络上的所有计算机都参与计算,但是如果计算量小的那就得不偿失了,因为数据传输也是需要时间的。
  • TensorBoard——看得见的训练
    + TensorFlow有一个比较友好的组件,它可以让工作人员在训练网络的过程中通过仪表盘看到网络目前的表现情况。
    + #启动: tensorboard –logdir=path/to/logs
  • TensorFlow Serving——模型
    + TensorFlow Serving系统非常适用于大规模运行能够基于真实情况的数据并会发生动态改变的多重模型。它能够实现:
    • 模型生命周期管理。
    • 使用多重算法进行试验。
    • GPU资源有效使用。
    • 如何选择好的框架
    • 从三个方面:性能、使用人数、支持的语言
    没有更多推荐了,返回首页