1. 程式人生 > >DL4J中文文件/模型/模型持久化

DL4J中文文件/模型/模型持久化

神經網路的儲存與載入

ModelSerializer(模型序列化器)是一個處理載入和儲存模型的類。通過連結顯示的示例中儲存模型有兩種方法。第一個例子儲存了一個正常的多層網路,第二個例子儲存了一個計算圖。

下面是一個基本示例,其中包含使用ModelSerializer類儲存計算圖的程式碼,以及使用ModelSerializer儲存使用MultiLayer配置構建的神經網路的示例。

RNG 種子

如果你的模型使用概率(即,DropOut/DropConnect),那麼單獨儲存它並在恢復模型之後應用它可能是有意義的;即:

 Nd4j.getRandom().setSeed(12345);
 ModelSerializer.restoreMultiLayerNetwork(modelFile);

這將保證會話/JVM之間相等的結果。

模型序列化器


ModelSerializer(模型序列化器)

[原始碼]

適用於儲存/恢復神經網路模型的實用類

writeModel

public static void writeModel(@NonNull Model model, @NonNull File file, boolean saveUpdater) throws IOException 

把一個模型寫入檔案

  • 引數 model 要寫入的模型
  • 引數 file 要寫入的檔案
  • 引數 saveUpdater 是否儲存更新器
  • 丟擲 IOException

writeModel

public static void writeModel(@NonNull Model model, @NonNull File file, boolean saveUpdater,DataNormalization dataNormalization) throws IOException 

把一個模型寫入檔案

  • 引數 model 要寫入的模型
  • 引數 file 要寫入的檔案
  • 引數 saveUpdater 是否儲存更新器
  • 引數 dataNormalization 資料歸一化
  • 丟擲 IOException

writeModel

public static void writeModel(@NonNull Model model, @NonNull String path, boolean saveUpdater) throws IOException 

把一個模型寫入檔案路徑

  • 引數 model 要寫入的模型
  • 引數 file 要寫入的檔案路徑
  • 引數 saveUpdater 是否儲存更新器
  • 丟擲 IOException

writeModel

public static void writeModel(@NonNull Model model, @NonNull OutputStream stream, boolean saveUpdater)
            throws IOException 

把一個檔案寫入到輸出流

  • 引數 model 要寫入的模型
  • 引數 stream 要寫入的輸入流
  • 引數 saveUpdater 是否儲存更新器
  • 丟擲 IOException

writeModel

public static void writeModel(@NonNull Model model, @NonNull OutputStream stream, boolean saveUpdater,DataNormalization dataNormalization)
            throws IOException 

把一個檔案寫入到輸出流

  • 引數 model 要寫入的模型
  • 引數 stream 要寫入的輸入流
  • 引數 saveUpdater 是否儲存更新器
  • 引數 dataNormalization 要被儲存的歸一化器 (可能為空)
  • 丟擲 IOException

restoreMultiLayerNetwork

public static MultiLayerNetwork restoreMultiLayerNetwork(@NonNull File file) throws IOException 

從檔案中載入多層網路

  • 引數 file 要從中載入的文
  • 返回載入的多層網路
  • 丟擲 IOException

restoreMultiLayerNetwork

public static MultiLayerNetwork restoreMultiLayerNetwork(@NonNull File file, boolean loadUpdater)
            throws IOException 

從檔案中載入多層網路

  • 引數 file 要從中載入的文
  • 引數loadUpdater是否載入更新器 
  • 返回載入的多層網路
  • 丟擲 IOException

restoreMultiLayerNetwork

public static MultiLayerNetwork restoreMultiLayerNetwork(@NonNull InputStream is, boolean loadUpdater)
            throws IOException 

從輸入流載入多層網路

注:輸入流被完全讀取並通過該方法關閉。因此,不能重新使用輸入流。

  • 引數 is 要從中載入的輸入流
  • 引數loadUpdater是否載入更新器 
  • 返回載入的多層網路
  • 丟擲 IOException
  • 檢視 #restoreMultiLayerNetworkAndNormalizer(InputStream, boolean)

restoreMultiLayerNetwork

public static MultiLayerNetwork restoreMultiLayerNetwork(@NonNull InputStream is) throws IOException 

從輸入流載入多層網路

注:輸入流被完全讀取並通過該方法關閉。因此,不能重新使用輸入流。

  • 引數 is 要從中載入的輸入流
  • 引數loadUpdater是否載入更新器 
  • 返回載入的多層網路
  • 丟擲 IOException
  • 檢視 #restoreMultiLayerNetworkAndNormalizer(InputStream, boolean)

restoreMultiLayerNetwork

public static MultiLayerNetwork restoreMultiLayerNetwork(@NonNull String path) throws IOException 

從檔案路徑中載入多層網路

  • 引數 path 要從中載入的文路徑
  • 返回載入的多層網路
  • 丟擲 IOException

restoreMultiLayerNetwork

public static MultiLayerNetwork restoreMultiLayerNetwork(@NonNull String path, boolean loadUpdater)
            throws IOException 

從檔案路徑中載入多層網路

  • 引數 path 要從中載入的文路徑
  • 引數loadUpdater是否載入更新器 
  • 返回載入的多層網路
  • 丟擲 IOException

restoreComputationGraph

public static ComputationGraph restoreComputationGraph(@NonNull String path) throws IOException 

從一個檔案路徑中載入計算圖

  • 引數 path 要從中載入的文路徑

restoreComputationGraph

public static ComputationGraph restoreComputationGraph(@NonNull String path, boolean loadUpdater)
            throws IOException 

從檔案路徑中載入計算圖

  • 引數 path 要從中載入的檔案路徑
  • 引數loadUpdater是否載入更新器 

restoreComputationGraph

public static ComputationGraph restoreComputationGraph(@NonNull InputStream is, boolean loadUpdater)
            throws IOException 

從輸入流中載入計算圖

  • 引數is 要從中載入的輸入流
  • 引數loadUpdater是否載入更新器 
  • 丟擲 IOException

restoreComputationGraph

public static ComputationGraph restoreComputationGraph(@NonNull InputStream is) throws IOException 

從輸入流中載入計算圖

  • 引數is 要從中載入的輸入流
  • 丟擲 IOException

restoreComputationGraph

public static ComputationGraph restoreComputationGraph(@NonNull File file) throws IOException 

從檔案中載入計算圖

  • 引數 file 要從中載入的檔案 
  • 丟擲 IOException

restoreComputationGraph

public static ComputationGraph restoreComputationGraph(@NonNull File file, boolean loadUpdater) throws IOException 

從檔案中載入計算圖

  • 引數 file 要從中載入的檔案
  • 引數loadUpdater是否載入更新器 
  • 丟擲 IOException

taskByModel

public static Task taskByModel(Model model) 

addNormalizerToModel

public static void addNormalizerToModel(File f, Normalizer<?> normalizer) 

此方法將歸一化器追加到給定的持久化模型中。

請注意:檔案應該是ModelSerializer早期儲存的模型檔案。

  • 引數  f 檔案 
  • 引數 normalizer 歸一化器

addObjectToFile

public static void addObjectToFile(@NonNull File f, @NonNull String key, @NonNull Object o)

使用Java物件序列化將物件新增到(已經存在的)模型檔案中。物件可以恢復 使用  {- link #getObjectFromFile(File, String)}

  • 引數 f 將物件新增到的檔案 
  • 引數 key 儲存物件的鍵
  • 引數 o 使用Java列化儲存的物件