저는 최근 Windows 10 및 Python 3.5에서 GPU를 지원하는 mxnet (python 패키지)을 설치했습니다. 몇 가지 예제를 통해 실행하고 그들은 잘 작동하는 것..csv 교육 데이터를 mxnet의 길쌈 신경 네트워크에 어떻게 공급할 수 있습니까?
나는 이미 Rx에서 Mxnet을 사용했지만 스타일 머신 학습 패키지를 배우고 Python 딥 학습 패키지에 익숙하지 않은 나는 scikit-learn에 익숙하다. .csv training 데이터를 입력하는 방법을 이해하는 데 어려움을 겪고있다. 모델에.
간단한 CNN 이미지를 제공하고 싶습니다. 이미지는 28x28 픽셀이며 .csv에 병합 된 배열로 저장됩니다. 두 개의 .csv 파일이 있는데 하나는 교육용이고 다른 하나는 테스트 용입니다. 총 10 개 라벨 및 훈련 세트/테스트 세트에서 주위 300분의 1,000 이미지가 있습니다
label, pixel1, pixel2, ..., pixel784
0,...
1,...
: 각 .CSV 파일은 다음과 같은 구조를 가지고 있습니다. BTW R 거기에 (내가 R에 mxnet에 사용 된 것과 유사하다이 방법을 사용하고
import mxnet as mx
import pandas as pd
import numpy as np
import os
path = "C://users//me//data"
os.chdir(path)
df_train = pd.read_csv("train_28.csv")
df_test = pd.read_csv("test_28.csv")
keys = ['pixel.'+str(i) for i in range(1,785)]
X_train = df_train[keys].get_values().T
X_train = X_train.reshape((1200,28,28,1))
y_train = df_train['label'].get_values().reshape((1200,1))
#y_train = y_train.reshape((28,28,1,1200))
data = mx.symbol.Variable('data')
# First conv layer
conv1 = mx.symbol.Convolution(data=data, kernel=(5,5), num_filter=20)
tanh1 = mx.symbol.Activation(data=conv1, act_type="tanh")
pool1 = mx.symbol.Pooling(data=tanh1, pool_type="max",
kernel=(2,2), stride=(2,2))
# Second conv layer
conv2 = mx.symbol.Convolution(data=pool1, kernel=(5,5), num_filter=50)
tanh2 = mx.symbol.Activation(data=conv2, act_type="tanh")
pool2 = mx.symbol.Pooling(data=tanh2, pool_type="max",
kernel=(2,2), stride=(2,2))
# First fully connected
flatten = mx.symbol.Flatten(data=pool2)
fc1 = mx.symbol.FullyConnected(data=flatten, num_hidden=500)
tanh3 = mx.symbol.Activation(data=fc1, act_type="tanh")
# second fullc
fc2 = mx.symbol.FullyConnected(data=tanh3, num_hidden=10)
# loss
lenet = mx.symbol.SoftmaxOutput(data=fc2, name='softmax')
device = mx.gpu()
model = mx.model.FeedForward.create(lenet,
X = X_train,
y = y_train,
ctx = device,
num_epoch = 30)
: 나는 모델을 데이터를로드하고 훈련하는 다음 코드를 사용하고
[16:54:11] D:\chhong\mxnet\dmlc-core\include\dmlc/logging.h:235: [16:54:11] d:\chhong\mxnet\src\operator\./convolution-inl.h:347: Check failed: ksize_x <= dshape[3] && ksize_y <= dshape[2] kernel size exceed input
Traceback (most recent call last):
File "C:\Users\Me\Desktop\esempio_lenet.py", line 57, in <module>
num_epoch = 30)
File "C:\Users\Me\Anaconda3\lib\site-packages\mxnet-0.7.0-py3.5.egg\mxnet\model.py", line 901, in create
eval_batch_end_callback=eval_batch_end_callback)
File "C:\Users\Me\Anaconda3\lib\site-packages\mxnet-0.7.0-py3.5.egg\mxnet\model.py", line 745, in fit
self._init_params(dict(data.provide_data+data.provide_label))
File "C:\Users\Me\Anaconda3\lib\site-packages\mxnet-0.7.0-py3.5.egg\mxnet\model.py", line 485, in _init_params
arg_shapes, _, aux_shapes = self.symbol.infer_shape(**input_shapes)
File "C:\Users\Me\Anaconda3\lib\site-packages\mxnet-0.7.0-py3.5.egg\mxnet\symbol.py", line 453, in infer_shape
return self._infer_shape_impl(False, *args, **kwargs)
File "C:\Users\Me\Anaconda3\lib\site-packages\mxnet-0.7.0-py3.5.egg\mxnet\symbol.py", line 513, in _infer_shape_impl
ctypes.byref(complete)))
File "C:\Users\Me\Anaconda3\lib\site-packages\mxnet-0.7.0-py3.5.egg\mxnet\base.py", line 77, in check_call
raise MXNetError(py_str(_LIB.MXGetLastError()))
mxnet.base.MXNetError: InferShape Error in convolution0: [16:54:11] d:\chhong\mxnet\src\operator\./convolution-inl.h:347: Check failed: ksize_x <= dshape[3] && ksize_y <= dshape[2] kernel size exceed input
그리고 내가 뭘 잘못 알아낼 수 없습니다 : 그러나 나는) 내가 ... 더 나은 공연을 위해 파이썬을 사용할 필요가 R에 GPU를 사용할 수 없습니다 그러나 나는 다음과 같은 오류가 발생하고, 완벽하게 작동합니다. 누군가가이 오류에 대해 알려주고 위와 같은 구조로 .csv 파일을로드하고 mxnet 모델을 교육하는 방법에 대한 명확한 지침을 알려주십시오. 설명서를 살펴 보았지만 .csv 파일을 올바르게로드하는 방법을 스스로 알 수는 없었습니다 ...
이러한 .csv 파일을로드하는 절차를 요청하는 이유는 제가 주로 다룹니다. 그 형식으로 데이터를 저장하고 이러한 .csv 파일을 사용하여 폴더에 대해 스크립트를 실행하고 심층 컨볼 루션 신경 네트워크를 학습하는 데 사용할 준비가되어있는 것은 매우 중요합니다.
내가 작성한 예제 코드를 재현하려면 train 및 test .csv 파일 집합을 here 사용할 수 있어야합니다.
이 일치하면
고맙다. 내가 직면 한 문제가 해결되었습니다. 그러나 나는 MXnet과 관련하여 다른 문제를 계속 겪었으며 Python을 사용하여 tensorflow로 이동하기로 결정했습니다. MXnet과 비교하여 훨씬 더 직관적 인 문서를 찾을 수 있기 때문입니다. 말하자면, 여러분이나 다른 누군가가 MXnet에서 좀 더 빛을 발할 수있는 튜토리얼이나 리소스를 제안 할 수 있다면, 나는 읽을 것이 기쁩니다. – mickkk