Ifi6057w11: erinevus redaktsioonide vahel

Allikas: Lambda
Mine navigeerimisribale Mine otsikasti
PriitJ (arutelu | kaastöö)
PriitJ (arutelu | kaastöö)
 
25. rida: 25. rida:
             inv_data += data[i*28: (i+1)*28]
             inv_data += data[i*28: (i+1)*28]
         return inv_data
         return inv_data
</pre>
<pre>
import learning
import random
def load_mnist_img(fn):
    img_list = []
    with open(fn, "rb") as f:
        f.read(16)
        chunk_size = 28*28
        chunk = f.read(chunk_size)
        while len(chunk) == chunk_size:
            img_list.append([px/256 for px in (list(chunk))])
            chunk = f.read(chunk_size)
    return img_list
def load_mnist_label(fn):
    label_list = []
    with open(fn, "rb") as f:
        f.read(8)
        chunk = f.read(1)
        while chunk:
            label_list.append((list(chunk)))
            chunk = f.read(1)
    return label_list
train_img = load_mnist_img("aima-data\\MNIST\\train-images-idx3-ubyte")
print(len(train_img))
train_labels = load_mnist_label("aima-data\\MNIST\\train-labels-idx1-ubyte")
print(len(train_labels))
#print(train_labels[:20])
train_data = [pixels+classif
              for pixels, classif
              in zip(train_img, train_labels)]
train_ds = learning.DataSet(random.sample(train_data, 1000))
print("training...")
nn = learning.NeuralNetLearner(train_ds,
                    hidden_layer_sizes=[20],
                              epochs=10)
test_img = load_mnist_img("aima-data\\MNIST\\t10k-images-idx3-ubyte")
print(len(test_img))
test_labels = load_mnist_label("aima-data\\MNIST\\t10k-labels-idx1-ubyte")
print(len(test_labels))
test_data = [pixels+classif
              for pixels, classif
              in zip(test_img, test_labels)]
test_ds = learning.DataSet(random.sample(test_data, 100))
for i in range(5):
    print("tegelikult", test_labels[i], "narvivork arvab", nn(test_img[i]))
print(learning.err_ratio(nn, test_ds))
</pre>
</pre>

Viimane redaktsioon: 29. november 2017, kell 15:14

11. Nädal

Perceptron. Närvivõrgud. AIMA 18.6.3-18.7.4

Lineaarne klassifitseerija Pythonis.

Loenguslaidid: PDF


Harjutustund

bmp laadimine (paint.net 8-bit grayscale peal VIST töötab)

import struct
def load_bmp(fn):
    with open(fn, "rb") as f:
        header = f.read(54)
        offset = header[10:14]
        offs = struct.unpack("@L", offset)
        f.read(offs[0]-54)
        data = list(f.read(28*28))
        inv_data = []
        for i in range(27, -1, -1):
            inv_data += data[i*28: (i+1)*28]
        return inv_data


import learning
import random

def load_mnist_img(fn):
    img_list = []
    with open(fn, "rb") as f:
        f.read(16)
        chunk_size = 28*28
        chunk = f.read(chunk_size)
        while len(chunk) == chunk_size:
            img_list.append([px/256 for px in (list(chunk))])
            chunk = f.read(chunk_size)
    return img_list

def load_mnist_label(fn):
    label_list = []
    with open(fn, "rb") as f:
        f.read(8)
        chunk = f.read(1)
        while chunk:
            label_list.append((list(chunk)))
            chunk = f.read(1)
    return label_list


train_img = load_mnist_img("aima-data\\MNIST\\train-images-idx3-ubyte")
print(len(train_img))
train_labels = load_mnist_label("aima-data\\MNIST\\train-labels-idx1-ubyte")
print(len(train_labels))
#print(train_labels[:20])

train_data = [pixels+classif
              for pixels, classif
              in zip(train_img, train_labels)]

train_ds = learning.DataSet(random.sample(train_data, 1000))
print("training...")
nn = learning.NeuralNetLearner(train_ds,
                    hidden_layer_sizes=[20],
                               epochs=10)

test_img = load_mnist_img("aima-data\\MNIST\\t10k-images-idx3-ubyte")
print(len(test_img))
test_labels = load_mnist_label("aima-data\\MNIST\\t10k-labels-idx1-ubyte")
print(len(test_labels))

test_data = [pixels+classif
              for pixels, classif
              in zip(test_img, test_labels)]

test_ds = learning.DataSet(random.sample(test_data, 100))

for i in range(5):
    print("tegelikult", test_labels[i], "narvivork arvab", nn(test_img[i]))

print(learning.err_ratio(nn, test_ds))