Форум программистов, компьютерный форум, киберфорум
Konst2016
Войти
Регистрация
Восстановить пароль
Оценить эту запись

PyBrain - примеры

Запись от Konst2016 размещена 10.07.2021 в 14:26

Добрый всем день!)Хочу привести примеры как я использовал библиотеку машинного обучения-PyBrain, основы:
Python
1
2
3
4
5
6
7
8
9
#1)
from pybrain.tools.shortcuts import buildNetwork
from pybrain.structure import TanhLayer, SoftmaxLayer
net = buildNetwork(2, 3, 2, hiddenclass=TanhLayer, outclass=SoftmaxLayer)
"""
 Сеть рандомна инициализирована, проверим ее
"""
print('act', net.activate((2, 3)))
# act [0.68342348 0.31657652]
Python
1
2
3
4
5
6
7
8
9
10
11
12
#2)
from pybrain.tools.shortcuts import buildNetwork
from pybrain.structure import TanhLayer, SoftmaxLayer
"""
  Зададим везде биасы
"""
net = buildNetwork(2, 3, 2, hiddenclass=TanhLayer, outclass=SoftmaxLayer, bias=True)
"""
 Сеть рандомна инициализирована, проверим ее
"""
print('act', net.activate((2, 3)))
# act [0.79530177 0.20469823]
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#3)
from pybrain.tools.shortcuts import buildNetwork
from pybrain.structure import SigmoidLayer
from pybrain.datasets import SupervisedDataSet
from pybrain.supervised.trainers import BackpropTrainer
from pybrain.tools.customxml.networkwriter import NetworkWriter
from pybrain.tools.customxml.networkreader import NetworkReader
"""
   Сохраним сеть и веса и прочитаем ее
"""
 
#тут создаем структуру для обучения и набор данных для обучения - 2 измерение train вектора, 1 - измерение target вектора
ds = SupervisedDataSet(2, 1)
xorModel = [
   [(0,0), (0,)],
   [(0,1), (1,)],
   [(1,0), (1,)],
   [(1,1), (0,)],
]
for input, target in xorModel:
       ds.addSample(input, target)
 
#создаем нейросеть с 2 входами, 3 скрытых слоя и 1 выход
net = buildNetwork(2, 3, 1, bias=True, hiddenclass=SigmoidLayer)
 
trainer=BackpropTrainer(net, ds)
 
for epoch in range(4000):
       trainer.train()
 
NetworkWriter.writeToFile(net, 'wei.xml') 
 
net = NetworkReader.readFrom('wei.xml')
 
for x, _ in xorModel: 
  print("%s, act: %f"%(x, net.activate(x)))
 
"""
(0, 0), act: 0.089356
(0, 1), act: 0.877363
(1, 0), act: 0.906970
(1, 1), act: 0.119660
"""
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#4)
from pybrain.tools.shortcuts import buildNetwork
from pybrain.structure import SigmoidLayer
from pybrain.datasets import SupervisedDataSet
from pybrain.supervised.trainers import BackpropTrainer
from pybrain.tools.customxml.networkwriter import NetworkWriter
from pybrain.tools.customxml.networkreader import NetworkReader
"""
   Сохраним сеть и веса и прочитаем ее
"""
 
#тут создаем структуру для обучения и набор данных для обучения - 2 измерение train вектора, 1 - измерение target вектора
ds = SupervisedDataSet(2, 1)
xorModel = [
   [(0,0), (0,)],
   [(0,1), (1,)],
   [(1,0), (1,)],
   [(1,1), (0,)],
]
for input, target in xorModel:
       ds.addSample(input, target)
 
#создаем нейросеть с 2 входами, 3 скрытых слоя и 1 выход
net = buildNetwork(2, 3, 1, bias=True, hiddenclass=SigmoidLayer)
 
trainer=BackpropTrainer(net, ds)
 
"""
  Здесь неправильный вывод, должна проходить кросс-валидацию и завершаться
  при ее успехе, может набор не разделен
"""
print('doc meth:', trainer.trainUntilConvergence.__doc__)
trainer.trainUntilConvergence(
   # maxEpochs=3000
)
 
NetworkWriter.writeToFile(net, 'wei.xml') 
 
net = NetworkReader.readFrom('wei.xml')
 
for x, _ in xorModel: 
  print("%s, act: %f"%(x, net.activate(x)))
 
"""
doc meth: Train the module on the dataset until it converges.
 
        Return the module with the parameters that gave the minimal validation
        error.
 
        If no dataset is given, the dataset passed during Trainer
        initialization is used. validationProportion is the ratio of the dataset
        that is used for the validation dataset.
 
        If the training and validation data is already set, the splitPropotion is ignored
 
        If maxEpochs is given, at most that many epochs
        are trained. Each time validation error hits a minimum, try for
        continueEpochs epochs to find a better one.
(0, 0), act: 0.939055
(0, 1), act: 0.553175
(1, 0), act: -0.122791
(1, 1), act: -0.360873
""
Размещено в Без категории
Показов 469 Комментарии 0
Всего комментариев 0
Комментарии
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.