|
@@ -0,0 +1,622 @@
|
|
|
|
|
+{
|
|
|
|
|
+ "cells": [
|
|
|
|
|
+ {
|
|
|
|
|
+ "cell_type": "code",
|
|
|
|
|
+ "execution_count": 1,
|
|
|
|
|
+ "id": "dynamic-invitation",
|
|
|
|
|
+ "metadata": {},
|
|
|
|
|
+ "outputs": [],
|
|
|
|
|
+ "source": [
|
|
|
|
|
+ "from library.exercise import Exercise\n",
|
|
|
|
|
+ "from library.dataset import DataSet, TrainTestData\n",
|
|
|
|
|
+ "from library.interfaces import GanBaseClass, TesterNetworkBaseClass"
|
|
|
|
|
+ ]
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ "cell_type": "code",
|
|
|
|
|
+ "execution_count": 2,
|
|
|
|
|
+ "id": "modern-battery",
|
|
|
|
|
+ "metadata": {},
|
|
|
|
|
+ "outputs": [],
|
|
|
|
|
+ "source": [
|
|
|
|
|
+ "import numpy as np"
|
|
|
|
|
+ ]
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ "cell_type": "code",
|
|
|
|
|
+ "execution_count": 3,
|
|
|
|
|
+ "id": "absolute-fruit",
|
|
|
|
|
+ "metadata": {},
|
|
|
|
|
+ "outputs": [],
|
|
|
|
|
+ "source": [
|
|
|
|
|
+ "def createTesterNetwork():\n",
|
|
|
|
|
+ " return TesterNetworkBaseClass()"
|
|
|
|
|
+ ]
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ "cell_type": "code",
|
|
|
|
|
+ "execution_count": 4,
|
|
|
|
|
+ "id": "seventh-flood",
|
|
|
|
|
+ "metadata": {},
|
|
|
|
|
+ "outputs": [],
|
|
|
|
|
+ "source": [
|
|
|
|
|
+ "def loadFailingDataset():\n",
|
|
|
|
|
+ " data0 = np.array(range(100)).reshape((25,4))\n",
|
|
|
|
|
+ " return DataSet(data0=np.concatenate((data0, [[0,0,0,0]])), data1=data0 * 2)\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "def loadEqualDataset():\n",
|
|
|
|
|
+ " data0 = np.array(range(100)).reshape((25,4))\n",
|
|
|
|
|
+ " return DataSet(data0=data0, data1=data0 * 2)\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "def loadDataset():\n",
|
|
|
|
|
+ " data0 = np.array(range(100)).reshape((25,4))\n",
|
|
|
|
|
+ " return DataSet(data0=data0[0:12], data1=data0 * 2)"
|
|
|
|
|
+ ]
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ "cell_type": "code",
|
|
|
|
|
+ "execution_count": 5,
|
|
|
|
|
+ "id": "fabulous-willow",
|
|
|
|
|
+ "metadata": {},
|
|
|
|
|
+ "outputs": [],
|
|
|
|
|
+ "source": [
|
|
|
|
|
+ "exercise = Exercise(createTesterNetwork)"
|
|
|
|
|
+ ]
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ "cell_type": "code",
|
|
|
|
|
+ "execution_count": 6,
|
|
|
|
|
+ "id": "direct-vacuum",
|
|
|
|
|
+ "metadata": {},
|
|
|
|
|
+ "outputs": [],
|
|
|
|
|
+ "source": [
|
|
|
|
|
+ "gan = GanBaseClass()"
|
|
|
|
|
+ ]
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ "cell_type": "code",
|
|
|
|
|
+ "execution_count": 7,
|
|
|
|
|
+ "id": "bored-flash",
|
|
|
|
|
+ "metadata": {
|
|
|
|
|
+ "scrolled": true
|
|
|
|
|
+ },
|
|
|
|
|
+ "outputs": [
|
|
|
|
|
+ {
|
|
|
|
|
+ "name": "stdout",
|
|
|
|
|
+ "output_type": "stream",
|
|
|
|
|
+ "text": [
|
|
|
|
|
+ "### Start exercise for synthetic point generator\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "====== Step {shuffleStep + 1}/{self.numOfShuffles} =======\n",
|
|
|
|
|
+ "-> Spliting data to slices\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=20, |class 1|=20\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=20, |class 1|=20\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=20, |class 1|=20\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=20, |class 1|=20\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=20, |class 1|=20\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "====== Step {shuffleStep + 1}/{self.numOfShuffles} =======\n",
|
|
|
|
|
+ "-> Spliting data to slices\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=20, |class 1|=20\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=20, |class 1|=20\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=20, |class 1|=20\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=20, |class 1|=20\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=20, |class 1|=20\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "====== Step {shuffleStep + 1}/{self.numOfShuffles} =======\n",
|
|
|
|
|
+ "-> Spliting data to slices\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=20, |class 1|=20\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=20, |class 1|=20\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=20, |class 1|=20\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=20, |class 1|=20\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=20, |class 1|=20\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "====== Step {shuffleStep + 1}/{self.numOfShuffles} =======\n",
|
|
|
|
|
+ "-> Spliting data to slices\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=20, |class 1|=20\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=20, |class 1|=20\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=20, |class 1|=20\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=20, |class 1|=20\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=20, |class 1|=20\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "====== Step {shuffleStep + 1}/{self.numOfShuffles} =======\n",
|
|
|
|
|
+ "-> Spliting data to slices\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=20, |class 1|=20\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=20, |class 1|=20\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=20, |class 1|=20\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=20, |class 1|=20\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=20, |class 1|=20\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "### Exercise is done.\n"
|
|
|
|
|
+ ]
|
|
|
|
|
+ }
|
|
|
|
|
+ ],
|
|
|
|
|
+ "source": [
|
|
|
|
|
+ "exercise.run(gan, loadEqualDataset())"
|
|
|
|
|
+ ]
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ "cell_type": "code",
|
|
|
|
|
+ "execution_count": 8,
|
|
|
|
|
+ "id": "described-bidder",
|
|
|
|
|
+ "metadata": {},
|
|
|
|
|
+ "outputs": [
|
|
|
|
|
+ {
|
|
|
|
|
+ "name": "stdout",
|
|
|
|
|
+ "output_type": "stream",
|
|
|
|
|
+ "text": [
|
|
|
|
|
+ "### Start exercise for synthetic point generator\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "====== Step {shuffleStep + 1}/{self.numOfShuffles} =======\n",
|
|
|
|
|
+ "-> Spliting data to slices\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=9, |class 1|=20\n",
|
|
|
|
|
+ "-> create 11 synthetic samples\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=9, |class 1|=20\n",
|
|
|
|
|
+ "-> create 11 synthetic samples\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=9, |class 1|=20\n",
|
|
|
|
|
+ "-> create 11 synthetic samples\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=9, |class 1|=20\n",
|
|
|
|
|
+ "-> create 11 synthetic samples\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=12, |class 1|=20\n",
|
|
|
|
|
+ "-> create 8 synthetic samples\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "====== Step {shuffleStep + 1}/{self.numOfShuffles} =======\n",
|
|
|
|
|
+ "-> Spliting data to slices\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=9, |class 1|=20\n",
|
|
|
|
|
+ "-> create 11 synthetic samples\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=9, |class 1|=20\n",
|
|
|
|
|
+ "-> create 11 synthetic samples\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=9, |class 1|=20\n",
|
|
|
|
|
+ "-> create 11 synthetic samples\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=9, |class 1|=20\n",
|
|
|
|
|
+ "-> create 11 synthetic samples\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=12, |class 1|=20\n",
|
|
|
|
|
+ "-> create 8 synthetic samples\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "====== Step {shuffleStep + 1}/{self.numOfShuffles} =======\n",
|
|
|
|
|
+ "-> Spliting data to slices\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=9, |class 1|=20\n",
|
|
|
|
|
+ "-> create 11 synthetic samples\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=9, |class 1|=20\n",
|
|
|
|
|
+ "-> create 11 synthetic samples\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=9, |class 1|=20\n",
|
|
|
|
|
+ "-> create 11 synthetic samples\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=9, |class 1|=20\n",
|
|
|
|
|
+ "-> create 11 synthetic samples\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=12, |class 1|=20\n",
|
|
|
|
|
+ "-> create 8 synthetic samples\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "====== Step {shuffleStep + 1}/{self.numOfShuffles} =======\n",
|
|
|
|
|
+ "-> Spliting data to slices\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=9, |class 1|=20\n",
|
|
|
|
|
+ "-> create 11 synthetic samples\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=9, |class 1|=20\n",
|
|
|
|
|
+ "-> create 11 synthetic samples\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=9, |class 1|=20\n",
|
|
|
|
|
+ "-> create 11 synthetic samples\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=9, |class 1|=20\n",
|
|
|
|
|
+ "-> create 11 synthetic samples\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=12, |class 1|=20\n",
|
|
|
|
|
+ "-> create 8 synthetic samples\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "====== Step {shuffleStep + 1}/{self.numOfShuffles} =======\n",
|
|
|
|
|
+ "-> Spliting data to slices\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=9, |class 1|=20\n",
|
|
|
|
|
+ "-> create 11 synthetic samples\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=9, |class 1|=20\n",
|
|
|
|
|
+ "-> create 11 synthetic samples\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=9, |class 1|=20\n",
|
|
|
|
|
+ "-> create 11 synthetic samples\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=9, |class 1|=20\n",
|
|
|
|
|
+ "-> create 11 synthetic samples\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "\n",
|
|
|
|
|
+ "------ Step {shuffleStep + 1}/{self.numOfShuffles}: Slice {sliceNr + 1}/{self.numOfSlices} -------\n",
|
|
|
|
|
+ "-> Train generator for synthetic samples\n",
|
|
|
|
|
+ "Train GAN with |class 0|=12, |class 1|=20\n",
|
|
|
|
|
+ "-> create 8 synthetic samples\n",
|
|
|
|
|
+ "-> create network\n",
|
|
|
|
|
+ "-> train network\n",
|
|
|
|
|
+ "-> test network\n",
|
|
|
|
|
+ "-> check results\n",
|
|
|
|
|
+ "### Exercise is done.\n"
|
|
|
|
|
+ ]
|
|
|
|
|
+ }
|
|
|
|
|
+ ],
|
|
|
|
|
+ "source": [
|
|
|
|
|
+ "exercise.run(gan, loadDataset())"
|
|
|
|
|
+ ]
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ "cell_type": "code",
|
|
|
|
|
+ "execution_count": 10,
|
|
|
|
|
+ "id": "peaceful-distribution",
|
|
|
|
|
+ "metadata": {},
|
|
|
|
|
+ "outputs": [
|
|
|
|
|
+ {
|
|
|
|
|
+ "name": "stdout",
|
|
|
|
|
+ "output_type": "stream",
|
|
|
|
|
+ "text": [
|
|
|
|
|
+ "Expected class 0 to be the minority class but class 0 is bigger than class 1.\n"
|
|
|
|
|
+ ]
|
|
|
|
|
+ }
|
|
|
|
|
+ ],
|
|
|
|
|
+ "source": [
|
|
|
|
|
+ "try:\n",
|
|
|
|
|
+ " exercise.run(gan, loadFailingDataset())\n",
|
|
|
|
|
+ "except AttributeError as e:\n",
|
|
|
|
|
+ " print(e)"
|
|
|
|
|
+ ]
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ "cell_type": "code",
|
|
|
|
|
+ "execution_count": null,
|
|
|
|
|
+ "id": "finite-hamburg",
|
|
|
|
|
+ "metadata": {},
|
|
|
|
|
+ "outputs": [],
|
|
|
|
|
+ "source": []
|
|
|
|
|
+ }
|
|
|
|
|
+ ],
|
|
|
|
|
+ "metadata": {
|
|
|
|
|
+ "kernelspec": {
|
|
|
|
|
+ "display_name": "Python 3",
|
|
|
|
|
+ "language": "python",
|
|
|
|
|
+ "name": "python3"
|
|
|
|
|
+ },
|
|
|
|
|
+ "language_info": {
|
|
|
|
|
+ "codemirror_mode": {
|
|
|
|
|
+ "name": "ipython",
|
|
|
|
|
+ "version": 3
|
|
|
|
|
+ },
|
|
|
|
|
+ "file_extension": ".py",
|
|
|
|
|
+ "mimetype": "text/x-python",
|
|
|
|
|
+ "name": "python",
|
|
|
|
|
+ "nbconvert_exporter": "python",
|
|
|
|
|
+ "pygments_lexer": "ipython3",
|
|
|
|
|
+ "version": "3.8.5"
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ "nbformat": 4,
|
|
|
|
|
+ "nbformat_minor": 5
|
|
|
|
|
+}
|