主要内容

이번역페이지는최신내용을담고있지않습니다。최신내용을문으로보려면여기를클릭하십시오。

importKerasNetwork

사전훈련된Keras신경망과가중치가져오기

설명

예제

= importKerasNetwork (modelfilemodelfile에서사전훈련된TensorFlow™-Keras신경망과가중치를가져옵니다。

이함수를사용하려면深度学习工具箱™进口商用于TensorFlow -Keras模型지원패키지가필합니다。이지원패키지가설치되어있지않으면함수에서다운로드링크를제공합니다。

= importKerasNetwork (modelfile名称,值는하나이상의이름——값쌍인수로지정된추가옵션을사용하여사전훈련된TensorFlow -Keras신경망과가중치를가져옵니다。

예를들어,importKerasNetwork (modelfile WeightFile,重量)는모델파일modelfile에서신경망을가져오고가중치파일权重에서가중치를가져옵니다。이경우,modelfile은hdf5또는json형식일수있고,가중치파일은hdf5형식이어야합니다。

예제

모두 축소

TensorFlow-Keras模型的深度学习工具箱导入器지원패키지를다운로드하고설치합니다。

명령줄에importKerasNetwork를입력합니다。

importKerasNetwork

深度学习工具箱进口国TensorFlow-Keras模型지원패키지가설치되어있지않은경우,필요한지원패키지로연결되는애드온탐색기링크를함수에서제공합니다。지원패키지를설치하려면링크를클릭한다음설치를클릭하십시오。모델 파일“digitsDAGnet.h5”에서신경망을가져와서설치가성공적으로완료되었는지명령줄에서확합니다。필한지원패키지가설치되어있는경우,함수가DAGNetwork객체를반환합니다。

modelfile =“digitsDAGnet.h5”;net = importKerasNetwork(modelfile)
警告:保存的Keras网络不包含类。类将被设置为categorical(1:N),其中N是网络分类输出层的类数。要指定类,使用' classes '参数。
net = DAGNetwork with properties: Layers: [13x1 nnet.cnn.layer.Layer] Connections: [13x2 table] InputNames: {'input_1'} OutputNames: {'ClassificationLayer_activation_1'}

가져올파일을지정합니다。파일digitsDAGnet.h5는숫자상을분류하는유방향비순환그래프컨벌루션신경망을포함합니다。

modelfile =“digitsDAGnet.h5”

신경망을가져옵니다。

net = importKerasNetwork(modelfile)
警告:保存的Keras网络不包含类。类将被设置为categorical(1:N),其中N是网络分类输出层的类数。要指定类,使用' classes '参数。
net = DAGNetwork with properties: Layers: [13x1 nnet.cnn.layer.Layer] Connections: [13x2 table] InputNames: {'input_1'} OutputNames: {'ClassificationLayer_activation_1'}

신경망아키텍처를플로팅합니다。

情节(净)标题(“DAG网络架构”

가져올신경망파일과가중치파일을지정합니다。

modelfile =“digitsDAGnet.json”;重量=“digitsDAGnet.weights.h5”

이신경망은숫자데이터에대해훈련된유방향비순환그래프컨벌루션신경망입니다。

신경망아키텍처와가중치를각각별도의파일에서가져옵니다。. json파일은출력계층또는비용함수에대한정보를포함하지않습니다。파일을가져올때출력계층유형을지정합니다。

net = importKerasNetwork(模型文件,“WeightFile”权重,...“OutputLayerType”“分类”
警告:保存的Keras网络不包含类。类将被设置为categorical(1:N),其中N是网络分类输出层的类数。要指定类,使用' classes '参数。
net = DAGNetwork with properties: Layers: [13x1 nnet.cnn.layer.Layer] Connections: [13x2 table] InputNames: {'input_1'} OutputNames: {'ClassificationLayer_activation_1'}

모델파일을지정합니다。

modelfile =“digitsDAGnet.h5”

클래스이름을지정합니다。

classNames = {' 0 '' 1 '' 2 '“3”“4”“5”“6”“7”“8”“9”};

클래스이름을사용하여Keras신경망을가져옵니다。

net = importKerasNetwork(模型文件,“类”类名);

분류할상을읽어들입니다。

digitDatasetPath = fullfile(toolboxdir(“nnet”),“nndemos”“nndatasets”“DigitDataset”);I = imread(fullfile(digitDatasetPath),“5”“image4009.png”));

사전훈련된신경망을사용하여상을분류합니다。

标签=分类(net,I);

@ @상과분류결과를@ @시합니다。

imshow (I)标题([“分类结果:”char(标签)))

입력marketing수

모두 축소

신경망아키텍처와(해당하는경우)가중치를포함하는모델파일의이름으로,문자형벡터또는字符串형스칼라로지정됩니다。파일은현재폴더또는matlab®경로에있는폴더에있어야합니다。또는파일에대한전체또는상대경로를포함해야합니다。

modelfile

  • 신경망아키텍처와가중치를포함하는경우,파일은hdf5 (.h5)형식이어야합니다。

  • 신경망아키텍처만포함하는경우,hdf5또는json (. json)형식일수있습니다。

modelfile이신경망아키텍처만포함하는경우“WeightFile”이름-값쌍수를사용하여hdf5파일에가중치를제공해야합니다。

예:“digitsnet.h5”

데이터형:字符|字符串

이름-값쌍의通讯录수

선택적으로名称,值수가쉼로구분되어지정됩니다。여기서的名字은수이름이고价值는대응값입니다。的名字은따옴。Name1, Value1,…,的家과같이여러개의이름-값쌍의通讯录수를어떤순서로든지정할수있습니다。

예:importKerasNetwork (modelfile“OutputLayerType”、“分类”、“类”,类)는모델파일modelfile에서신경망을가져오고,Keras계층의끝에분류문제를위한출력계층을추가하고,출력계층의클래스로를지정합니다。

가중치를포함하는파일의이름으로,문자형벡터또는字符串형스칼라로지정됩니다。WeightFile은현재폴더또는matlab경로에있는폴더에있어야합니다。또는파일에대한전체또는상대경로를포함해야합니다。

예:“WeightFile”、“weights.h5”

modelfile이손실함수를지정하지않았을때신경망아키텍처의끝부분에추가되는출력계층의유형으로,“分类”“回归”또는“pixelclassification”으로지정됩니다。pixelClassificationLayer(计算机视觉工具箱)객체를추가하려면计算机视觉工具箱™가필합니다。

modelfile의신경망이여러개의출력값을가질경우이인수를사용하여출력계층유형을지정할수없습니다。importKerasLayers를대신사용하십시오。importKerasLayers는출력값을위한자리@ @시자계층을삽입합니다。가져온후에는findPlaceholderLayers를사용하여자리@ @시자계층을찾고replaceLayer를사용하여자리@ @시자계층을바꿀수있습니다。

예:“OutputLayerType”、“回归”

신경망의입력신경망의입력상의크기로,2개또는3개의숫자형값으로구성된벡터(高度、宽度)(회색조상)또는(高度、宽度、渠道)(컬러상)로지정됩니다。신경망은modelfile이입력크기를지정하지않은경우이정보를사용합니다。

modelfile의신경망이여러개의입력값을가질경우이인수를사용하여입력크기를지정할수없습니다。importKerasLayers를대신사용하십시오。importKerasLayers는입력값을위한자리@ @시자계층을삽입합니다。가져온후에는findPlaceholderLayers를사용하여자리@ @시자계층을찾고replaceLayer를사용하여자리@ @시자계층을바꿀수있습니다。

예:“ImageInputSize”,[28 28]

출력계층의클래스로,直言형벡터,字符串형배열,문자형벡터로구성된셀형배열또는“汽车”로지정됩니다。字符串형배열또는문자형벡터로구성된셀형배열str을지정하면,출력계층의클래스가分类(str, str)로설정됩니다。“汽车”경우,함수는클래스를分类(1:N)으로설정합니다。여기서N은클래스의개수입니다。

데이터형:字符|分类|字符串|细胞

출력marketing수

모두 축소

사전훈련된Keras신경망으로,다음중하나로반환됩니다。

  • Keras신경망이顺序유형marketing경우,SeriesNetwork객체입니다。

  • Keras신경망이模型유형marketing경우,DAGNetwork객체입니다。

  • importKerasNetwork함수는다음과같은Keras계층유형을갖는신경망을가져올수있으며,몇가지제한사항이있습니다。신경망에그밖의다른유형의계층이포함된경우,오류메시지가반환됩니다。이경우에도importKerasLayers를사용하여신경망아키텍처와가중치를가져올수있습니다。

    지원되는Keras계층 대응되는深度学习工具箱계층
    添加 additionLayer

    다음과같은활성화이름을갖는激活

    • “elu”

    • “relu”

    • “线性”

    • “softmax”

    • “乙状结肠”

    • 的双曲正切

    계층:

    고급활성화:

    • ELU

    • Softmax

    • 线性整流函数(Rectified Linear Unit)

    • LeakyReLU

    • PReLu

    계층:

    AveragePooling2D averagePooling2dLayer
    BatchNormalization batchNormalizationLayer
    双向(LSTM (__)) bilstmLayer
    连接 depthConcatenationLayer
    Conv2D convolution2dLayer
    Conv2DTranspose transposedConv2dLayer
    CuDNNLSTM lstmLayer
    密集的 fullyConnectedLayer
    DepthwiseConv2D groupedConvolution2dLayer
    辍学 dropoutLayer
    嵌入 wordEmbeddingLayer(文本分析工具箱)
    nnet.keras.layer.FlattenCStyleLayer
    GlobalAveragePooling2D globalAveragePooling2dLayer
    GlobalMaxPooling2D globalMaxPooling2dLayer
    格勒乌 gruLayer
    输入 imageInputLayer
    LSTM lstmLayer
    MaxPooling2D maxPooling2dLayer
    multiplicationLayer
    SeparableConv2D groupedConvolution2dLayer또는convolution2dLayer
    UpSampling2D resize2dLayer(图像处理工具箱)
    UpSampling3D resize3dLayer(图像处理工具箱)
    ZeroPadding2D nnet.keras.layer.ZeroPadding2DLayer

    *PReLU계층의경우,importKerasNetwork함수가벡터값스케일링파라미터를벡터소의평균값으로바꿉니다。가져온후에파라미터를다시벡터로변경할수있습니다。예제는导入Keras PReLU图层항목을참조하십시오。

  • importKerasNetwork함수는다음과같은Keras손실함수를지원합니다。

    • mean_squared_error

    • categorical_crossentropy

    • sparse_categorical_crossentropy

    • binary_crossentropy

  • 다중입력/다중출력(MIMO)을포함하는Keras신경망을가져올수있습니다。신경망이입력값에대한입력크기정보를포함하고출력값에대한손실정보를포함하는경우importKerasNetwork를사용하십시오。그밖의경우에는importKerasLayers를사용하십시오。importKerasLayers함수는입력값과출력값을위한자리@ @시자계층을삽입합니다。가져온후에는findPlaceholderLayers를사용하여자리@ @시자계층을찾고replaceLayer를사용하여자리@ @시자계층을바꿀수있습니다。米姆Keras신경망을가져오는워크플로는MIMO ONNX™신경망을가져오는워크플로와같습니다。예제는导入和组装多输出ONNX网络항목을참조하십시오。여러개의입력값과여러개의출력값을갖는딥러닝신경망에대해자세히알아보려면多输入多输出网络항목을참조하십시오。

  • 사전훈련된신경망을새영상에대한예측또는전이학습을위해사용하려면모델을훈련시킬때사용한영상의전처리방식과동일하게영상을전처리해야합니다。가장일반적인전처리연산으로영상크기조정하기,평균값영상빼기,영상을RGB에서BGR형식으로변환하기등을들수있습니다。

    • 상의크기를조정하려면imresize를사용하십시오。예를 들면imresize (im, 227年[227])과같습니다。

    • 상을rgb에서BGR형식으로변환하려면翻转을사용하십시오。예를 들면翻转(im, 3)과같습니다。

    훈련및예측을위한상전처리에대한자세한내용은딥러닝을위해상전처리하기항목을참조하십시오。

호환성관련고려사항

모두 확장

R2018b부터권장되지않음

참고 문헌

[1] Keras: Python深度学习库。https://keras.io

R2017b에개발됨
Baidu
map