self.DATA_SOURCE = confdata['dataPath']
def get_learning_data(self):
+ '''
+
+ :return: トレーニングデータ、トレーニングラベル、テストデータ、テストラベル
+ '''
+
target_data = self.parse_data_files()
datasets: List(numpy.ndarray) = []
- labels: List(str) =[]
+ labels: List(str) = []
for cdata in target_data:
datasets.append(cdata.get_array_data())
labels.append(cdata.getLable())
- return numpy.array(datasets), numpy.array(labels)
+ center = len(datasets)//2
+ offset = len(datasets) % 2
+ center = center + offset
+
+ return numpy.array(datasets[:center]), numpy.array(labels[:center]), numpy.array(datasets[center:]), numpy.array(labels[center:])
def __check_data(self, data: Data):
+++ /dev/null
-from chainer import Function, gradient_check, report, training, utils, Variable
-from chainer import datasets, iterators, optimizers, serializers
-from chainer import Link, Chain, ChainList
-import chainer.functions as F
-import chainer.links as L
-from chainer.training import extensions
-import math
-from DataReader import DataReader
-from DatasetGenerator import DatasetGenerator
-
-from Data import Data
-
-class MyChain(Chain):
- def __init__(self):
- super(MyChain,self).__init__(
- l1=L.Linear(500,100),
- l2=L.Linear(100,100),
- l3=L.Linear(100,10),
- )
-
- def __call__(self,x,t):
- return F.softmax_cross_entropy(self.fwd(x),t)
-
- def fwd(self,x):
- h1=F.relu(self.l1(x))
- h2=F.relu(self.l2(h1))
- return self.l3(h2)
-
-
-class MyClassifer(Chain):
- def __init__(self,predictor):
- super(MyClassifer,self).__init__()
- with self.init_scope():
- self.predictor = predictor
- def __call__(self,x,t):
- y = self.predictor(x)
- loss = F.softmax_cross_entropy(y,t)
- accuracy = F.accuracy(y,t)
- report({'loss': loss, 'accuracy': accuracy}, self)
- return loss;
-
-def main():
-# try:
- #モデルを準備
- model = MyChain()
-
- #オプティマイザを準備
- optimizer = optimizers.Adam()
- optimizer.setup(model)
-
- #データを準備
- train,test = dataPreparation()
-
- updater = training.StandardUpdater(train,optimizer)
- trainer = training.Trainer(updater,(10,'epoch'))
- trainer.extend(extensions.progress_bar)
- trainer.run()
-
-def dataPreparation():
- return "hoge"
-
-def dataPreparation_back():
- # データ用意
- train_data = []
- train_label = []
- # 元データ生成
- reader = DataReader() # type DataReader
- dgene = DatasetGenerator() # type DataSetGenerator
- dataist = []
- dataList = reader.createLearningData()
- train_data, train_label = dgene.generateDataset(dataList)
- dust, batchsize = math.modf(len(dataList) / 2)
- batchsize = int(batchsize)
- train = datasets.tuple_dataset.TupleDataset(train_data[0:batchsize], train_label[0:batchsize])
- test = datasets.tuple_dataset.TupleDataset(train_data[batchsize:], train_label[batchsize:])
- return train,test
-
-main()
\ No newline at end of file
+++ /dev/null
-import os
-import yaml
-
-DATA_SOURCE = ''
-
-with open('config\\toolconf.yml' , 'r') as yml:
- data = yaml.load(yml)
- # 設定値の読み込み
- DATA_SOURCE = data['dataPath']
-
-def find_all_files(directory):
- for root, dirs, files in os.walk(directory):
- yield root
- for file in files:
- yield os.path.join(root,file)
-
-for file in find_all_files(DATA_SOURCE):
- print(file)
\ No newline at end of file