提交 cb86440a 编写于 作者: Y yangfei

add some function

上级 1da3fcee
...@@ -15,41 +15,41 @@ limitations under the License. */ ...@@ -15,41 +15,41 @@ limitations under the License. */
#include "operators/kernel/feed_kernel.h" #include "operators/kernel/feed_kernel.h"
namespace paddle_mobile { namespace paddle_mobile {
namespace operators { namespace operators {
template <> template <>
bool FeedKernel<FPGA, float>::Init(FeedParam<FPGA> *param) { bool FeedKernel<FPGA, float>::Init(FeedParam<FPGA> *param) {
Tensor *output = param->Out(); Tensor *output = param->Out();
fpga::format_fp16_ofm(output); fpga::format_fp16_ofm(output);
return true; return true;
} }
template <> template <>
void FeedKernel<FPGA, float>::Compute(const FeedParam<FPGA> &param) { void FeedKernel<FPGA, float>::Compute(const FeedParam<FPGA> &param) {
auto input = reinterpret_cast<Tensor *>(const_cast<LoDTensor *>(param.InputX())); auto input =
auto input_ptr = input->data<float>(); reinterpret_cast<Tensor *>(const_cast<LoDTensor *>(param.InputX()));
fpga::format_image(input); auto input_ptr = input->data<float>();
Tensor *output = param.Out(); fpga::format_image(input);
auto output_ptr = output->data<float>(); Tensor *output = param.Out();
auto output_ptr = output->data<float>();
fpga::BypassArgs args = {fpga::DATA_TYPE_FP32};
fpga::BypassArgs args = {fpga::DATA_TYPE_FP32};
args.input_data_type = fpga::DATA_TYPE_FP32;
args.output_data_type = fpga::DATA_TYPE_FP16; args.input_data_type = fpga::DATA_TYPE_FP32;
args.input_layout_type = fpga::LAYOUT_CHW; args.output_data_type = fpga::DATA_TYPE_FP16;
args.output_layout_type = fpga::LAYOUT_HWC; args.input_layout_type = fpga::LAYOUT_CHW;
args.image.address = reinterpret_cast<void *>(input_ptr); args.output_layout_type = fpga::LAYOUT_HWC;
args.image.channels = (uint32_t)input->dims()[1]; args.image.address = reinterpret_cast<void *>(input_ptr);
args.image.height = (uint32_t)input->dims()[2]; args.image.channels = (uint32_t)input->dims()[1];
args.image.width = (uint32_t)input->dims()[3]; args.image.height = (uint32_t)input->dims()[2];
args.image.pad_height = 0; args.image.width = (uint32_t)input->dims()[3];
args.image.pad_width = 0; args.image.pad_height = 0;
args.output.address = output_ptr; args.image.pad_width = 0;
args.output.scale_address = output->scale; args.output.address = output_ptr;
fpga::PerformBypass(args); args.output.scale_address = output->scale;
} fpga::PerformBypass(args);
template class FeedKernel<FPGA, float>; }
template class FeedKernel<FPGA, float>;
} // namespace operators
} // namespace operators
} // namespace paddle_mobile } // namespace paddle_mobile
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册