精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

看懂這篇指南,包你掌握神經(jīng)網(wǎng)絡(luò)的“黑匣子”

人工智能 深度學(xué)習(xí) 開發(fā)工具
本文將介紹卷積神經(jīng)網(wǎng)絡(luò)可視化的不同技術(shù)。此外,我們還將致力于從這些可視化中提取不同看法,以完善卷積神經(jīng)網(wǎng)絡(luò)模型。

“人類的神經(jīng)網(wǎng)絡(luò)是如何運(yùn)行的?”這個(gè)問題讓很多數(shù)據(jù)科學(xué)家感到困惑。解釋某個(gè)簡單神經(jīng)網(wǎng)絡(luò)的工作機(jī)制非常容易,但是當(dāng)某個(gè)計(jì)算機(jī)視覺項(xiàng)目中的層數(shù)增加1000倍時(shí),該怎么辦呢?

終端用戶想要了解模型是如何得到最終結(jié)果時(shí),僅用紙和筆來解釋深度神經(jīng)網(wǎng)絡(luò)的工作機(jī)制是行不通的。那么,如何讓神經(jīng)網(wǎng)絡(luò)不再像“黑匣子”一樣神秘?

可視化可以做到這一點(diǎn)——將神經(jīng)網(wǎng)絡(luò)的不同特征可視化能使一切變得清晰明了,也能更直觀地呈現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)(CNN) 成千上萬的圖像訓(xùn)練結(jié)果。

[[267042]]

本文將介紹卷積神經(jīng)網(wǎng)絡(luò)可視化的不同技術(shù)。此外,我們還將致力于從這些可視化中提取不同看法,以完善卷積神經(jīng)網(wǎng)絡(luò)模型。

注意:本文對神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)知識點(diǎn)將不再進(jìn)行討論。以下三篇文章可幫助你重溫或了解相關(guān)知識點(diǎn)。

  • A Comprehensive Tutorial to learn Convolutional Neural Networks from Scratch (從零開始學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)的全面教程):https://www.analyticsvidhya.com/blog/2018/12/guide-convolutional-neural-network-cnn/?utm_source=blog&utm_medium=understanding-visualizing-neural-networks
  • An Introductory Guide to Deep Learning and Neural Networks (深度學(xué)習(xí)與神經(jīng)網(wǎng)絡(luò)入門指南):https://www.analyticsvidhya.com/blog/2018/10/introduction-neural-networks-deep-learning/?utm_source=blog&utm_medium=understanding-visualizing-neural-networks
  • Fundamentals of Deep Learning – Starting with Artificial Neural Network (深度學(xué)習(xí)的基礎(chǔ)——從人工神經(jīng)網(wǎng)絡(luò)開始):https://www.analyticsvidhya.com/blog/2016/03/introduction-deep-learning-fundamentals-neural-networks/?utm_source=blog&utm_medium=understanding-visualizing-neural-networks

為什么要用可視化解碼神經(jīng)網(wǎng)絡(luò)?

這是一個(gè)值得研究的問題。有很多方法可以幫助理解神經(jīng)網(wǎng)絡(luò)的工作原理,為何要轉(zhuǎn)向可視化這條非同尋常的路呢?

通過一個(gè)例子來回答這個(gè)問題。例如,某個(gè)項(xiàng)目需要對雪豹和阿拉伯豹等動(dòng)物圖像進(jìn)行分類。從直覺上講,可以通過圖像的背景進(jìn)行區(qū)分。

這兩種動(dòng)物的棲息地截然不同。大多數(shù)雪豹的圖片都以雪為背景,而大多數(shù)阿拉伯豹的圖片背景多為廣闊的沙漠。

[[267043]]

那么問題來了:一旦模型開始對雪和沙漠的圖像進(jìn)行分類,如何確保模型已經(jīng)正確學(xué)習(xí)了如何區(qū)分這兩種豹的特征呢?答案就是可視化。

可視化幫助我們理解是什么特征可以引導(dǎo)模型以對圖像進(jìn)行分類。

有很多種方法可以將模型可視化,本文將介紹其中的幾種方法。

建立模型體系結(jié)構(gòu)

學(xué)習(xí)的最好方式是對概念進(jìn)行編碼。因此,本文將直接深入研究Python代碼,提供實(shí)用的編碼指南。

本文使用VGG16體系結(jié)構(gòu),并在ImageNet數(shù)據(jù)集上使用預(yù)先訓(xùn)練的權(quán)重。第一步,將模型導(dǎo)入程序并了解其體系結(jié)構(gòu)。

