1. 程式人生 > >DL4J中文文件/模型/動物園模型

DL4J中文文件/模型/動物園模型

可用模型

AlexNet

[原始碼]

AlexNet

Dl4J的AlexNet模型解釋基於原始論文《基於深度卷積神經網路的ImageNet分類》和引用的imagenet示例程式碼。

參考文獻:

在DL4J中建立基於可用功能的模型,註釋指示哪裡是等待增強的間隙。

論文中某些層中偏置是1,但是在imagenet示例程式碼中的是0.1,論文中所有層使用標準差為0.1的權重分佈, 但是在imagenet示例程式碼中的密連層使用0.005。

Darknet19

[原始碼]

有2個預先訓練的模型,一個為224x224影象和一個微調448×448影象。初始化之前呼叫{ 3, 224, 224 }或{ 3, 448, 448 }的setInputShape()。輸入影象的通道需要以RGB順序(而不是BGR),值在[0, 1 ]內歸一化。輸出標籤為:

https://github.com/pjreddie/darknet/blob/master/data/imagenet.shortnames.list

FaceNetNN4Small2

[原始碼]

InceptionResNetV1

[原始碼]

LeNet

[原始碼]

LeNet是ImageNet資料集上的早期有希望的成就者。參考文獻:

NASNet

[原始碼]

U-Net

NASNet-A在DL4J中的實現。NASNet引用了神經架構搜尋網路, 通過直接在感興趣的資料集中學習模型架構而自動設計的一系列模型。

此實現使用1056個倒數第二濾波器和輸入形狀(3, 224, 224)。你可以改變這個。

ResNet50

[原始碼]

深度學習殘差網路

SimpleCNN

[原始碼]

SqueezeNet

[原始碼]

U-Net

SqueezeNet的實現。與AlexNet小部分引數精度相似。

TextGenerationLSTM

[原始碼]

設計用於文字生成的LSTM。可以在文字語料庫上進行訓練。對於這個模型,numClasses是

TinyYOLO

[原始碼]

該模型的ImageNet+VOC權重是可用的,並且已經從https://pjreddie.com/darknet/yolo使用 https://github.com/allanzelener/YAD2K

 和以下程式碼進行了轉換。
 

String filename = “tiny-yolo-voc.h5”; ComputationGraph graph = KerasModelImport.importKerasModelAndWeights(filename, false); 
INDArray priors = Nd4j.create(priorBoxes);

FineTuneConfiguration fineTuneConf = new FineTuneConfiguration.Builder() .seed(seed) .iterations(iterations) .optimizationAlgo(OptimizationAlgorithm.STOCHASTIC_GRADIENT_DESCENT) .gradientNormalization(GradientNormalization.RenormalizeL2PerLayer) .gradientNormalizationThreshold(1.0) 
.updater(new Adam.Builder().learningRate(1e-3).build())
.l2(0.00001)
.activation(Activation.IDENTITY) 
.trainingWorkspaceMode(workspaceMode) 
.inferenceWorkspaceMode(workspaceMode) 
.build();

ComputationGraph model = new TransferLearning.GraphBuilder(graph) .fineTuneConfiguration(fineTuneConf) 
.addLayer(“outputs”, new Yolo2OutputLayer.Builder() .boundingBoxPriors(priors) .build(), “conv2d_9”) 
.setOutputs(“outputs”) 
.build();

System.out.println(model.summary(InputType.convolutional(416, 416, 3)));

ModelSerializer.writeModel(model, “tiny-yolo-voc_dl4j_inference.v1.zip”, false); 

416X416輸入影象的通道需要以RGB順序(而不是BGR),值在[0, 1 ]內歸一化。

UNet

[原始碼]

U-Net

U-NET是一種深度學習網路,在DL4J中用於影象分割。U-NET-卷積網路結構用於影象的快速精確分割。到目前為止,它在分割神經元結構的電子棧ISBI的挑戰中已經優於現有的最佳方法(滑動視窗卷積網路)。

VGG16

[原始碼]

深度人臉識別

VGG19

Xception

[原始碼]

U-Net

An implementation of Xception in Deeplearning4j. A novel deep convolutional neural network architecture inspired by Inception, where Inception modules have been replaced with depthwise separable convolutions.

Xception在DL4J中的實現。受Inception的啟發,一種新的深度卷積神經網路結構,其中Inception模組已經被深度可分離卷積所取代。

YOLO2

YOLOv2 參考文獻: https://arxiv.org/pdf/1612.08242.pdf

這個模型的ImageNet+COCO權重是可用的,並且已經從https://pjreddie.com/darknet/yolo使用https://github.com/allanzelener/YAD2K和如下程式碼進行了轉換。
 

String filename = “yolo.h5”; 
KerasLayer.registerCustomLayer(“Lambda”, KerasSpaceToDepth.class);
ComputationGraph graph = KerasModelImport.importKerasModelAndWeights(filename, false); INDArray priors = Nd4j.create(priorBoxes);

FineTuneConfiguration fineTuneConf = new FineTuneConfiguration.Builder() 
.seed(seed) 
.optimizationAlgo(OptimizationAlgorithm.STOCHASTIC_GRADIENT_DESCENT) .gradientNormalization(GradientNormalization.RenormalizeL2PerLayer) .gradientNormalizationThreshold(1.0) 
.updater(new Adam.Builder().learningRate(1e-3).build()) 
.l2(0.00001) 
.activation(Activation.IDENTITY) 
.trainingWorkspaceMode(workspaceMode) 
.inferenceWorkspaceMode(workspaceMode) 
.build();

ComputationGraph model = new TransferLearning.GraphBuilder(graph) .fineTuneConfiguration(fineTuneConf) 
.addLayer(“outputs”, new Yolo2OutputLayer.Builder() .boundingBoxPriors(priors) .build(), “conv2d_23”) 
.setOutputs(“outputs”) 
.build();

System.out.println(model.summary(InputType.convolutional(608, 608, 3)));

ModelSerializer.writeModel(model, “yolo2_dl4j_inference.v1.zip”, false);

608X608輸入影象的通道需要以RGB順序(而不是BGR),值在[0, 1 ]內歸一化。

pretrainedUrl

public String pretrainedUrl(PretrainedType pretrainedType) 

模型的預設先驗框