在Windows中从源生成tensorflow错误:C2719'_Func'对齐16将不对齐

时间:2018-11-15 12:06:06

标签: tensorflow

使用cmake在Windows Server 2016 VS2015 Update 3中从源代码构建Tensorflow 1.9。

编译项目tf_core_kernels时出现问题。

错误消息的片段,例如:

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\functional(497): error C2719: “_Func”: 要求 16 对齐的形参将不被对齐 (编译源文件 E:\xxx\tensorflow\tensorflow\core\kernels\pooling_ops_3d.cc)
  e:\xxx\tensorflow-build\external\eigen_archive\unsupported\eigen\cxx11\src/Tensor/TensorDeviceThreadPool.h(152): note: 参见对正在编译的函数 模板 实例化“std::function<void (void)>::function<std::_Binder<std::_Unforced,void (__cdecl *)(Eigen::Barrier *,Function,const Self &,Index,const Index &,Op &,T *),Eigen::Barrier *&,void (__cdecl *&)(const Self &,__int64,__int64,Op &,float *),const Self &,Index &,const Index &,Op &,T *&>,void,void>(_Fx)”的引用
          with
          [
              Function=void (__cdecl *)(const Eigen::TensorEvaluator<const Eigen::TensorReductionOp<Eigen::internal::AvgPoolMeanReducer<float>,const Eigen::array<int,1>,const Eigen::TensorReshapingOp<const Eigen::DSizes<Eigen::DenseIndex,3>,const Eigen::TensorVolumePatchOp<-1,-1,-1,const Eigen::TensorMap<Eigen::Tensor<const float,5,1,Eigen::DenseIndex>,16,Eigen::MakePointer>>>,Eigen::MakePointer>,tensorflow::CPUDevice> &,__int64,__int64,Eigen::internal::AvgPoolMeanReducer<float> &,float *),
              Self=Eigen::TensorEvaluator<const Eigen::TensorReductionOp<Eigen::internal::AvgPoolMeanReducer<float>,const Eigen::array<int,1>,const Eigen::TensorReshapingOp<const Eigen::DSizes<Eigen::DenseIndex,3>,const Eigen::TensorVolumePatchOp<-1,-1,-1,const Eigen::TensorMap<Eigen::Tensor<const float,5,1,Eigen::DenseIndex>,16,Eigen::MakePointer>>>,Eigen::MakePointer>,tensorflow::CPUDevice>,
              Op=Eigen::internal::AvgPoolMeanReducer<float>,
              T=float,
              _Fx=std::_Binder<std::_Unforced,void (__cdecl *)(Eigen::Barrier *,void (__cdecl *)(const Eigen::TensorEvaluator<const Eigen::TensorReductionOp<Eigen::internal::AvgPoolMeanReducer<float>,const Eigen::array<int,1>,const Eigen::TensorReshapingOp<const Eigen::DSizes<Eigen::DenseIndex,3>,const Eigen::TensorVolumePatchOp<-1,-1,-1,const Eigen::TensorMap<Eigen::Tensor<const float,5,1,Eigen::DenseIndex>,16,Eigen::MakePointer>>>,Eigen::MakePointer>,tensorflow::CPUDevice> &,__int64,__int64,Eigen::internal::AvgPoolMeanReducer<float> &,float *),const Eigen::TensorEvaluator<const Eigen::TensorReductionOp<Eigen::internal::AvgPoolMeanReducer<float>,const Eigen::array<int,1>,const Eigen::TensorReshapingOp<const Eigen::DSizes<Eigen::DenseIndex,3>,const Eigen::TensorVolumePatchOp<-1,-1,-1,const Eigen::TensorMap<Eigen::Tensor<const float,5,1,Eigen::DenseIndex>,16,Eigen::MakePointer>>>,Eigen::MakePointer>,tensorflow::CPUDevice> &,Index,const Index &,Eigen::internal::AvgPoolMeanReducer<float> &,float *),Eigen::Barrier *&,void (__cdecl *&)(const Eigen::TensorEvaluator<const Eigen::TensorReductionOp<Eigen::internal::AvgPoolMeanReducer<float>,const Eigen::array<int,1>,const Eigen::TensorReshapingOp<const Eigen::DSizes<Eigen::DenseIndex,3>,const Eigen::TensorVolumePatchOp<-1,-1,-1,const Eigen::TensorMap<Eigen::Tensor<const float,5,1,Eigen::DenseIndex>,16,Eigen::MakePointer>>>,Eigen::MakePointer>,tensorflow::CPUDevice> &,__int64,__int64,Eigen::internal::AvgPoolMeanReducer<float> &,float *),const Eigen::TensorEvaluator<const Eigen::TensorReductionOp<Eigen::internal::AvgPoolMeanReducer<float>,const Eigen::array<int,1>,const Eigen::TensorReshapingOp<const Eigen::DSizes<Eigen::DenseIndex,3>,const Eigen::TensorVolumePatchOp<-1,-1,-1,const Eigen::TensorMap<Eigen::Tensor<const float,5,1,Eigen::DenseIndex>,16,Eigen::MakePointer>>>,Eigen::MakePointer>,tensorflow::CPUDevice> &,Index &,const Index &,Eigen::internal::AvgPoolMeanReducer<float> &,float *&>
          ] (编译源文件 E:\xxx\tensorflow\tensorflow\core\kernels\pooling_ops_3d.cc)

感谢您的帮助。

0 个答案:

没有答案