之后使用Keras中的‘model.summary()’函數(shù)將模型體系結(jié)構(gòu)可視化。這是在進(jìn)入模型構(gòu)建環(huán)節(jié)之前十分關(guān)鍵的一步。因?yàn)樾枰_保輸入和輸出的形狀與問題陳述相匹配,因此需要將模型概述可視化。

  1. #importing required modules 
  2. from keras.applications import VGG16 
  3. #loading the saved model 
  4. #we are using the complete architecture thus include_top=True 
  5. model = VGG16(weights='imagenet',include_top=True
  6. #show the summary of model 
  7. model.summary() 

下表即為由上述代碼生成的模型概述。

神經(jīng)網(wǎng)絡(luò)

該表記錄了模型的詳細(xì)架構(gòu)以及每一層可訓(xùn)練參數(shù)的數(shù)量。希望ni可以花一些時(shí)間閱讀以上內(nèi)容,并了解我們目前達(dá)到的水平。

只訓(xùn)練模型層的一個(gè)子集(特征提取)時(shí),這一點(diǎn)尤為重要。通過生成模型概述,可以確保不可訓(xùn)練參數(shù)的數(shù)量與不想訓(xùn)練的層數(shù)相匹配。

此外,開發(fā)人員可以使用可訓(xùn)練參數(shù)總量來檢查GPU是否能夠分配足夠內(nèi)存來訓(xùn)練模型。對于使用電腦工作的大多數(shù)人來說,這項(xiàng)任務(wù)很常見,但也是一種挑戰(zhàn)。

認(rèn)識卷積神經(jīng)網(wǎng)絡(luò)各層

了解模型的整體架構(gòu)以后,就可以嘗試深入探究神經(jīng)網(wǎng)絡(luò)的每一層了。

事實(shí)上,訪問Keras模型的各層并提取每一層的相關(guān)參數(shù)是非常容易的,這包括權(quán)重和過濾器數(shù)量等其他信息。

首先,創(chuàng)建字典,并將層名稱映射到其相應(yīng)的特征和權(quán)重。

  1. #creating a mapping of layer name ot layer details  
  2. #we will create a dictionary layers_info which maps a layer name to its charcteristics 
  3. layers_info = {} 
  4. for i in model.layers: 
  5.     layers_info[i.name] = i.get_config() 
  6.  
  7. #here the layer_weights dictionary will map every layer_name to its corresponding weights 
  8. layer_weights = {} 
  9. for i in model.layers: 
  10.     layer_weights[i.name] = i.get_weights() 
  11.  
  12. print(layers_info['block5_conv1']) 

上述代碼的輸出結(jié)果如下所示,包含了block5_conv1層的不同參數(shù):

  1. {'name': 'block5_conv1', 
  2.  'trainable': True, 
  3.  'filters': 512, 
  4.  'kernel_size': (3, 3), 
  5.  'strides': (1, 1), 
  6.  'padding': 'same', 
  7.  'data_format': 'channels_last', 
  8.  'dilation_rate': (1, 1), 
  9.  'activation': 'relu', 
  10.  'use_bias': True, 
  11.  'kernel_initializer': {'class_name': 'VarianceScaling', 
  12.   'config': {'scale': 1.0, 
  13.    'mode': 'fan_avg', 
  14.    'distribution': 'uniform', 
  15.    'seed': None}}, 
  16.  'bias_initializer': {'class_name': 'Zeros', 'config': {}}, 
  17.  'kernel_regularizer': None, 
  18.  'bias_regularizer': None, 
  19.  'activity_regularizer': None, 
  20.  'kernel_constraint': None, 
  21.  'bias_constraint': None} 

’block5_conv1’層的可訓(xùn)練參數(shù)值是真實(shí)的,這意味著之后可以通過進(jìn)一步模型訓(xùn)練來更新權(quán)重。

過濾器——卷積神經(jīng)網(wǎng)絡(luò)構(gòu)件的可視化

過濾器是卷積神經(jīng)網(wǎng)絡(luò)的基本組成部分。如下圖所示,不同的過濾器會從圖像中提取不同類型的特征:

如圖所示,每個(gè)卷積層都由多個(gè)過濾器組成。回顧上一節(jié)中提到的‘block5_conv1’層的參數(shù)概要顯示了該層含有512個(gè)過濾器,確實(shí)是這個(gè)道理。

通過下列編碼,可以繪制每VGG16模塊的第一個(gè)卷積層的首個(gè)過濾器:

  1. layers = model.layers 
  2. layer_ids = [1,4,7,11,15] 
  3. #plot the filters 
  4. fig,ax = plt.subplots(nrows=1,ncols=5
  5. for i in range(5): 
  6.     ax[i].imshow(layers[layer_ids[i]].get_weights()[0][:,:,:,0][:,:,0],cmap='gray'
  7.     ax[i].set_title('block'+str(i+1)) 
  8.     ax[i].set_xticks([]) 
  9.     ax[i].set_yticks([]) 

以上輸出結(jié)果即為不同層的過濾器。由于VGG16只使用3×3過濾器,因此所有過濾器形狀大小都相同。

激活最大化——將模型所期望的進(jìn)行可視化

通過下面的圖片來理解最大激活的概念:

[[267046]]

在識別大象的過程中,哪些特征比較重要?

下面是一些較容易想到的特征。

  • 獠牙
  • 象鼻
  • 耳朵

這就是人類憑直覺判別大象的方式。但是,使用卷積神經(jīng)網(wǎng)絡(luò)優(yōu)化隨機(jī)圖像,并嘗試將其歸類為大象時(shí),會得到什么結(jié)果呢?

卷積神經(jīng)網(wǎng)絡(luò)中,每個(gè)卷積層都在前一層的輸出中尋找相似的模式。當(dāng)輸入包含其正在尋找的模式時(shí),就能實(shí)現(xiàn)最大激活。

在激活最大化技術(shù)中,更新每一層的輸入,使該過程中的損失達(dá)到最小值。

應(yīng)該怎么做呢?首先需要計(jì)算激活損失相對于輸入的梯度,并據(jù)此更新輸入。

[[267047]]

以下為所述方法的代碼:

  1. #importing the required modules 
  2. from vis.visualization import visualize_activation 
  3. from vis.utils import utils 
  4. from keras import activations 
  5. from keras import applications 
  6. import matplotlib.pyplot as plt 
  7. %matplotlib inline 
  8. plt.rcParams['figure.figsize'] = (18,6) 
  9. #creating a VGG16 model using fully connected layers also because then we can  
  10. #visualize the patterns for individual category 
  11. from keras.applications import VGG16 
  12. model = VGG16(weights='imagenet',include_top=True
  13.  
  14. #finding out the layer index using layer name 
  15. #the find_layer_idx function accepts the model and name of layer as parameters and return the index of respective layer 
  16. layer_idx = utils.find_layer_idx(model,'predictions') 
  17. #changing the activation of the layer to linear 
  18. model.layers[layer_idx].activation = activations.linear 
  19. #applying modifications to the model 
  20. model = utils.apply_modifications(model) 
  21. #Indian elephant 
  22. img3 = visualize_activation(model,layer_idx,filter_indices=385,max_iter=5000,verbose=True
  23. plt.imshow(img3) 

示例模型使用對應(yīng)于印度大象類別的隨機(jī)輸入,輸出了以下內(nèi)容:

[[267048]]

從圖像中可以看到,模型期望的結(jié)構(gòu)為象牙、大眼睛和象鼻。這些信息可以有效幫助檢查數(shù)據(jù)集的完整性。例如,假設(shè)該模型將關(guān)注的特征理解為背景中的樹木或草叢等其它物體,由于印度象的棲息地中往往含有大量的樹木或草叢,模型就可能產(chǎn)生錯(cuò)誤。然后,通過最大激活,就會發(fā)現(xiàn)已有的數(shù)據(jù)集可能不足以完成任務(wù),因此需要將生活在不同棲息地的大象圖像添加到訓(xùn)練集中,實(shí)現(xiàn)大象特征的準(zhǔn)確辨別。

遮擋圖——將輸入過程的重要部分可視化

激活最大化主要用于將圖像中模型的期待可視化。而圖像遮擋可以找出圖像中對模型來說至關(guān)重要的部分。

現(xiàn)在,為了理解圖像遮擋的工作原理,我們設(shè)立了一個(gè)模型,它能夠根據(jù)豐田、奧迪等制造商對汽車進(jìn)行分類。

[[267049]]

能夠判斷圖中汽車屬于哪家公司嗎?一定很難吧。因?yàn)楣緲?biāo)識所在的部分被遮擋了。顯然,圖像中被遮擋部分是辨別汽車所屬廠商時(shí)非常重要的線索。

同樣地,為了生成遮擋圖,我們遮擋了圖像中的某些部分,然后計(jì)算它屬于某一類的概率。如果概率降低,就意味著遮擋部分對于完成分類非常重要。否則,該部分就無足輕重了。

示例程序?qū)⒏怕释瑘D像每個(gè)部分的像素值聯(lián)系起來,對其進(jìn)行標(biāo)準(zhǔn)化后生成熱圖:

  1. import numpy as np 
  2.  
  3. from keras.utils import np_utils 
  4. from keras.models import Sequential 
  5. from keras.layers import Dense, Dropout, Flatten, Activation, Conv2D, MaxPooling2D 
  6. from keras.optimizers import Adam 
  7. from keras.callbacks import EarlyStopping, ModelCheckpoint 
  8. from keras.preprocessing.image import ImageDataGenerator 
  9. from keras.activations import relu 
  10.  
  11. %matplotlib inline 
  12. import matplotlib.pyplot as plt 
  13. def iter_occlusion(image, size=8): 
  14.  
  15.     occlusion = np.full((size * 5, size * 5, 1), [0.5], np.float32) 
  16.     occlusion_center = np.full((size, size, 1), [0.5], np.float32) 
  17.     occlusion_padding = size * 2 
  18.  
  19.     # print('padding…') 
  20.     image_padded = np.pad(image, ( \ 
  21.                         (occlusion_padding, occlusion_padding), (occlusion_padding, occlusion_padding), (0, 0) \ 
  22.                         ), 'constant', constant_values = 0.0) 
  23.  
  24.     for y in range(occlusion_padding, image.shape[0] + occlusion_padding, size): 
  25.  
  26.         for x in range(occlusion_padding, image.shape[1] + occlusion_padding, size): 
  27.             tmp = image_padded.copy() 
  28.  
  29.             tmp[y - occlusion_padding:y + occlusion_center.shape[0] + occlusion_padding, \ 
  30.                 x - occlusion_padding:x + occlusion_center.shape[1] + occlusion_padding] \ 
  31.                 = occlusion 
  32.  
  33.             tmp[y:y + occlusion_center.shape[0], x:x + occlusion_center.shape[1]] = occlusion_center 
  34.  
  35.             yield x - occlusion_padding, y - occlusion_padding, \ 
  36.                   tmp[occlusion_padding:tmp.shape[0] - occlusion_padding, occlusion_padding:tmp.shape[1] - occlusion_padding] 

上述代碼定義的函數(shù)iter_occlusion能夠生成具有不同遮擋部分的圖像。

現(xiàn)在可以導(dǎo)入圖像并對其進(jìn)行加工:

  1. from keras.preprocessing.image import load_img 
  2. # load an image from file 
  3. image = load_img('car.jpeg', target_size=(224, 224)) 
  4. plt.imshow(image) 
  5. plt.title('ORIGINAL IMAGE') 

[[267050]]

一共分為三個(gè)步驟:

  • 對圖像進(jìn)行預(yù)處理
  • 計(jì)算不同遮擋部分的概率
  • 繪制熱圖
  1. from keras.preprocessing.image import img_to_array 
  2. from keras.applications.vgg16 import preprocess_input 
  3. # convert the image pixels to a numpy array 
  4. image = img_to_array(image) 
  5. # reshape data for the model 
  6. imageimage = image.reshape((1, image.shape[0], image.shape[1], image.shape[2])) 
  7. # prepare the image for the VGG model 
  8. image = preprocess_input(image) 
  9. # predict the probability across all output classes 
  10. yhat = model.predict(image) 
  11. temp = image[0] 
  12. print(temp.shape) 
  13. heatmap = np.zeros((224,224)) 
  14. correct_class = np.argmax(yhat) 
  15. for n,(x,y,image) in enumerate(iter_occlusion(temp,14)): 
  16.     heatmap[x:x+14,y:y+14] = model.predict(image.reshape((1, image.shape[0], image.shape[1], image.shape[2])))[0][correct_class] 
  17.     print(x,y,n,' - ',image.shape) 
  18. heatmapheatmap1 = heatmap/heatmap.max() 
  19. plt.imshow(heatmap) 

是不是很有趣呢?接著將使用標(biāo)準(zhǔn)化的熱圖概率來創(chuàng)建一個(gè)遮擋部分并進(jìn)行繪制:

  1. import skimage.io as io 
  2. #creating mask from the standardised heatmap probabilities 
  3. mask = heatmap1 < 0.85 
  4. maskmask1 = mask *256 
  5. maskmask = mask.astype(int) 
  6. io.imshow(mask,cmap='gray'

[[267052]]

最后,通過使用下述程序,對輸入圖像進(jìn)行遮擋:

  1. import cv2 
  2. #read the image 
  3. image = cv2.imread('car.jpeg') 
  4. image = cv2.cvtColor(image,cv2.COLOR_BGR2RGB) 
  5. #resize image to appropriate dimensions 
  6. image = cv2.resize(image,(224,224)) 
  7. maskmask = mask.astype('uint8') 
  8. #apply the mask to the image 
  9. final = cv2.bitwise_and(image,image,maskmask = mask) 
  10. final = cv2.cvtColor(final,cv2.COLOR_BGR2RGB) 
  11. #plot the final image 
  12. plt.imshow(final) 

[[267053]]

猜猜為什么只能看到某些部分?沒錯(cuò)——只有那些對輸出圖片類型的概率有顯著貢獻(xiàn)的部分是可見的。簡而言之,這就是遮擋圖的全部含義。

特征圖——將輸入特征的貢獻(xiàn)可視化

特征圖是另一種基于梯度的可視化技術(shù)。這類圖像在 Deep Inside Convolutional Networks:Visualising Image Classification Models and Saliency Maps.論文中有介紹。

特征圖計(jì)算出每個(gè)像素對模型輸出的影響,包括計(jì)算相對于輸入圖像每一像素而言輸出的梯度。

這也說明了在輸入圖像像素細(xì)微改變時(shí)輸出類別將如何產(chǎn)生變化。梯度的所有正值都表明,像素值的細(xì)微變化會增加輸出值:

[[267054]]

這些梯度與圖像的形狀相同(梯度是針對每個(gè)像素計(jì)算的),對直觀感覺產(chǎn)生影響。

那么如何生成顯著圖呢?首先使用下述代碼讀取輸入圖像。

[[267055]]

然后,通過VGG16模型生成顯著圖:

  1. # Utility to search for layer index by name.  
  2. # Alternatively we can specify this as -1 since it corresponds to the last layer. 
  3. layer_idx = utils.find_layer_idx(model, 'predictions') 
  4.  
  5. # Swap softmax with linear 
  6. model.layers[layer_idx].activation = activations.linear 
  7. model = utils.apply_modifications(model) 
  8.  
  9. #generating saliency map with unguided backprop 
  10. grads1 = visualize_saliency(model, layer_idx,filter_indices=None,seed_input=image
  11. #plotting the unguided saliency map 
  12. plt.imshow(grads1,cmap='jet'

可以看到,模型更加關(guān)注狗的面部。下圖呈現(xiàn)了使用導(dǎo)向反向傳播后的結(jié)果:

  1. #generating saliency map with guided backprop 
  2. grads2 =  visualize_saliency(model, layer_idx,filter_indices=None,seed_input=image,backprop_modifier='guided'
  3. #plotting the saliency map as heatmap 
  4. plt.imshow(grads2,cmap='jet'

導(dǎo)向反向傳播將所有的負(fù)梯度變?yōu)?,即只更新對類別概率有積極影響的像素。

CAM(Class Activation Maps)(梯度加權(quán))

CAM也是一種神經(jīng)網(wǎng)絡(luò)可視化技術(shù),基本原理是根據(jù)其梯度或?qū)敵龅呢暙I(xiàn)來權(quán)衡激活圖。

以下節(jié)選自Grad-CAM論文給出了該技術(shù)的要點(diǎn):

Grad-CAM可以使用任何目標(biāo)概念的梯度(例如“狗”的未歸一化概率或者簡單的說明文字),進(jìn)入最終的卷積層生成一個(gè)粗略的定位圖,最后突出顯示圖像中用于預(yù)測概念的重要區(qū)域。

本質(zhì)上,只需取用最后一個(gè)卷積層的特征映射,并使用相對于特征圖的輸出梯度對每個(gè)濾波器進(jìn)行加權(quán)(相乘),就能達(dá)到目的。生成加權(quán)梯度類激活圖的過程包括以下步驟:

  • 利用最后一層卷積層輸出的特征圖。對于VGG16來說,該特征映射的大小為14x14x512。
  • 計(jì)算輸出與特征圖相對應(yīng)的梯度。
  • 進(jìn)行梯度全局平均池化。
  • 將特征映射與相應(yīng)的池化梯度相乘。

可以看到輸入圖像及其對應(yīng)的類激活圖如下:

[[267058]]

下圖為類激活圖。

[[267059]]

將過程分層輸出可視化

卷積神經(jīng)網(wǎng)絡(luò)的起始層通常尋求邊緣(edge)等小的細(xì)節(jié)信息。隨著對模型的深入了解,其特征也會發(fā)生變化。

對于模型不同層輸出的可視化可以直觀地呈現(xiàn)圖像在相應(yīng)層上突出顯示的特性。為了針對后續(xù)問題進(jìn)行架構(gòu)微調(diào),可視化是非常重要的一步。因?yàn)槲覀兛梢钥吹讲煌瑢拥牟煌匦裕Q定模型中使用的具體層。

例如,在比較神經(jīng)風(fēng)格遷移問題中不同層的性能時(shí),可視化輸出可以給予極大的助力。

下述程序展示了如何實(shí)現(xiàn)VGG16模型的不同層的輸出:

  1. #importing required libraries and functions 
  2. from keras.models import Model 
  3. #defining names of layers from which we will take the output 
  4. layer_names = ['block1_conv1','block2_conv1','block3_conv1','block4_conv2'] 
  5. outputs = [] 
  6. imageimage = image.reshape((1, image.shape[0], image.shape[1], image.shape[2])) 
  7. #extracting the output and appending to outputs 
  8. for layer_name in layer_names: 
  9.     intermediate_layer_model = Model(inputs=model.input,outputs=model.get_layer(layer_name).output) 
  10.     intermediate_output = intermediate_layer_model.predict(image) 
  11.     outputs.append(intermediate_output) 
  12. #plotting the outputs 
  13. fig,ax = plt.subplots(nrows=4,ncols=5,figsize=(20,20)) 
  14.  
  15. for i in range(4): 
  16.     for z in range(5): 
  17.         ax[i][z].imshow(outputs[i][0,:,:,z]) 
  18.         ax[i][z].set_title(layer_names[i]) 
  19.         ax[i][z].set_xticks([]) 
  20.         ax[i][z].set_yticks([]) 
  21. plt.savefig('layerwise_output.jpg') 

[[267060]]

如圖所示,VGG16(除block5外)的每一層都從圖像中提取了不同特征。起始層對應(yīng)的是類似邊緣的低級特征,而后一層對應(yīng)的是車頂、排氣等特征。

結(jié)語

可視化總是讓人驚奇不已。固然理解一項(xiàng)技術(shù)工作原理的方法有很多,但是將其原理可視化會讓理解過程變得更加有趣。以下相關(guān)熱門話題值得關(guān)注:

  • 神經(jīng)網(wǎng)絡(luò)的特征提取過程是一個(gè)極為熱門的研究領(lǐng)域,同時(shí)也已經(jīng)促進(jìn)了很多工具的開發(fā),如TensorSpace和“激活地圖集”(ActivationAtlases)。
  • TensorSpace也是一個(gè)支持多種模型格式的神經(jīng)網(wǎng)絡(luò)可視化工具,可以加載模型并以交互的方式將其可視化。TensorSpace還有一個(gè)“游樂場”,用戶可以使用多個(gè)架構(gòu)進(jìn)行可視化,在瀏覽器中嘗試神經(jīng)網(wǎng)絡(luò)。
責(zé)任編輯:趙寧寧 來源: 讀芯術(shù)
相關(guān)推薦

2023-07-11 07:59:18

2023-11-27 14:48:34

人工智能深度學(xué)習(xí)大語言模型

2014-01-17 13:59:14

騰訊開放平臺

2022-03-25 13:56:37

黑匣子數(shù)據(jù)分析數(shù)據(jù)

2020-10-30 11:25:15

神經(jīng)網(wǎng)絡(luò)人工智能黑匣子

2025-05-29 03:20:00

2022-04-12 14:13:01

云計(jì)算云存儲黑匣子

2013-03-27 10:40:29

2011-12-28 10:37:21

2021-09-16 09:09:03

“可解釋的”人工智能XAI人工智能

2023-09-20 11:42:44

人工智能AI

2025-06-18 02:00:00

人工智能AI大模型

2022-03-23 10:01:56

黑匣子云端

2021-11-30 15:39:00

汽車智能技術(shù)

2015-10-12 15:13:45

銳捷網(wǎng)絡(luò)

2022-03-23 19:05:25

黑匣子云端

2017-04-17 13:10:09

神經(jīng)網(wǎng)絡(luò)人工智能網(wǎng)絡(luò)

2024-08-12 10:52:00

AI模型

2022-01-07 17:31:48

阿里英偉達(dá)高通

2024-01-16 17:23:39

AI數(shù)據(jù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

无码一区二区三区在线| 日本一区午夜艳熟免费| 国产又粗又猛又爽又黄的| 中文字幕一区二区三三| 精品国产凹凸成av人导航| 欧美啪啪免费视频| av电影在线观看| 国产成人免费视频| 国产成人精品免费视频| 麻豆视频在线观看| 亚洲女娇小黑人粗硬| 国内精彩免费自拍视频在线观看网址 | 师生出轨h灌满了1v1| 在线视频超级| 亚洲青青青在线视频| 精品一区二区久久久久久久网站| 老熟妇一区二区三区啪啪| 你懂的一区二区| 亚洲人成电影在线| 日本少妇一级片| 国产精品毛片久久久久久久久久99999999| 亚洲欧美日韩成人高清在线一区| 狼狼综合久久久久综合网| 国产又粗又长视频| 丝袜国产日韩另类美女| 国自在线精品视频| 精品人妻伦九区久久aaa片| 亚洲警察之高压线| 精品国精品自拍自在线| 第一区免费在线观看| 制服丝袜专区在线| 亚洲一区二区精品久久av| 在线视频亚洲自拍| 粉嫩一区二区三区国产精品| 成人avav影音| av成人午夜| 国产视频一二三四区| 日韩精品免费视频人成| 26uuu久久噜噜噜噜| 国产亚洲成人av| 亚洲经典一区| 久久综合久久美利坚合众国| 四季av中文字幕| 欧美人妖在线| 精品一区二区三区四区在线| 成人免费无码大片a毛片| 国产亚洲久久| 日韩亚洲欧美综合| 国产人妻精品久久久久野外| vam成人资源在线观看| 在线视频中文字幕一区二区| 日日橹狠狠爱欧美超碰| www.51av欧美视频| 午夜精品福利一区二区三区av| 成人小视频在线观看免费| www.久久ai| 亚洲精品免费视频| 黄色成人在线免费观看| 日本大片在线播放| 亚洲国产精品久久艾草纯爱| 男人添女荫道口喷水视频| 婷婷在线播放| 精品久久中文字幕| 999精品网站| 欧美一区二区三区婷婷| 在线播放中文一区| 亚洲女人在线观看| 国产精品对白久久久久粗| 亚洲国产日韩精品在线| 亚洲a v网站| 日韩黄色大片网站| 久久综合久久美利坚合众国| 欧美日韩大片在线观看| 亚洲每日在线| 国产精品对白刺激| 国产乱子伦精品无码码专区| 国产一区二区三区免费观看| 99久久综合狠狠综合久久止| 日韩一区二区三区不卡| 久久久国产午夜精品| 一区精品视频| 久草在线视频福利| 色哟哟国产精品| 奇米视频7777| 老司机aⅴ在线精品导航| 亚洲女人被黑人巨大进入| 一区二区三区在线观看免费视频| 亚洲精品成人无限看| 91精品国产色综合久久不卡98| aaa在线视频| 国内精品在线播放| 精品久久久久久一区| av亚洲在线| 亚洲线精品一区二区三区八戒| 免费黄色日本网站| 成人噜噜噜噜| 国产婷婷成人久久av免费高清| www.99热| 日韩视频一区| 成人免费黄色网| 四虎在线视频| 亚洲欧美日韩系列| 久久久久久久久久久久久国产精品| 日本成人一区二区| 日韩精品高清在线| 免费在线观看亚洲| 水野朝阳av一区二区三区| 99在线影院| 欧美成人xxx| 疯狂欧美牲乱大交777| 日本网站在线看| 亚洲老女人视频免费| 欧美日韩国产二区| 国产乱码在线观看| 91视频免费播放| 97av中文字幕| 精品久久久网| 国产午夜精品视频| 欧美成人精品欧美一级乱黄| 国产在线精品一区二区三区不卡| 欧美激情国产日韩| av白虎一区| 日韩视频一区二区在线观看| аⅴ天堂中文在线网| 一区二区日本视频| 国产精品yjizz| bt在线麻豆视频| 欧美日韩精品一区二区三区| a级在线免费观看| 午夜在线精品偷拍| 国产欧美日韩伦理| 欧美巨大xxxx做受沙滩| 宅男在线国产精品| 四虎影视一区二区| 日本视频中文字幕一区二区三区| 免费不卡亚洲欧美| 日本黄色免费在线| 亚洲国产成人精品电影| 2021亚洲天堂| 国产精品123| 中文字幕剧情在线观看一区| 91大神在线观看线路一区| 亚洲免费伊人电影在线观看av| 国产成人亚洲精品自产在线| 国产黑丝在线一区二区三区| 黑人巨大国产9丨视频| 日韩在线你懂得| 久久久国产一区| 国产精品久久久久久久久毛片| 国产精品视频一二三| www.超碰com| 黄色不卡一区| 国产成人综合亚洲| av在线播放网| 欧美日韩国产免费| 三级影片在线观看| 久草这里只有精品视频| 一区二区三区欧美在线| 亚洲国产伊人| 久久夜色精品国产| 亚洲av无码乱码国产麻豆| 一区二区三区日韩精品| 能看毛片的网站| 欧美精品日本| 国产精品日韩欧美一区二区| 欧美伦理免费在线| 亚洲国产99精品国自产| 亚洲天堂视频网站| 中文字幕国产精品一区二区| 最新国产黄色网址| 亚洲h色精品| 99一区二区| 亚洲精品一区| 色偷偷9999www| www三级免费| 婷婷久久综合九色综合伊人色| 波多野结衣福利| 麻豆精品国产91久久久久久| 黄色影视在线观看| 欧美大胆视频| 国产欧美日韩中文字幕| 四虎亚洲成人| 亚洲精品有码在线| 一区二区三区免费观看视频| 亚洲美女屁股眼交| 亚洲综合网在线观看| 久久99日本精品| 国产二区视频在线| 欧美日韩黑人| 国产精品对白刺激久久久| 成人av免费电影网站| 日韩有码在线视频| 香蕉视频国产在线| 777欧美精品| 五月婷婷亚洲综合| 亚洲欧美在线另类| 美女又爽又黄免费| 久久9热精品视频| 女人天堂av手机在线| 三上亚洲一区二区| 国产美女精品在线观看| 成人免费一区| 97精品久久久| 18视频在线观看| 国产一区二区久久精品| 丰满少妇高潮在线观看| 欧美综合久久久| 国产精品99无码一区二区| 国产精品污www在线观看| 国产女人18毛片水真多18| 精久久久久久久久久久| 久久婷婷国产精品| 狠狠入ady亚洲精品| 亚洲精品高清国产一线久久| 久久久久影视| 亚洲淫片在线视频| 久久69成人| 日韩av片免费在线观看| 欧美日韩在线视频免费观看| 中文字幕国产亚洲| 男人天堂综合| 日韩大片在线观看视频| www.成人在线观看| 欧美裸体bbwbbwbbw| 日本视频在线观看免费| 亚洲国产欧美一区二区三区丁香婷| 国产欧美小视频| 久久久www成人免费毛片麻豆| 污污免费在线观看| 成人亚洲精品久久久久软件| 特黄视频免费观看| 青青草伊人久久| 欧美综合在线观看视频| 国产精品视区| 人妻熟妇乱又伦精品视频| 精品1区2区3区4区| 国产激情片在线观看| 香蕉av一区二区| 天天干天天操天天干天天操| 婷婷伊人综合| 在线国产伦理一区| 97视频热人人精品免费| 亚洲国产日韩美| 99精品全国免费观看| 日韩在线a电影| 已婚少妇美妙人妻系列| 久久午夜影视| 精品www久久久久奶水| 老妇喷水一区二区三区| av观看免费在线| 久久久国产精品一区二区中文| 成人黄色片视频| 另类激情亚洲| 男女午夜激情视频| 免费视频一区| 黄色av免费在线播放| 强制捆绑调教一区二区| 欧美特级aaa| 国产一区欧美一区| 成人欧美精品一区二区| gogo大胆日本视频一区| 最新中文字幕视频| 国产精品久久久久久户外露出| 91久久久久久久| 九九色在线视频| 国内精品400部情侣激情| 九色porny自拍视频在线观看 | 亚洲国产古装精品网站| 后进极品白嫩翘臀在线视频| 亚洲精品国产精品国产自| 欧美色图另类| 日韩在线视频国产| 欧美黄色视屏| 日本人成精品视频在线| 久久精品黄色| 成人综合色站| 精品视频亚洲| 艳母动漫在线观看| 99精品国产在热久久下载| 牛夜精品久久久久久久| 国产精品亚洲视频| 久久久无码人妻精品一区| 国产精品视频免费| 久久一区二区三| 欧洲亚洲国产日韩| 精品人妻一区二区三区蜜桃| 亚洲老板91色精品久久| 日本中文在线观看| 午夜美女久久久久爽久久| 99热播精品免费| 高清免费日韩| 日韩国产欧美一区二区| 国产无限制自拍| 精品中文字幕一区二区小辣椒| 国产精品久久久久久亚洲色| 欧美激情在线一区二区三区| 久久久久久久久久一区二区三区| 欧美中文字幕一区二区三区| 午夜老司机福利| 亚洲天堂网站在线观看视频| 性欧美videoshd高清| 国产精品18久久久久久首页狼| 日韩最新av| 亚洲草草视频| 夜夜爽av福利精品导航| 红桃视频 国产| 久久久久国色av免费看影院| 免费在线黄色片| 欧美精品自拍偷拍| 蜜桃视频在线观看网站| 欧美激情手机在线视频| 欧美日韩视频免费看| 久久综合给合久久狠狠色| 欧美日韩精品| 午夜天堂在线视频| 国产三级一区二区| 久草国产精品视频| 精品久久久久久无| 免费大片黄在线观看视频网站| 欧美制服第一页| 国产乱人伦丫前精品视频| 欧美日韩一级在线| 青青草原综合久久大伊人精品优势 | 亚洲人高潮女人毛茸茸| av伦理在线| 99久久99久久精品国产片| 五月天综合网站| 精品久久久久久中文字幕2017| 91免费观看在线| 你懂的国产视频| 亚洲激情在线视频| 成人性生交大片免费看在线播放| 亚洲精品欧美一区二区三区| 四季av一区二区三区免费观看| 日本成人黄色网| 国产亚洲自拍一区| 亚洲欧美一二三区| 亚洲美女福利视频网站| 免费在线小视频| 久久精品日韩| 香蕉久久a毛片| 蜜桃av免费看| 色诱亚洲精品久久久久久| 久久精品国产亚洲a∨麻豆| 欧美专区国产专区| 一区二区三区韩国免费中文网站| 免费国产a级片| 91玉足脚交白嫩脚丫在线播放| 精品在线视频免费| 日韩av中文在线| 345成人影院| 色一情一区二区三区四区| 青娱乐精品视频在线| 国产又粗又长又硬| 3751色影院一区二区三区| 成人影欧美片| www.成人av.com| 亚洲美女少妇无套啪啪呻吟| 一区二区免费在线观看视频| 日韩欧美国产骚| 超碰在线影院| 成人做爰www免费看视频网站| 亚洲精品一二三区区别| 中文字幕天堂av| 欧美午夜片在线免费观看| 国内精品在线视频| 成人免费看黄网站| 一区在线免费| 一区二区黄色片| 在线免费观看日本欧美| 久久综合之合合综合久久| 成人羞羞视频免费| 新67194成人永久网站| 美国黑人一级大黄| 欧美一区二区三区影视| www.色在线| 天天人人精品| 国产乱子伦一区二区三区国色天香| 亚洲精品午夜久久久久久久| 亚洲欧美国产精品专区久久| 欧美天堂一区| 男人添女荫道口图片| 久久精品夜色噜噜亚洲a∨| 国产又黄又大又粗的视频| 性欧美长视频免费观看不卡| 国产欧美日韩| 图片区偷拍区小说区| 色av成人天堂桃色av| 26uuu亚洲电影在线观看| 欧美日韩免费高清| 国产麻豆精品视频| 国产69精品久久久久久久久久| 一区国产精品视频| jizz性欧美23| jizz大全欧美jizzcom| 亚洲午夜免费电影| 日本电影全部在线观看网站视频| 国产精品手机在线| 久久爱另类一区二区小说| 中文字幕激情小说|