主要内容

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

importKerasNetwork

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

설명

예제

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

이함수를사용하려면用于张量流模型的深度学习工具箱™转换器지원패키지가필요합니다。이지원패키지가설치되어있지않으면함수에서다운로드링크를제공합니다。

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

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

예제

모두축소

深度学习工具箱为TensorFlow模型转换器지원패키지를다운로드하고설치합니다。

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

importKerasNetwork

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

modelfile =“digitsDAGnet.h5”;净= importKerasNetwork (modelfile)
警告:保存的Keras网络不包括职业。将类设置为category (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”

신경망을가져옵니다。

净= importKerasNetwork (modelfile)
警告:保存的Keras网络不包括职业。将类设置为category (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网络体系结构”

图中包含一个坐标轴。标题为DAG网络体系结构的坐标轴包含一个graphplot类型的对象。

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

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

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

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

网= importKerasNetwork (modelfile,“WeightFile”权重,...“OutputLayerType”“分类”
警告:保存的Keras网络不包括职业。将类设置为category (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”

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

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

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

网= importKerasNetwork (modelfile,“类”类名);

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

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

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

标签=分类(净,我);

영상과분류결과를표시합니다。

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

图中包含一个坐标轴。分类结果:5包含一个类型为image的对象。

입력인수

모두축소

신경망아키텍처와(해당하는경우)가중치를포함하는모델파일의이름으로,문자형벡터또는字符串형스칼라로지정됩니다。파일은현재폴더또는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은클래스의개수입니다。

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

출력인수

모두축소

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

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

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

제한사항

  • importKerasNetwork함수는다음과같이TensorFlow-Keras버전을지원합니다。

    • 이함수는TensorFlow-Keras버전2.2.4까지는완전히지원합니다。

    • 이함수는TensorFlow-Keras버전2.2.5 ~测试盒框은제한적으로지원합니다。

세부정보

모두축소

지원되는Keras계층

importKerasNetwork함수는내MATLAB계장층으로의변환에다음과같은TensorFlow-Keras계층유형을지원하며,몇가지제한사항이있습니다。

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

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

  • “elu”

  • “relu”

  • “线性”

  • “softmax”

  • “乙状结肠”

  • “漂亮”

  • 的双曲正切

계층:

고급활성화:

  • ELU

  • Softmax

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

  • LeakyReLU

  • PReLu

계층:

AveragePooling2D PaddingValue“的意思是”으로지정된averagePooling2dLayer
BatchNormalization batchNormalizationLayer
双向(LSTM (__)) bilstmLayer
连接 depthConcatenationLayer
Conv2D convolution2dLayer
Conv2DTranspose transposedConv2dLayer
CuDNNGRU gruLayer
CuDNNLSTM lstmLayer
密集的 fullyConnectedLayer
DepthwiseConv2D groupedConvolution2dLayer
辍学 dropoutLayer
嵌入 wordEmbeddingLayer(文本分析工具箱)
nnet.keras.layer.FlattenCStyleLayer
GlobalAveragePooling2D globalAveragePooling2dLayer
GlobalMaxPooling2D globalMaxPooling2dLayer
格勒乌 gruLayer
输入 imageInputLayersequenceInputLayer또는featureInputLayer
LSTM lstmLayer
MaxPooling2D maxPooling2dLayer
multiplicationLayer
SeparableConv2D groupedConvolution2dLayer또는convolution2dLayer
TimeDistributed 래핑된계층앞에는sequenceFoldingLayer,래핑된계층뒤에는sequenceUnfoldingLayer
UpSampling2D resize2dLayer(图像处理工具箱)
UpSampling3D resize3dLayer(图像处理工具箱)
ZeroPadding2D nnet.keras.layer.ZeroPadding2DLayer

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

지원되는Keras손실함수

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

  • mean_squared_error

  • categorical_crossentropy

  • sparse_categorical_crossentropy

  • binary_crossentropy

  • 신경망에张量流模型的深度学习工具箱转换器에서지원하지않는계층(지원되는Keras계층항목참조)이있으면importKerasNetwork함수는오류메시지를반환합니다。이경우에도importKerasLayers를사용하여신경망아키텍처와가중치를가져올수있습니다。

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

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

    • 영상의크기를조정하려면imresize를사용하십시오。예를들면[3] 227227年imresize(图片)과같습니다。

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

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

대체기능

importKerasNetwork또는importKerasLayers를사용하여TensorFlow-Keras신경망을HDF5또는JSON형식으로가져올수있습니다。TensorFlow신경망이저장된모델형식이면importTensorFlowNetwork또는importTensorFlowLayers를사용하십시오。

호환성관련고려사항

모두확장

R2018b부터권장되지않음

참고문헌

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

R2017b에개발됨