Skip to content

organi2e/C2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

83 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

C₂: Corpus Container

Corpus container managed by CoreData for macOS/iOS/tvOS/watchOS to evaluate machine learning with Swift

Available corpus

Example 1: Build MNIST

no error handling

//Download and parse the archived data from web and build CoreData persistent store
let container = Container(delegate: nil)
container.build(series: MNIST.train)

Example 2: Use MNIST

no error handling

let context = container.viewContext

//Fetch 0 indices
let index = try!context.index(series: MNIST.train, labels: ["0"]).first!

//Get a label from the index
let label = index.label //"0"

//Get 0 images
let images = index.contents as! [Image]
//let label = images.first!.index.label//"0"

//Get a 0 image
let image = images.first!

Example 3: Get Float array

no error handling

let vector: [Float] = image.array

Example 4: Get ciimage and save as png file

no error handling

let ciimage = image.ciimage
let ciContext = CIContext()
let path = URL(fileURLWithPath: ANY FILEPATH)
try!ciContext.writeTIFFRepresentation(of: ciimage, to: url, format: ciContext.workingFormat, colorSpace: ciContext.workingColorSpace!, options: [:])

Example 5: Get all MNIST train Images

let indices = try!context.index(series: MNIST.train)
let images = indices.reduce([]) {
  $0 + $1.contents.flatMap{$0 as? Image}
}

Exmaple 6: Get all labels from CIFAR10 and FashionMNIST

let cifar10_labels = context.label(series: CIFAR10.batch1)
let fashionMNIST_labels = context.label(series: FashionMNIST.train)