2017-01-16 10 views
3

をコードしていないone_hot私は次のようにcntk.utils.one_hotを使用しようとしている:CNTK Pythonの - プロトタイプ

# actions is numpy array of shape (32, 1) and _output_shape is 6 
actions = one_hot(actions, self._output_shape) 

しかし、それはそのクラスnumpy.float32がサポートされていません文句を言います。

私はPythonのリストに変換しようとしました:

actions = one_hot(list(actions), self._output_shape) 

私は次のエラーを取得しています:

File "/home/malmo_user/Workspace/malmo-collab/msrc-rl/model/backend/cntk.py", line 213, in train 
    actions = one_hot(list(actions), self._output_shape) 
    File "/home/malmo_user/anaconda3/envs/cntk-py34/lib/python3.4/site-packages/cntk/utils/swig_helper.py", line 58, in wrapper 
    result = f(*args, **kwds) 
    File "/home/malmo_user/anaconda3/envs/cntk-py34/lib/python3.4/site-packages/cntk/utils/__init__.py", line 76, in one_hot 
    value = cntk_py.Value.create_one_hot_float(num_classes, batch, device, False) 
NotImplementedError: Wrong number or type of arguments for overloaded function 'Value_create_one_hot_float'. 
    Possible C/C++ prototypes are: 
    CNTK::Value::CreateOneHotFloat(size_t,std::vector< std::vector< size_t,std::allocator<size_t> >,std::allocator< std::vector< size_t,std::allocator<size_t> > > > const &,CNTK::DeviceDescriptor const &,bool) 
    CNTK::Value::CNTK_Value_CreateOneHotFloat__SWIG_0(size_t,std::vector< std::vector< size_t,std::allocator<size_t> >,std::allocator< std::vector< size_t,std::allocator<size_t> > > > const &,CNTK::DeviceDescriptor const &) 

答えて

1

入力指標であるone_hotに。それらは整数でなければなりません。試してみてください

actions.astype(int).tolist()