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列化儲存的物件