When I try update my model I just get a nil error here.
private static func saveUpdatedModel(_ updateContext: MLUpdateContext) {
let updatedModel = updateContext.model
let fileManager = FileManager.default
do {
// Create a directory for the updated model.
try fileManager.createDirectory(at: tempUpdatedModelURL,
withIntermediateDirectories: true,
attributes: nil)
// Save the updated model to temporary filename.
try updatedModel.write(to: tempUpdatedModelURL)
print("tempUpdatedModelURL - \(tempUpdatedModelURL)")
// Replace any previously updated model with this one.
_ = try fileManager.replaceItemAt(updatedModelURL,
withItemAt: tempUpdatedModelURL)
print("Updated model saved to:\n\t\(updatedModelURL)")
} catch let error {
print("Could not save updated model to the file system: \(error)")
return
}
}
It creates the update task fine and the printed URL below is correct.
extension UpdatableDrawingClassifier {
/// Creates an update model from a given model URL and training data.
///
/// - Parameters:
/// - url: The location of the model the Update Task will update.
/// - trainingData: The training data the Update Task uses to update the model.
/// - completionHandler: A closure the Update Task calls when it finishes updating the model.
/// - Tag: CreateUpdateTask
static func updateModel(at url: URL,
with trainingData: MLBatchProvider,
completionHandler: @escaping (MLUpdateContext) - Void) {
// Create an Update Task.
guard let updateTask = try? MLUpdateTask(forModelAt: url,
trainingData: trainingData,
configuration: nil,
completionHandler: completionHandler)
else {
print("Could't create an MLUpdateTask.")
return
}
updateTask.resume()
print("Updating Model - updateTask.resume()")
print("URL - \(url)")
}
}
Topic:
Programming Languages
SubTopic:
Swift
Tags:
Swift
Swift Student Challenge
Machine Learning
Core ML