cifar10
Version:
CIFAR-10 data set for nodejs / browser
379 lines (346 loc) • 14.1 kB
HTML
<html>
<head>
<title>CIFAR-10 Client Demo</title>
<script src="cifar10-client.min.js"></script>
</head>
<style>
canvas {
height: 64px;
}
#output {
height: 136px;
overflow: auto;
}
.flexTable {
display: flex;
flex-direction: column;
}
.flexTable > div {
display: flex;
align-items: center;
width: 100%;
margin: 10px;
}
.flexTable > div > :not(script) {
display: flex;
justify-content: center;
flex-direction: column;
min-height: 25px;
padding: 0;
margin: 3px 0 3px 0;
}
.flexTable > div > div:nth-child(1){
min-width: 100px;
margin-right: 10px;
justify-content: flex-end;
}
.flexTable > div > div > input[type="submit"], .flexTable > div > div > a {
align-self: flex-start ;
}
.flexTable > div > div > span.view-calendar > input {
width: 95%;
}
.lengthOutput {
height: 21px;
}
</style>
<script>
window.addEventListener("load", () => {
const fillOutput = images => {
images.forEach(image => {
const canvas = document.createElement("canvas")
canvas.height = 32
canvas.width = 32
const context = canvas.getContext("2d")
CIFAR10.render(image, context)
output.appendChild(canvas)
})
}
// Get random
Array.from(document.querySelectorAll(".getRandom")).forEach(button => {
const category = button.parentNode.parentNode.querySelector(".label").innerHTML.toLowerCase()
button.addEventListener("click", async () => {
output.innerHTML = ""
const data = await CIFAR10[category].training.get()
fillOutput([data])
})
})
// Get Index List
Array.from(document.querySelectorAll(".getIndexList")).forEach(button => {
const category = button.parentNode.parentNode.querySelector(".label").innerHTML.toLowerCase()
button.addEventListener("click", async () => {
const indexList = button.parentNode.querySelector("input").value.replace(/\s/g, "")
.split(",").map(number => parseInt(number))
output.innerHTML = ""
const data = await CIFAR10[category].training.get({category, indexList})
fillOutput(data)
})
})
// Get Range
Array.from(document.querySelectorAll(".getRange")).forEach(button => {
const category = button.parentNode.parentNode.querySelector(".label").innerHTML.toLowerCase()
button.addEventListener("click", async () => {
const startIndex = parseInt(button.parentNode.querySelector(".rangeStartInput").value) | 0
const endIndex = parseInt(button.parentNode.querySelector(".rangeEndInput").value) || startIndex+1
output.innerHTML = ""
const data = await CIFAR10[category].range(startIndex, endIndex)
fillOutput(data)
})
})
// Get Training
getTrainingButton.addEventListener("click", async () => {
output.innerHTML = ""
const data = await CIFAR10.training.get(parseInt(getInput.value)|0)
fillOutput(data)
})
// Get Test
getTestButton.addEventListener("click", async () => {
output.innerHTML = ""
const data = await CIFAR10.test.get(parseInt(getInput.value)|0)
fillOutput(data)
})
// Lengths
printTrainingLength.addEventListener("click", async () => {
const length = await CIFAR10.training.length()
lengthOutput.innerHTML = length
})
printTestLength.addEventListener("click", async () => {
const length = await CIFAR10.test.length()
lengthOutput.innerHTML = length
})
Array.from(document.querySelectorAll(".printTrainingLength")).forEach(button => {
const category = button.parentNode.parentNode.querySelector(".label").innerHTML.toLowerCase()
const output = button.parentNode.querySelector(".lengthOutput")
button.addEventListener("click", async () => {
output.innerHTML = ""
const length = await CIFAR10[category].training.length()
output.innerHTML = length
})
})
Array.from(document.querySelectorAll(".printTestLength")).forEach(button => {
const category = button.parentNode.parentNode.querySelector(".label").innerHTML.toLowerCase()
const output = button.parentNode.querySelector(".lengthOutput")
button.addEventListener("click", async () => {
output.innerHTML = ""
const length = await CIFAR10[category].test.length()
output.innerHTML = length
})
})
// Set
setButton.addEventListener("click", () => {
CIFAR10.set(parseInt(setTrainingSize.value), parseInt(setTestSize.value))
})
resetButton.addEventListener("click", () => {
CIFAR10.reset()
})
})
</script>
<body>
<div id="output"></div>
<hr>
<div>
<input type="number" id="setTrainingSize" placeholder="Training">
<input type="number" id="setTestSize" placeholder="Test">
<button id="setButton">Set</button>
</div>
<div>
<input type="number" id="getInput" value="100">
<button id="getTrainingButton">Get Training</button>
<button id="getTestButton">Get Test</button>
</div>
<div>
<button id="resetButton">Reset</button>
</div>
<div>
<button id="printTrainingLength">Print Training Length</button>
<button id="printTestLength">Print Test Length</button>
<span id="lengthOutput"></span>
</div>
<hr>
<span>Using images from the training split</span>
<div class="flexTable">
<div>
<div class="label">Airplane</div>
<div>
<button class="getRandom">Get Random</button>
<button class="getIndexList">Get Index List</button>
<input type="text" placeholder="comma separated integers..">
</div>
<div>
<button class="getRange">Get Range</button>
<input type="number" class="rangeStartInput" placeholder="start index">
<input type="number" class="rangeEndInput" placeholder="end index">
</div>
<div>
<button class="printTrainingLength">Print Training Length</button>
<button class="printTestLength">Print Test Length</button>
<div class="lengthOutput"></div>
</div>
</div>
<div>
<div class="label">Automobile</div>
<div>
<button class="getRandom">Get Random</button>
<button class="getIndexList">Get Index List</button>
<input type="text" placeholder="comma separated integers..">
</div>
<div>
<button class="getRange">Get Range</button>
<input type="number" class="rangeStartInput" placeholder="start index">
<input type="number" class="rangeEndInput" placeholder="end index">
</div>
<div>
<button class="printTrainingLength">Print Training Length</button>
<button class="printTestLength">Print Test Length</button>
<div class="lengthOutput"></div>
</div>
</div>
<div>
<div class="label">Bird</div>
<div>
<button class="getRandom">Get Random</button>
<button class="getIndexList">Get Index List</button>
<input type="text" placeholder="comma separated integers..">
</div>
<div>
<button class="getRange">Get Range</button>
<input type="number" class="rangeStartInput" placeholder="start index">
<input type="number" class="rangeEndInput" placeholder="end index">
</div>
<div>
<button class="printTrainingLength">Print Training Length</button>
<button class="printTestLength">Print Test Length</button>
<div class="lengthOutput"></div>
</div>
</div>
<div>
<div class="label">Cat</div>
<div>
<button class="getRandom">Get Random</button>
<button class="getIndexList">Get Index List</button>
<input type="text" placeholder="comma separated integers..">
</div>
<div>
<button class="getRange">Get Range</button>
<input type="number" class="rangeStartInput" placeholder="start index">
<input type="number" class="rangeEndInput" placeholder="end index">
</div>
<div>
<button class="printTrainingLength">Print Training Length</button>
<button class="printTestLength">Print Test Length</button>
<div class="lengthOutput"></div>
</div>
</div>
<div>
<div class="label">Deer</div>
<div>
<button class="getRandom">Get Random</button>
<button class="getIndexList">Get Index List</button>
<input type="text" placeholder="comma separated integers..">
</div>
<div>
<button class="getRange">Get Range</button>
<input type="number" class="rangeStartInput" placeholder="start index">
<input type="number" class="rangeEndInput" placeholder="end index">
</div>
<div>
<button class="printTrainingLength">Print Training Length</button>
<button class="printTestLength">Print Test Length</button>
<div class="lengthOutput"></div>
</div>
</div>
<div>
<div class="label">Dog</div>
<div>
<button class="getRandom">Get Random</button>
<button class="getIndexList">Get Index List</button>
<input type="text" placeholder="comma separated integers..">
</div>
<div>
<button class="getRange">Get Range</button>
<input type="number" class="rangeStartInput" placeholder="start index">
<input type="number" class="rangeEndInput" placeholder="end index">
</div>
<div>
<button class="printTrainingLength">Print Training Length</button>
<button class="printTestLength">Print Test Length</button>
<div class="lengthOutput"></div>
</div>
</div>
<div>
<div class="label">Frog</div>
<div>
<button class="getRandom">Get Random</button>
<button class="getIndexList">Get Index List</button>
<input type="text" placeholder="comma separated integers..">
</div>
<div>
<button class="getRange">Get Range</button>
<input type="number" class="rangeStartInput" placeholder="start index">
<input type="number" class="rangeEndInput" placeholder="end index">
</div>
<div>
<button class="printTrainingLength">Print Training Length</button>
<button class="printTestLength">Print Test Length</button>
<div class="lengthOutput"></div>
</div>
</div>
<div>
<div class="label">Horse</div>
<div>
<button class="getRandom">Get Random</button>
<button class="getIndexList">Get Index List</button>
<input type="text" placeholder="comma separated integers..">
</div>
<div>
<button class="getRange">Get Range</button>
<input type="number" class="rangeStartInput" placeholder="start index">
<input type="number" class="rangeEndInput" placeholder="end index">
</div>
<div>
<button class="printTrainingLength">Print Training Length</button>
<button class="printTestLength">Print Test Length</button>
<div class="lengthOutput"></div>
</div>
</div>
<div>
<div class="label">Ship</div>
<div>
<button class="getRandom">Get Random</button>
<button class="getIndexList">Get Index List</button>
<input type="text" placeholder="comma separated integers..">
</div>
<div>
<button class="getRange">Get Range</button>
<input type="number" class="rangeStartInput" placeholder="start index">
<input type="number" class="rangeEndInput" placeholder="end index">
</div>
<div>
<button class="printTrainingLength">Print Training Length</button>
<button class="printTestLength">Print Test Length</button>
<div class="lengthOutput"></div>
</div>
</div>
<div>
<div class="label">Truck</div>
<div>
<button class="getRandom">Get Random</button>
<button class="getIndexList">Get Index List</button>
<input type="text" placeholder="comma separated integers..">
</div>
<div>
<button class="getRange">Get Range</button>
<input type="number" class="rangeStartInput" placeholder="start index">
<input type="number" class="rangeEndInput" placeholder="end index">
</div>
<div>
<button class="printTrainingLength">Print Training Length</button>
<button class="printTestLength">Print Test Length</button>
<div class="lengthOutput"></div>
</div>
</div>
</div>
</body>
</html>