A PyTorch port of the Neural 3D Mesh Renderer

Overview

Neural 3D Mesh Renderer (CVPR 2018)

This repo contains a PyTorch implementation of the paper Neural 3D Mesh Renderer by Hiroharu Kato, Yoshitaka Ushiku, and Tatsuya Harada. It is a port of the original Chainer implementation released by the authors. Currently the API is the same as in the original implementation with some smalls additions (e.g. render using a general 3x4 camera matrix, lens distortion coefficients etc.). However it is possible that it will change in the future.

The library is fully functional and it passes all the test cases supplied by the authors of the original library. Detailed documentation will be added in the near future.

Requirements

Python 2.7+ and PyTorch 0.4.0.

The code has been tested only with PyTorch 0.4.0, there are no guarantees that it is compatible with older versions. Currently the library has both Python 3 and Python 2 support.

Note: In some newer PyTorch versions you might see some compilation errors involving AT_ASSERT. In these cases you can use the version of the code that is in the branch at_assert_fix. These changes will be merged into master in the near future.

Installation

You can install the package by running

pip install neural_renderer_pytorch

Since running install.py requires PyTorch, make sure to install PyTorch before running the above command.

Running examples

python ./examples/example1.py
python ./examples/example2.py
python ./examples/example3.py
python ./examples/example4.py

Example 1: Drawing an object from multiple viewpoints

Example 2: Optimizing vertices

Transforming the silhouette of a teapot into a rectangle. The loss function is the difference between the rendered image and the reference image.

Reference image, optimization, and the result.

Example 3: Optimizing textures

Matching the color of a teapot with a reference image.

Reference image, result.

Example 4: Finding camera parameters

The derivative of images with respect to camera pose can be computed through this renderer. In this example the position of the camera is optimized by gradient descent.

From left to right: reference image, initial state, and optimization process.

Citation

@InProceedings{kato2018renderer
    title={Neural 3D Mesh Renderer},
    author={Kato, Hiroharu and Ushiku, Yoshitaka and Harada, Tatsuya},
    booktitle={The IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
    year={2018}
}
Comments
  • Load Textures With UV Coordinates Out Of Range 0.0~1.0

    Load Textures With UV Coordinates Out Of Range 0.0~1.0

    I am very grateful that you ported the neural mesh renderer by Hiroharu Kato from Chainer to PyTorch. Thanks a lot for your great job!

    I tried this tests_load_obj.py and it works well, so I take it as a reference. I write texture_load_texture1.py in order to load textured models from dataset Pix3D in my research project. However, when I load some models and run several times (take one example, IKEA model IKEA_LEIRVIK), it often raises an error:

    ValueError: Images of type float must be between -1 and 1.

    I found the output Numpy array contains NaN values by debugging, so I try to work around this issue by adding code in test_load_textured2.py, it produces this result:

    model_pkr_out2.png and enlarger.png

    You can see from the enlarged image that the values of some pixels on the edge of the object are off. I even tried this on the original Chainer version, and I have this error message:

    cupy.cuda.runtime.CUDARuntimeError: cudaErrorIllegalAddress: an illegal memory access was encountered

    Do you have any idea on this issue? What reason do you think cause this problem (obj model quality problem or bugs in the source code)? Is it possible we could work together to fix it?

    Best regards,

    Chenfei Wang

    opened by czw0078 21
  • Is it can be run on winodws??When I run

    Is it can be run on winodws??When I run "python setup.py install" ,it will show this

    running install running bdist_egg running egg_info writing neural_renderer.egg-info\PKG-INFO writing dependency_links to neural_renderer.egg-info\dependency_links.txt writing requirements to neural_renderer.egg-info\requires.txt writing top-level names to neural_renderer.egg-info\top_level.txt reading manifest file 'neural_renderer.egg-info\SOURCES.txt' writing manifest file 'neural_renderer.egg-info\SOURCES.txt' installing library code to build\bdist.win-amd64\egg running install_lib running build_py running build_ext D:\Anaconda3\lib\site-packages\torch\utils\cpp_extension.py:184: UserWarning: Error checking compiler version for cl: [WinError 2] 系统找不到指定的文件。 warnings.warn('Error checking compiler version for {}: {}'.format(compiler, error)) building 'neural_renderer.cuda.load_textures' extension D:\VisualStudio\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -ID:\Anaconda3\lib\site-packages\torch\lib\include -ID:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include -ID:\Anaconda3\lib\site-packages\torch\lib\include\TH -ID:\Anaconda3\lib\site-packages\torch\lib\include\THC "-IC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\include" -ID:\Anaconda3\include -ID:\Anaconda3\include -ID:\VisualStudio\VC\Tools\MSVC\14.16.27023\ATLMFC\include -ID:\VisualStudio\VC\Tools\MSVC\14.16.27023\include "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\include\um" "-ID:\Windows Kits\10\include\10.0.17763.0\ucrt" "-ID:\Windows Kits\10\include\10.0.17763.0\shared" "-ID:\Windows Kits\10\include\10.0.17763.0\um" "-ID:\Windows Kits\10\include\10.0.17763.0\winrt" "-ID:\Windows Kits\10\include\10.0.17763.0\cppwinrt" /EHsc /Tpneural_renderer/cuda/load_textures_cuda.cpp /Fobuild\temp.win-amd64-3.6\Release\neural_renderer/cuda/load_textures_cuda.obj -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=load_textures -D_GLIBCXX_USE_CXX11_ABI=0 load_textures_cuda.cpp D:\Anaconda3\lib\site-packages\torch\lib\include\c10/util/Exception.h(27): warning C4275: 非 dll 接口 class“std::exception”用作 dll 接口 class“c10::Error”的基 D:\VisualStudio\VC\Tools\MSVC\14.16.27023\include\vcruntime_exception.h(44): note: 参见“std::exception”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\c10/util/Exception.h(27): note: 参见“c10::Error”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\c10/util/Exception.h(28): warning C4251: “c10::Error::msg_stack_”: class“std::vector<std::string,std::allocator<Ty>>”需要有 dll 接口由 class“c10::Error”的客户端使用 with [ Ty=std::string ] D:\Anaconda3\lib\site-packages\torch\lib\include\c10/util/Exception.h(28): note: 参见“std::vector<std::string,std::allocator<Ty>>”的声明 with [ Ty=std::string ] D:\Anaconda3\lib\site-packages\torch\lib\include\c10/util/Exception.h(29): warning C4251: “c10::Error::backtrace”: class“std::basic_string<char,std::char_traits,std::allocator>”需要有 dll 接口由 class“c10::Error”的客户端 使用 D:\VisualStudio\VC\Tools\MSVC\14.16.27023\include\xstring(4373): note: 参见“std::basic_string<char,std::char_traits,std::allocator>”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\c10/util/Exception.h(34): warning C4251: “c10::Error::msg”: class“std::basic_string<char,std::char_traits,std::allocator>”需要有 dll 接口由 class“c10::Error”的客户端使用 D:\VisualStudio\VC\Tools\MSVC\14.16.27023\include\xstring(4373): note: 参见“std::basic_string<char,std::char_traits,std::allocator>”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\c10/util/Exception.h(35): warning C4251: “c10::Error::msg_without_backtrace”: class“std::basic_string<char,std::char_traits,std::allocator>”需要有 dll 接口由 class“c10::Error”的客户端使用 D:\VisualStudio\VC\Tools\MSVC\14.16.27023\include\xstring(4373): note: 参见“std::basic_string<char,std::char_traits,std::allocator>”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\c10/core/Allocator.h(126): warning C4251: “c10::InefficientStdFunctionContext::ptr”: class“std::unique_ptr<void,std::function<void (void *)>>”需要有 dll 接口由 struct“c10::InefficientStdFunctionContext”的客户端使用 D:\Anaconda3\lib\site-packages\torch\lib\include\c10/core/Allocator.h(126): note: 参见“std::unique_ptr<void,std::function<void (void *)>>”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\c10/core/TensorTypeIdRegistration.h(32): warning C4251: “c10::TensorTypeIdCreator::last_id_”: struct“std::atomic”需要有 dll 接口由 class“c10::TensorTypeIdCreator”的客户端使用 D:\VisualStudio\VC\Tools\MSVC\14.16.27023\include\xxatomic(162): note: 参见“std::atomic”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\c10/core/TensorTypeIdRegistration.h(45): warning C4251: “c10::TensorTypeIdRegistry::registeredTypeIds_”: class“std::unordered_set<c10::TensorTypeId,std::hashc10::TensorTypeId,std::equal_to<Kty>,std::allocator<Kty>>”需要有 dll 接口由 class“c10::TensorTypeIdRegistry”的客户端使用 with [ Kty=c10::TensorTypeId ] D:\Anaconda3\lib\site-packages\torch\lib\include\c10/core/TensorTypeIdRegistration.h(45): note: 参见“std::unordered_set<c10::TensorTypeId,std::hashc10::TensorTypeId,std::equal_to<Kty>,std::allocator<Kty>>”的声明 with [ Kty=c10::TensorTypeId ] D:\Anaconda3\lib\site-packages\torch\lib\include\c10/core/TensorTypeIdRegistration.h(46): warning C4251: “c10::TensorTypeIdRegistry::mutex”: class“std::mutex”需要有 dll 接口由 class“c10::TensorTypeIdRegistry”的客户端使用 D:\VisualStudio\VC\Tools\MSVC\14.16.27023\include\mutex(82): note: 参见“std::mutex”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\c10/Half-inl.h(168): warning C4244: “参数”: 从“int”转换到“float” ,可能丢失数据 D:\Anaconda3\lib\site-packages\torch\lib\include\c10/Half-inl.h(171): warning C4244: “参数”: 从“int”转换到“float” ,可能丢失数据 D:\Anaconda3\lib\site-packages\torch\lib\include\c10/Half-inl.h(174): warning C4244: “参数”: 从“int”转换到“float” ,可能丢失数据 D:\Anaconda3\lib\site-packages\torch\lib\include\c10/Half-inl.h(177): warning C4244: “参数”: 从“int”转换到“float” ,可能丢失数据 D:\Anaconda3\lib\site-packages\torch\lib\include\c10/Half-inl.h(181): warning C4244: “参数”: 从“int”转换到“float” ,可能丢失数据 D:\Anaconda3\lib\site-packages\torch\lib\include\c10/Half-inl.h(184): warning C4244: “参数”: 从“int”转换到“float” ,可能丢失数据 D:\Anaconda3\lib\site-packages\torch\lib\include\c10/Half-inl.h(187): warning C4244: “参数”: 从“int”转换到“float” ,可能丢失数据 D:\Anaconda3\lib\site-packages\torch\lib\include\c10/Half-inl.h(190): warning C4244: “参数”: 从“int”转换到“float” ,可能丢失数据 D:\Anaconda3\lib\site-packages\torch\lib\include\c10/Half-inl.h(196): warning C4244: “参数”: 从“int64_t”转换到“float”,可能丢失数据 D:\Anaconda3\lib\site-packages\torch\lib\include\c10/Half-inl.h(199): warning C4244: “参数”: 从“int64_t”转换到“float”,可能丢失数据 D:\Anaconda3\lib\site-packages\torch\lib\include\c10/Half-inl.h(202): warning C4244: “参数”: 从“int64_t”转换到“float”,可能丢失数据 D:\Anaconda3\lib\site-packages\torch\lib\include\c10/Half-inl.h(205): warning C4244: “参数”: 从“int64_t”转换到“float”,可能丢失数据 D:\Anaconda3\lib\site-packages\torch\lib\include\c10/Half-inl.h(209): warning C4244: “参数”: 从“int64_t”转换到“float”,可能丢失数据 D:\Anaconda3\lib\site-packages\torch\lib\include\c10/Half-inl.h(212): warning C4244: “参数”: 从“int64_t”转换到“float”,可能丢失数据 D:\Anaconda3\lib\site-packages\torch\lib\include\c10/Half-inl.h(215): warning C4244: “参数”: 从“int64_t”转换到“float”,可能丢失数据 D:\Anaconda3\lib\site-packages\torch\lib\include\c10/Half-inl.h(218): warning C4244: “参数”: 从“int64_t”转换到“float”,可能丢失数据 D:\Anaconda3\lib\site-packages\torch\lib\include\c10/util/intrusive_ptr.h(58): warning C4251: “c10::intrusive_ptr_target::refcount”: struct“std::atomic”需要有 dll 接口由 class“c10::intrusive_ptr_target”的客户端使用 D:\VisualStudio\VC\Tools\MSVC\14.16.27023\include\xxatomic(162): note: 参见“std::atomic”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\c10/util/intrusive_ptr.h(59): warning C4251: “c10::intrusive_ptr_target::weakcount”: struct“std::atomic”需要有 dll 接口由 class“c10::intrusive_ptr_target”的客户端使用 D:\VisualStudio\VC\Tools\MSVC\14.16.27023\include\xxatomic(162): note: 参见“std::atomic”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\c10/util/intrusive_ptr.h(708): warning C4267: “return”: 从“size_t” 转换到“uint32_t”,可能丢失数据 D:\Anaconda3\lib\site-packages\torch\lib\include\c10/util/intrusive_ptr.h(742): warning C4267: “return”: 从“size_t” 转换到“uint32_t”,可能丢失数据 D:\Anaconda3\lib\site-packages\torch\lib\include\c10/core/StorageImpl.h(215): warning C4251: “c10::StorageImpl::data_ptr”: class“c10::DataPtr”需要有 dll 接口由 struct“c10::StorageImpl”的客户端使用 D:\Anaconda3\lib\site-packages\torch\lib\include\c10/core/Allocator.h(19): note: 参见“c10::DataPtr”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\c10/core/Storage.h(184): warning C4251: “c10::Storage::storage_impl”: class“c10::intrusive_ptr<c10::StorageImpl,c10::detail::intrusive_target_default_null_type>”需要有 dll 接口 由 struct“c10::Storage”的客户端使用 with [ TTarget=c10::StorageImpl ] D:\Anaconda3\lib\site-packages\torch\lib\include\c10/core/Storage.h(10): note: 参见“c10::intrusive_ptr<c10::StorageImpl,c10::detail::intrusive_target_default_null_type>”的声明 with [ TTarget=c10::StorageImpl ] D:\Anaconda3\lib\site-packages\torch\lib\include\c10/util/logging_is_not_google_glog.h(47): warning C4251: “c10::MessageLogger::stream”: class“std::basic_stringstream<char,std::char_traits,std::allocator>”需要有 dll 接口由 class“c10::MessageLogger”的客户端使用 D:\VisualStudio\VC\Tools\MSVC\14.16.27023\include\iosfwd(623): note: 参见“std::basic_stringstream<char,std::char_traits,std::allocator>”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/TensorImpl.h(115): warning C4251: “at::PlacementDeleteContext::data_ptr_”: class“c10::DataPtr”需要有 dll 接口由 struct“at::PlacementDeleteContext”的客户端使用 D:\Anaconda3\lib\site-packages\torch\lib\include\c10/core/Allocator.h(19): note: 参见“c10::DataPtr”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/TensorImpl.h(1434): warning C4251: “at::TensorImpl::sizes_”: class“c10::SmallVector<int64_t,5>”需要有 dll 接口由 struct“at::TensorImpl”的客户端使用 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/TensorImpl.h(1434): note: 参见“c10::SmallVector<int64_t,5>”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/TensorImpl.h(1435): warning C4251: “at::TensorImpl::strides_”: class“c10::SmallVector<int64_t,5>”需要有 dll 接口由 struct“at::TensorImpl”的客户端使用 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/TensorImpl.h(1434): note: 参见“c10::SmallVector<int64_t,5>”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/TensorImpl.h(454): warning C4244: “参数”: 从“int64_t”转换到“c10::DeviceIndex”,可能丢失数据 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/TensorImpl.h(1006): warning C4244: “参数”: 从“float”转换 到“const Ty”,可能丢失数据 with [ Ty=size_t ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/TensorImpl.h(1382): warning C4244: “初始化”: 从“int64_t” 转换到“int”,可能丢失数据 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/LegacyTypeDispatch.h(138): warning C4251: “at::LegacyTypeDispatch::type_registry”: class“std::unique_ptrat::Type,at::LegacyTypeDeleter”需要有 dll 接口由 class“at::LegacyTypeDispatch”的客户端使用 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/LegacyTypeDispatch.h(51): note: 参见“std::unique_ptrat::Type,at::LegacyTypeDeleter”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/Tensor.h(692): warning C4251: “at::Tensor::impl”: class“c10::intrusive_ptrat::TensorImpl,at::UndefinedTensorImpl”需要有 dll 接口由 class“at::Tensor”的客户端使用 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/Tensor.h(44): note: 参见“c10::intrusive_ptrat::TensorImpl,at::UndefinedTensorImpl”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/Tensor.h(693): warning C4522: “at::Tensor”: 指定了多个赋值 运算符 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/Tensor.h(720): warning C4251: “at::WeakTensor::weak_impl”: class“c10::weak_intrusive_ptr<TTarget,NullType>”需要有 dll 接口由 struct“at::WeakTensor”的客户端使用 with [ TTarget=at::TensorImpl, NullType=at::UndefinedTensorImpl ] D:\Anaconda3\lib\site-packages\torch\lib\include\c10/util/intrusive_ptr.h(172): note: 参见“c10::weak_intrusive_ptr<TTarget,NullType>”的声明 with [ TTarget=at::TensorImpl, NullType=at::UndefinedTensorImpl ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/LegacyTHDispatch.h(86): warning C4251: “at::LegacyTHDispatch::dispatcher_registry”: class“std::unique_ptrat::LegacyTHDispatcher,at::LegacyTHDispatcherDeleter”需要有 dll 接口由 class“at::LegacyTHDispatch”的客户端使用 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/LegacyTHDispatch.h(61): note: 参见“std::unique_ptrat::LegacyTHDispatcher,at::LegacyTHDispatcherDeleter”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/Context.h(128): warning C4251: “at::Context::generator_registry”: class“std::unique_ptr<at::Generator,std::default_delete<_Ty>>”需要有 dll 接口由 class“at::Context”的客户端使用 with [ _Ty=at::Generator ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/Type.h(104): note: 参见“std::unique_ptr<at::Generator,std::default_delete<_Ty>>”的声明 with [ Ty=at::Generator ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/Context.h(145): warning C4251: “at::Context::thc_init”: struct“std::once_flag”需要有 dll 接口由 class“at::Context”的客户端使用 D:\VisualStudio\VC\Tools\MSVC\14.16.27023\include\xcall_once.h(18): note: 参见“std::once_flag”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/Context.h(146): warning C4251: “at::Context::thh_init”: struct“std::once_flag”需要有 dll 接口由 class“at::Context”的客户端使用 D:\VisualStudio\VC\Tools\MSVC\14.16.27023\include\xcall_once.h(18): note: 参见“std::once_flag”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/Context.h(147): warning C4251: “at::Context::complex_init”: struct“std::once_flag”需要有 dll 接口由 class“at::Context”的客户端使用 D:\VisualStudio\VC\Tools\MSVC\14.16.27023\include\xcall_once.h(18): note: 参见“std::once_flag”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/Context.h(151): warning C4251: “at::Context::next_id”: struct“std::atomic”需要有 dll 接口由 class“at::Context”的客户端使用 D:\VisualStudio\VC\Tools\MSVC\14.16.27023\include\xxatomic(162): note: 参见“std::atomic”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/Context.h(152): warning C4251: “at::Context::thc_state”: class“std::unique_ptr<THCState,void (__cdecl *)(THCState *)>”需要有 dll 接口由 class“at::Context”的客户端使用 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/detail/CUDAHooksInterface.h(57): note: 参见“std::unique_ptr<THCState,void (__cdecl *)(THCState *)>”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/Context.h(153): warning C4251: “at::Context::thh_state”: class“std::unique_ptr<THHState,void (__cdecl *)(THHState *)>”需要有 dll 接口由 class“at::Context”的客户端使用 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/detail/HIPHooksInterface.h(33): note: 参见“std::unique_ptr<THHState,void (__cdecl *)(THHState *)>”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/Context.h(161): warning C4996: 'getenv': This function or variable may be unsafe. Consider using _dupenv_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\Windows Kits\10\include\10.0.17763.0\ucrt\stdlib.h(1191): note: 参见“getenv”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/Context.h(164): warning C4996: 'getenv': This function or variable may be unsafe. Consider using _dupenv_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\Windows Kits\10\include\10.0.17763.0\ucrt\stdlib.h(1191): note: 参见“getenv”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\c10/Stream.h(102): warning C4244: “参数”: 从“unsigned __int64”转换 到“c10::DeviceIndex”,可能丢失数据 D:\Anaconda3\lib\site-packages\torch\lib\include\c10/Stream.h(102): warning C4244: “参数”: 从“unsigned _int64”转换 到“c10::StreamId”,可能丢失数据 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/TensorGeometry.h(56): warning C4251: “at::TensorGeometry::sizes ”: class“std::vector<int64_t,std::allocator<_Ty>>”需要有 dll 接口由 struct“at::TensorGeometry”的客户端使用 with [ _Ty=int64_t ] D:\Anaconda3\lib\site-packages\torch\lib\include\c10/util/typeid.h(584): note: 参见“std::vector<int64_t,std::allocator<_Ty>>”的声明 with [ Ty=int64_t ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/TensorGeometry.h(57): warning C4251: “at::TensorGeometry::strides”: class“std::vector<int64_t,std::allocator<Ty>>”需要有 dll 接口由 struct“at::TensorGeometry”的客户端使用 with [ Ty=int64_t ] D:\Anaconda3\lib\site-packages\torch\lib\include\c10/util/typeid.h(584): note: 参见“std::vector<int64_t,std::allocator<Ty>>”的声明 with [ Ty=int64_t ] D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/autograd/variable.h(351): warning C4251: “torch::autograd::Variable::Impl::name”: class“std::basic_string<char,std::char_traits,std::allocator>”需要有 dll 接口由 struct“torch::autograd::Variable::Impl”的客户端使用 D:\VisualStudio\VC\Tools\MSVC\14.16.27023\include\xstring(4373): note: 参见“std::basic_string<char,std::char_traits,std::allocator>”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/autograd/variable.h(355): warning C4251: “torch::autograd::Variable::Impl::grad_fn”: class“std::shared_ptrtorch::autograd::Function”需要有 dll 接口由 struct“torch::autograd::Variable::Impl”的客户端使用 D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/autograd/edge.h(17): note: 参见“std::shared_ptrtorch::autograd::Function”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/autograd/variable.h(356): warning C4251: “torch::autograd::Variable::Impl::grad_accumulator”: class“std::weak_ptrtorch::autograd::Function”需要有 dll 接口由 struct“torch::autograd::Variable::Impl”的客户端使用 D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/autograd/variable.h(153): note: 参见“std::weak_ptrtorch::autograd::Function”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/autograd/variable.h(358): warning C4251: “torch::autograd::Variable::Impl::version_counter”: struct“torch::autograd::VariableVersion”需要有 dll 接口由 struct“torch::autograd::Variable::Impl”的客户端使用 D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/autograd/variable_version.h(19): note: 参见“torch::autograd::VariableVersion”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/autograd/variable.h(359): warning C4251: “torch::autograd::Variable::Impl::hooks”: class“std::vector<std::shared_ptrtorch::autograd::FunctionPreHook,std::allocator<_Ty>>”需 要有 dll 接口由 struct“torch::autograd::Variable::Impl”的客户端使用 with [ _Ty=std::shared_ptrtorch::autograd::FunctionPreHook ] D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/autograd/variable.h(245): note: 参见“std::vector<std::shared_ptrtorch::autograd::FunctionPreHook,std::allocator<Ty>>”的声明 with [ Ty=std::shared_ptrtorch::autograd::FunctionPreHook ] D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/autograd/variable.h(376): warning C4251: “torch::autograd::Variable::Impl::mutex”: class“std::mutex”需要有 dll 接口由 struct“torch::autograd::Variable::Impl”的客户端使用 D:\VisualStudio\VC\Tools\MSVC\14.16.27023\include\mutex(82): note: 参见“std::mutex”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/thread_pool.h(51): warning C4251: “c10::ThreadPool::tasks”: class“std::queue<c10::ThreadPool::task_element_t,std::deque<_Ty,std::allocator<_Ty>>>”需要有 dll 接口由 class“c10::ThreadPool”的客户端使用 with [ _Ty=c10::ThreadPool::task_element_t ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/thread_pool.h(51): note: 参见“std::queue<c10::ThreadPool::task_element_t,std::deque<_Ty,std::allocator<Ty>>>”的声明 with [ Ty=c10::ThreadPool::task_element_t ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/thread_pool.h(52): warning C4251: “c10::ThreadPool::threads”: class“std::vector<std::thread,std::allocator<Ty>>”需要有 dll 接口由 class“c10::ThreadPool”的客户端使用 with [ Ty=std::thread ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/thread_pool.h(52): note: 参见“std::vector<std::thread,std::allocator<Ty>>”的声明 with [ Ty=std::thread ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/thread_pool.h(53): warning C4251: “c10::ThreadPool::mutex”: class“std::mutex”需要有 dll 接口由 class“c10::ThreadPool”的客户端使用 D:\VisualStudio\VC\Tools\MSVC\14.16.27023\include\mutex(82): note: 参见“std::mutex”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/thread_pool.h(54): warning C4251: “c10::ThreadPool::condition”: class“std::condition_variable”需要有 dll 接口由 class“c10::ThreadPool”的客户端使用 D:\VisualStudio\VC\Tools\MSVC\14.16.27023\include\mutex(682): note: 参见“std::condition_variable”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/thread_pool.h(55): warning C4251: “c10::ThreadPool::completed”: class“std::condition_variable”需要有 dll 接口由 class“c10::ThreadPool”的客户端使用 D:\VisualStudio\VC\Tools\MSVC\14.16.27023\include\mutex(682): note: 参见“std::condition_variable”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/ivalue.h(24): warning C4251: “c10::ivalue::ConstantString::str”: class“std::basic_string<char,std::char_traits,std::allocator>”需要有 dll 接口由 struct“c10::ivalue::ConstantString”的客户端使用 D:\VisualStudio\VC\Tools\MSVC\14.16.27023\include\xstring(4373): note: 参见“std::basic_string<char,std::char_traits,std::allocator>”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/ivalue.h(43): warning C4251: “c10::ivalue::List::elements”: class“std::vector<T,std::allocator<_Ty>>”需要有 dll 接口由 struct“c10::ivalue::List”的客户端使用 D:\Anaconda3\lib\site-packages\torch\lib\include\c10/util/ArrayRef.h(214): note: 参见“std::vector<T,std::allocator<Ty>>”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/ivalue.h(65): note: 参见对正在编译的 类 模板 实例化 "c10::ivalue::List" 的引用 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/ivalue.h(43): warning C4251: “c10::ivalue::Listc10::IValue::elements”: class“std::vector<Elem,std::allocator<_Ty>>”需要有 dll 接口由 struct“c10::ivalue::Listc10::IValue” 的客户端使用 with [ Elem=c10::IValue, _Ty=c10::IValue ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/ivalue.h(43): note: 参见“std::vector<Elem,std::allocator<Ty>>”的声明 with [ Elem=c10::IValue, Ty=c10::IValue ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/ivalue.h(69): note: 参见对正在编译的 类 模板 实例化 "c10::ivalue::Listc10::IValue" 的引用 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/ivalue.h(570): warning C4251: “c10::ivalue::Future::mutex”: class“std::mutex”需要有 dll 接口由 struct“c10::ivalue::Future”的客户端使用 D:\VisualStudio\VC\Tools\MSVC\14.16.27023\include\mutex(82): note: 参见“std::mutex”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/ivalue.h(572): warning C4251: “c10::ivalue::Future::completed”: struct“std::atomic”需要有 dll 接口由 struct“c10::ivalue::Future”的客户端使用 D:\VisualStudio\VC\Tools\MSVC\14.16.27023\include\xxatomic(162): note: 参见“std::atomic”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/ivalue.h(573): warning C4251: “c10::ivalue::Future::callbacks”: class“std::vector<std::function<void (void)>,std::allocator<_Ty>>”需要有 dll 接口由 struct“c10::ivalue::Future”的客户端使用 with [ _Ty=std::function<void (void)> ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/ivalue.h(573): note: 参见“std::vector<std::function<void (void)>,std::allocator<_Ty>>”的声明 with [ Ty=std::function<void (void)> ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/ivalue.h(43): warning C4251: “c10::ivalue::List<int64_t>::elements”: class“std::vector<int64_t,std::allocator<_Ty>>”需要有 dll 接口由 struct“c10::ivalue::List<int64_t>”的客户端使用 with [ _Ty=int64_t ] D:\Anaconda3\lib\site-packages\torch\lib\include\c10/util/typeid.h(584): note: 参见“std::vector<int64_t,std::allocator<_Ty>>”的声明 with [ Ty=int64_t ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/ivalue.h(622): note: 参见对正在编译的 类 模板 实例化 "c10::ivalue::List<int64_t>" 的引用 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/ivalue.h(43): warning C4251: “c10::ivalue::List::elements”: class“std::vector<T,std::allocator<_Ty>>”需要有 dll 接口由 struct“c10::ivalue::List”的客户端使用 with [ T=double, _Ty=double ] D:\Anaconda3\lib\site-packages\torch\lib\include\c10/util/ArrayRef.h(214): note: 参见“std::vector<T,std::allocator<_Ty>>”的声明 with [ T=double, Ty=double ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/ivalue.h(636): note: 参见对正在编译的 类 模板 实例化 "c10::ivalue::List" 的引用 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/ivalue.h(43): warning C4251: “c10::ivalue::List::elements”: class“std::vector<bool,std::allocator<_Ty>>”需要有 dll 接口由 struct“c10::ivalue::List”的客户端使用 with [ _Ty=bool ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/ivalue.h(296): note: 参见“std::vector<bool,std::allocator<_Ty>>”的声明 with [ Ty=bool ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/ivalue.h(643): note: 参见对正在编译的 类 模板 实例化 "c10::ivalue::List" 的引用 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/ivalue.h(43): warning C4251: “c10::ivalue::Listat::Tensor::elements”: class“std::vector<at::Tensor,std::allocator<_Ty>>”需要有 dll 接口由 struct“c10::ivalue::Listat::Tensor”的客户端使用 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/Type.h(224): note: 参见“std::vector<at::Tensor,std::allocator<_Ty>>”的声明 with [ Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/ivalue.h(650): note: 参见对正在编译的 类 模板 实例化 "c10::ivalue::Listat::Tensor" 的引用 D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/jit/scope.h(24): warning C4251: “torch::jit::Scope::parent”: class“c10::intrusive_ptr<torch::jit::Scope,c10::detail::intrusive_target_default_null_type>”需要有 dll 接口由 struct“torch::jit::Scope”的客户端使用 with [ TTarget=torch::jit::Scope ] D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/jit/scope.h(20): note: 参见“c10::intrusive_ptr<torch::jit::Scope,c10::detail::intrusive_target_default_null_type>”的声明 with [ TTarget=torch::jit::Scope ] D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/jit/constants.h(16): warning C4275: 非 dll 接口 class“std::runtime_error”用作 dll 接口 struct“torch::jit::constant_not_supported_error”的基 D:\VisualStudio\VC\Tools\MSVC\14.16.27023\include\stdexcept(157): note: 参见“std::runtime_error”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/jit/constants.h(16): note: 参见“torch::jit::constant_not_supported_error”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/jit_type.h(52): warning C4251: “std::enable_shared_from_thisc10::Type::_Wptr”: class“std::weak_ptr<_Ty>”需要有 dll 接口由 class“std::enable_shared_from_thisc10::Type”的客 户端使用 with [ _Ty=c10::Type ] D:\VisualStudio\VC\Tools\MSVC\14.16.27023\include\memory(2029): note: 参见“std::weak_ptr<_Ty>”的声明 with [ Ty=c10::Type ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/jit_type.h(213): warning C4251: “c10::SingleElementTypec10::TypeKind::OptionalType,c10::OptionalType::elem”: class“std::shared_ptrc10::Type”需要有 dll 接口由 struct“c10::SingleElementTypec10::TypeKind::OptionalType,c10::OptionalType”的客户端使用 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/jit_type.h(50): note: 参见“std::shared_ptrc10::Type”的声 明 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/jit_type.h(359): warning C4244: “参数”: 从“int64_t”转换到“int”,可能丢失数据 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/jit_type.h(476): warning C4251: “c10::CompleteTensorType::sizes”: class“std::vector<int64_t,std::allocator<_Ty>>”需要有 dll 接口由 struct“c10::CompleteTensorType”的客户端使用 with [ _Ty=int64_t ] D:\Anaconda3\lib\site-packages\torch\lib\include\c10/util/typeid.h(584): note: 参见“std::vector<int64_t,std::allocator<_Ty>>”的声明 with [ Ty=int64_t ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/jit_type.h(477): warning C4251: “c10::CompleteTensorType::strides”: class“std::vector<int64_t,std::allocator<_Ty>>”需要有 dll 接口由 struct“c10::CompleteTensorType”的客户端使用 with [ _Ty=int64_t ] D:\Anaconda3\lib\site-packages\torch\lib\include\c10/util/typeid.h(584): note: 参见“std::vector<int64_t,std::allocator<_Ty>>”的声明 with [ Ty=int64_t ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/jit_type.h(463): warning C4267: “参数”: 从“size_t”转换到 “int”,可能丢失数据 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/jit_type.h(482): warning C4251: “c10::SingleElementTypec10::TypeKind::ListType,c10::ListType::elem”: class“std::shared_ptrc10::Type”需要有 dll 接口由 struct“c10::SingleElementTypec10::TypeKind::ListType,c10::ListType”的客户端使用 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/jit_type.h(50): note: 参见“std::shared_ptrc10::Type”的声 明 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/jit_type.h(516): warning C4251: “c10::SingleElementTypec10::TypeKind::FutureType,c10::FutureType::elem”: class“std::shared_ptrc10::Type”需要有 dll 接口由 struct“c10::SingleElementTypec10::TypeKind::FutureType,c10::FutureType”的客户端使用 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/jit_type.h(50): note: 参见“std::shared_ptrc10::Type”的声 明 D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/jit_type.h(625): warning C4251: “c10::TupleType::elements”: class“std::vector<c10::TypePtr,std::allocator<_Ty>>”需要有 dll 接口由 struct“c10::TupleType”的客户端使用 with [ _Ty=c10::TypePtr ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/jit_type.h(148): note: 参见“std::vector<c10::TypePtr,std::allocator<_Ty>>”的声明 with [ _Ty=c10::TypePtr ] D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/jit/tracing_state.h(29): warning C4251: “std::enable_shared_from_thistorch::jit::tracer::TracingState::_Wptr”: class“std::weak_ptr<_Ty>”需要有 dll 接口由 class“std::enable_shared_from_thistorch::jit::tracer::TracingState”的客户端使用 with [ _Ty=torch::jit::tracer::TracingState ] D:\VisualStudio\VC\Tools\MSVC\14.16.27023\include\memory(2029): note: 参见“std::weak_ptr<_Ty>”的声明 with [ _Ty=torch::jit::tracer::TracingState ] D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/jit/tracing_state.h(47): warning C4251: “torch::jit::tracer::TracingState::value_map”: class“std::unordered_map<torch::jit::tracer::TracingState::WeakTensor,torch::jit::Value *,torch::jit::tracer::TracingState::WeakTensorHasher,torch::jit::tracer::TracingState::WeakTensorEq,std::allocator<std::pair<const _Kty,_Ty>>>”需要有 dll 接口由 struct“torch::jit::tracer::TracingState”的客户端使用 with [ _Kty=torch::jit::tracer::TracingState::WeakTensor, _Ty=torch::jit::Value * ] D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/jit/tracing_state.h(47): note: 参见“std::unordered_map<torch::jit::tracer::TracingState::WeakTensor,torch::jit::Value *,torch::jit::tracer::TracingState::WeakTensorHasher,torch::jit::tracer::TracingState::WeakTensorEq,std::allocator<std::pair<const _Kty,_Ty>>>”的声明 with [ _Kty=torch::jit::tracer::TracingState::WeakTensor, _Ty=torch::jit::Value * ] D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/jit/tracing_state.h(48): warning C4251: “torch::jit::tracer::TracingState::graph”: class“std::shared_ptrtorch::jit::Graph”需要有 dll 接口由 struct“torch::jit::tracer::TracingState”的客户端使用 D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/jit/tracing_state.h(48): note: 参见“std::shared_ptrtorch::jit::Graph”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/jit/tracing_state.h(52): warning C4251: “torch::jit::tracer::TracingState::lookup_var_name_fn”: class“std::function<std::string (const torch::autograd::Variable &)>”需要有 dll 接口由 struct“torch::jit::tracer::TracingState”的客户端使用 D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/jit/tracing_state.h(51): note: 参见“std::function<std::string (const torch::autograd::Variable &)>”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/jit/tracing_state.h(145): warning C4251: “torch::jit::tracer::NoWarn::state”: class“std::shared_ptr<_Ty>”需要有 dll 接口由 struct“torch::jit::tracer::NoWarn”的客户端使用 with [ _Ty=torch::jit::tracer::TracingState ] D:\VisualStudio\VC\Tools\MSVC\14.16.27023\include\memory(2019): note: 参见“std::shared_ptr<Ty>”的声明 with [ Ty=torch::jit::tracer::TracingState ] D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/serialize/input-archive.h(78): warning C4251: “torch::serialize::InputArchive::module”: class“std::shared_ptrtorch::jit::script::Module”需要有 dll 接口由 class“torch::serialize::InputArchive”的客户端使用 D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/serialize/input-archive.h(78): note: 参见 “std::shared_ptrtorch::jit::script::Module”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/serialize/output-archive.h(66): warning C4251: “torch::serialize::OutputArchive::module”: class“std::shared_ptrtorch::jit::script::Module”需要有 dll 接口由 class“torch::serialize::OutputArchive”的客户端使用 D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/serialize/input-archive.h(78): note: 参见 “std::shared_ptrtorch::jit::script::Module”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/jit/script/lexer.h(384): warning C4267: “参数”: 从“size_t”转换到“_Ty”,可能丢失数据 with [ _Ty=int32_t ] D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/jit/script/lexer.h(458): warning C4267: “初始化”: 从“size_t”转换到“int”,可能丢失数据 D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/jit/interpreter.h(42): warning C4251: “torch::jit::Code::pImpl”: class“std::shared_ptrtorch::jit::CodeImpl”需要有 dll 接口由 struct“torch::jit::Code”的客户端使用 D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/jit/interpreter.h(42): note: 参见“std::shared_ptrtorch::jit::CodeImpl”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/jit/argument_spec.h(189): warning C4267: “初始化”: 从“size_t”转换到“int32_t”,可能丢失数据 D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/jit/argument_spec.h(192): warning C4267: “初始化”: 从“size_t”转换到“int32_t”,可能丢失数据 D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/jit/argument_spec.h(192): warning C4267: “初始化”: 从“size_t”转换到“const int32_t”,可能丢失数据 D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/jit/argument_spec.h(196): warning C4244: “+=”: 从“int64_t”转换到“int32_t”,可能丢失数据 D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/jit/argument_spec.h(215): warning C4244: “+=”: 从“int64_t”转换到“int32_t”,可能丢失数据 D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/jit/argument_spec.h(367): warning C4267: “参数”: 从“size_t”转换到“const int”,可能丢失数据 D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/jit/graph_executor.h(41): warning C4251: “torch::jit::GraphExecutor::pImpl”: class“std::shared_ptrtorch::jit::GraphExecutorImpl”需要有 dll 接口由 struct“torch::jit::GraphExecutor”的客户端使用 D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/jit/graph_executor.h(41): note: 参见“std::shared_ptrtorch::jit::GraphExecutorImpl”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/jit/script/module.h(56): warning C4267: “初始化”: 从“size_t”转换到“int”,可能丢失数据 D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/jit/script/compiler.h(93): warning C4275: 非 dll 接口 struct“torch::jit::script::SugaredValue”用作 dll 接口 struct“torch::jit::script::SimpleValue”的基 D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/jit/script/compiler.h(35): note: 参见“torch::jit::script::SugaredValue”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/jit/script/compiler.h(93): note: 参见“torch::jit::script::SimpleValue”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/jit/script/compiler.h(122): warning C4275: 非 dll 接口 struct“torch::jit::script::SugaredValue”用作 dll 接口 struct“torch::jit::script::BuiltinFunction”的基 D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/jit/script/compiler.h(35): note: 参见“torch::jit::script::SugaredValue”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/jit/script/compiler.h(122): note: 参见“torch::jit::script::BuiltinFunction”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/jit/script/compiler.h(130): warning C4251: “torch::jit::script::BuiltinFunction::self”: class“c10::optionaltorch::jit::NamedValue”需要有 dll 接口由 struct“torch::jit::script::BuiltinFunction”的客户端使用 D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/jit/script/module.h(488): note: 参见“c10::optionaltorch::jit::NamedValue”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/jit/script/compiler.h(143): warning C4275: 非 dll 接口 struct“torch::jit::script::SugaredValue”用作 dll 接口 struct“torch::jit::script::BuiltinModule”的基 D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/jit/script/compiler.h(35): note: 参见“torch::jit::script::SugaredValue”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/jit/script/compiler.h(143): note: 参见“torch::jit::script::BuiltinModule”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/jit/script/compiler.h(157): warning C4251: “torch::jit::script::BuiltinModule::name”: class“std::basic_string<char,std::char_traits,std::allocator>”需要有 dll 接口 由 struct“torch::jit::script::BuiltinModule”的客户端使用 D:\VisualStudio\VC\Tools\MSVC\14.16.27023\include\xstring(4373): note: 参见“std::basic_string<char,std::char_traits,std::allocator>”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/jit/script/compiler.h(160): warning C4251: “torch::jit::script::BuiltinModule::version”: class“c10::optional<int64_t>”需要有 dll 接口由 struct“torch::jit::script::BuiltinModule”的客户端使用 D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/jit/script/compiler.h(145): note: 参见“c10::optional<int64_t>”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/jit/script/compiler.h(167): warning C4275: 非 dll 接口 struct“torch::jit::script::SugaredValue”用作 dll 接口 struct“torch::jit::script::ForkValue”的基 D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/jit/script/compiler.h(35): note: 参见“torch::jit::script::SugaredValue”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/jit/script/compiler.h(167): note: 参见“torch::jit::script::ForkValue”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/jit/script/compiler.h(173): warning C4275: 非 dll 接口 struct“torch::jit::script::SugaredValue”用作 dll 接口 struct“torch::jit::script::AnnotateValue”的基 D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/jit/script/compiler.h(35): note: 参见“torch::jit::script::SugaredValue”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/jit/script/compiler.h(173): note: 参见“torch::jit::script::AnnotateValue”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/nn/module.h(61): warning C4251: “std::enable_shared_from_thistorch::nn::Module::_Wptr”: class“std::weak_ptr<_Ty>”需要有 dll 接口由 class“std::enable_shared_from_thistorch::nn::Module”的客户端使用 with [ Ty=torch::nn::Module ] D:\VisualStudio\VC\Tools\MSVC\14.16.27023\include\memory(2029): note: 参见“std::weak_ptr<Ty>”的声明 with [ Ty=torch::nn::Module ] D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/nn/module.h(483): warning C4251: “torch::nn::Module::parameters”: class“torch::OrderedDictstd::string,at::Tensor”需要有 dll 接口由 class“torch::nn::Module”的客户端使用 D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/nn/module.h(209): note: 参见“torch::OrderedDictstd::string,at::Tensor”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/nn/module.h(486): warning C4251: “torch::nn::Module::buffers”: class“torch::OrderedDictstd::string,at::Tensor”需要有 dll 接口由 class“torch::nn::Module” 的客户端使用 D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/nn/module.h(209): note: 参见“torch::OrderedDictstd::string,at::Tensor”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/nn/module.h(489): warning C4251: “torch::nn::Module::children”: class“torch::OrderedDict<std::string,std::shared_ptr<_Ty>>”需要有 dll 接口由 class“torch::nn::Module”的客户端使用 with [ _Ty=torch::nn::Module ] D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/nn/module.h(245): note: 参见“torch::OrderedDict<std::string,std::shared_ptr<Ty>>”的声明 with [ Ty=torch::nn::Module ] D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/nn/module.h(492): warning C4251: “torch::nn::Module::name”: class“c10::optionalstd::string”需要有 dll 接口由 class“torch::nn::Module”的客户端使用 D:\Anaconda3\lib\site-packages\torch\lib\include\torch/csrc/jit/named_value.h(70): note: 参见“c10::optionalstd::string”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/nn/modules/conv.h(106): warning C4251: “torch::nn::ConvImpl<1,torch::nn::Conv1dImpl>::options”: struct“torch::nn::ConvOptions<1>”需要有 dll 接口由 class“torch::nn::ConvImpl<1,torch::nn::Conv1dImpl>”的客户端使用 D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/nn/modules/conv.h(87): note: 参见“torch::nn::ConvOptions<1>”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/nn/modules/conv.h(126): warning C4251: “torch::nn::ConvImpl<2,torch::nn::Conv2dImpl>::options”: struct“torch::nn::ConvOptions<2>”需要有 dll 接口由 class“torch::nn::ConvImpl<2,torch::nn::Conv2dImpl>”的客户端使用 D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/nn/modules/conv.h(87): note: 参见“torch::nn::ConvOptions<2>”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/nn/modules/conv.h(146): warning C4251: “torch::nn::ConvImpl<3,torch::nn::Conv3dImpl>::options”: struct“torch::nn::ConvOptions<3>”需要有 dll 接口由 class“torch::nn::ConvImpl<3,torch::nn::Conv3dImpl>”的客户端使用 D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/nn/modules/conv.h(87): note: 参见“torch::nn::ConvOptions<3>”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/nn/modules/functional.h(89): warning C4251: “torch::nn::FunctionalImpl::function”: class“std::function<at::Tensor (at::Tensor)>”需要有 dll 接口由 class“torch::nn::FunctionalImpl”的客户端使用 D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/data/transforms/tensor.h(39): note: 参见“std::function<at::Tensor (at::Tensor)>”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/nn/modules/rnn.h(174): warning C4251: “torch::nn::detail::RNNImplBasetorch::nn::RNNImpl::w_ih”: class“std::vector<at::Tensor,std::allocator<_Ty>>”需要有 dll 接口由 class“torch::nn::detail::RNNImplBasetorch::nn::RNNImpl”的客户端使用 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/Type.h(224): note: 参见“std::vector<at::Tensor,std::allocator<_Ty>>”的声明 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/nn/modules/rnn.h(174): warning C4251: “torch::nn::detail::RNNImplBasetorch::nn::RNNImpl::w_hh”: class“std::vector<at::Tensor,std::allocator<_Ty>>”需要有 dll 接口由 class“torch::nn::detail::RNNImplBasetorch::nn::RNNImpl”的客户端使用 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/Type.h(224): note: 参见“std::vector<at::Tensor,std::allocator<_Ty>>”的声明 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/nn/modules/rnn.h(174): warning C4251: “torch::nn::detail::RNNImplBasetorch::nn::RNNImpl::b_ih”: class“std::vector<at::Tensor,std::allocator<_Ty>>”需要有 dll 接口由 class“torch::nn::detail::RNNImplBasetorch::nn::RNNImpl”的客户端使用 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/Type.h(224): note: 参见“std::vector<at::Tensor,std::allocator<_Ty>>”的声明 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/nn/modules/rnn.h(174): warning C4251: “torch::nn::detail::RNNImplBasetorch::nn::RNNImpl::b_hh”: class“std::vector<at::Tensor,std::allocator<_Ty>>”需要有 dll 接口由 class“torch::nn::detail::RNNImplBasetorch::nn::RNNImpl”的客户端使用 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/Type.h(224): note: 参见“std::vector<at::Tensor,std::allocator<Ty>>”的声明 with [ Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/nn/modules/rnn.h(174): warning C4251: “torch::nn::detail::RNNImplBasetorch::nn::RNNImpl::cudnn_mode”: class“c10::optional<torch::nn::detail::RNNImplBasetorch::nn::RNNImpl::CuDNNMode>”需要有 dll 接口由 class“torch::nn::detail::RNNImplBasetorch::nn::RNNImpl”的客户端使用 D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/nn/modules/rnn.h(64): note: 参见“c10::optional<torch::nn::detail::RNNImplBasetorch::nn::RNNImpl::CuDNNMode>”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/nn/modules/rnn.h(174): warning C4251: “torch::nn::detail::RNNImplBasetorch::nn::RNNImpl::flat_weights”: class“std::vector<at::Tensor,std::allocator<_Ty>>” 需要有 dll 接口由 class“torch::nn::detail::RNNImplBasetorch::nn::RNNImpl”的客户端使用 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/Type.h(224): note: 参见“std::vector<at::Tensor,std::allocator<_Ty>>”的声明 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/nn/modules/rnn.h(202): warning C4251: “torch::nn::detail::RNNImplBasetorch::nn::LSTMImpl::w_ih”: class“std::vector<at::Tensor,std::allocator<_Ty>>”需要有 dll 接口由 class“torch::nn::detail::RNNImplBasetorch::nn::LSTMImpl”的客户端使用 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/Type.h(224): note: 参见“std::vector<at::Tensor,std::allocator<_Ty>>”的声明 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/nn/modules/rnn.h(202): warning C4251: “torch::nn::detail::RNNImplBasetorch::nn::LSTMImpl::w_hh”: class“std::vector<at::Tensor,std::allocator<_Ty>>”需要有 dll 接口由 class“torch::nn::detail::RNNImplBasetorch::nn::LSTMImpl”的客户端使用 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/Type.h(224): note: 参见“std::vector<at::Tensor,std::allocator<_Ty>>”的声明 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/nn/modules/rnn.h(202): warning C4251: “torch::nn::detail::RNNImplBasetorch::nn::LSTMImpl::b_ih”: class“std::vector<at::Tensor,std::allocator<_Ty>>”需要有 dll 接口由 class“torch::nn::detail::RNNImplBasetorch::nn::LSTMImpl”的客户端使用 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/Type.h(224): note: 参见“std::vector<at::Tensor,std::allocator<_Ty>>”的声明 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/nn/modules/rnn.h(202): warning C4251: “torch::nn::detail::RNNImplBasetorch::nn::LSTMImpl::b_hh”: class“std::vector<at::Tensor,std::allocator<_Ty>>”需要有 dll 接口由 class“torch::nn::detail::RNNImplBasetorch::nn::LSTMImpl”的客户端使用 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/Type.h(224): note: 参见“std::vector<at::Tensor,std::allocator<Ty>>”的声明 with [ Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/nn/modules/rnn.h(202): warning C4251: “torch::nn::detail::RNNImplBasetorch::nn::LSTMImpl::cudnn_mode”: class“c10::optional<torch::nn::detail::RNNImplBasetorch::nn::LSTMImpl::CuDNNMode>”需要有 dll 接口由 class“torch::nn::detail::RNNImplBasetorch::nn::LSTMImpl”的客户端使用 D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/nn/modules/rnn.h(64): note: 参见“c10::optional<torch::nn::detail::RNNImplBasetorch::nn::LSTMImpl::CuDNNMode>”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/nn/modules/rnn.h(202): warning C4251: “torch::nn::detail::RNNImplBasetorch::nn::LSTMImpl::flat_weights”: class“std::vector<at::Tensor,std::allocator<_Ty>>”需要有 dll 接口由 class“torch::nn::detail::RNNImplBasetorch::nn::LSTMImpl”的客户端使用 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/Type.h(224): note: 参见“std::vector<at::Tensor,std::allocator<_Ty>>”的声明 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/nn/modules/rnn.h(228): warning C4251: “torch::nn::detail::RNNImplBasetorch::nn::GRUImpl::w_ih”: class“std::vector<at::Tensor,std::allocator<_Ty>>”需要有 dll 接口由 class“torch::nn::detail::RNNImplBasetorch::nn::GRUImpl”的客户端使用 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/Type.h(224): note: 参见“std::vector<at::Tensor,std::allocator<_Ty>>”的声明 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/nn/modules/rnn.h(228): warning C4251: “torch::nn::detail::RNNImplBasetorch::nn::GRUImpl::w_hh”: class“std::vector<at::Tensor,std::allocator<_Ty>>”需要有 dll 接口由 class“torch::nn::detail::RNNImplBasetorch::nn::GRUImpl”的客户端使用 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/Type.h(224): note: 参见“std::vector<at::Tensor,std::allocator<_Ty>>”的声明 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/nn/modules/rnn.h(228): warning C4251: “torch::nn::detail::RNNImplBasetorch::nn::GRUImpl::b_ih”: class“std::vector<at::Tensor,std::allocator<_Ty>>”需要有 dll 接口由 class“torch::nn::detail::RNNImplBasetorch::nn::GRUImpl”的客户端使用 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/Type.h(224): note: 参见“std::vector<at::Tensor,std::allocator<_Ty>>”的声明 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/nn/modules/rnn.h(228): warning C4251: “torch::nn::detail::RNNImplBasetorch::nn::GRUImpl::b_hh”: class“std::vector<at::Tensor,std::allocator<_Ty>>”需要有 dll 接口由 class“torch::nn::detail::RNNImplBasetorch::nn::GRUImpl”的客户端使用 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/Type.h(224): note: 参见“std::vector<at::Tensor,std::allocator<Ty>>”的声明 with [ Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/nn/modules/rnn.h(228): warning C4251: “torch::nn::detail::RNNImplBasetorch::nn::GRUImpl::cudnn_mode”: class“c10::optional<torch::nn::detail::RNNImplBasetorch::nn::GRUImpl::CuDNNMode>”需要有 dll 接口由 class“torch::nn::detail::RNNImplBasetorch::nn::GRUImpl”的客户端使用 D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/nn/modules/rnn.h(64): note: 参见“c10::optional<torch::nn::detail::RNNImplBasetorch::nn::GRUImpl::CuDNNMode>”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/nn/modules/rnn.h(228): warning C4251: “torch::nn::detail::RNNImplBasetorch::nn::GRUImpl::flat_weights”: class“std::vector<at::Tensor,std::allocator<_Ty>>” 需要有 dll 接口由 class“torch::nn::detail::RNNImplBasetorch::nn::GRUImpl”的客户端使用 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/Type.h(224): note: 参见“std::vector<at::Tensor,std::allocator<_Ty>>”的声明 with [ Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/optim/optimizer.h(83): warning C4251: “torch::optim::detail::OptimizerBase::parameters”: class“std::vector<at::Tensor,std::allocator<_Ty>>”需要有 dll 接口由 class“torch::optim::detail::OptimizerBase”的客户端使用 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/Type.h(224): note: 参见“std::vector<at::Tensor,std::allocator<_Ty>>”的声明 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/optim/adagrad.h(28): warning C4275: 非 dll 接口 class“torch::optim::Optimizer”用作 dll 接口 class“torch::optim::Adagrad”的基 D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/optim/optimizer.h(100): note: 参见“torch::optim::Optimizer”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/optim/adagrad.h(28): note: 参见“torch::optim::Adagrad”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/optim/adagrad.h(44): warning C4251: “torch::optim::Adagrad::sum_buffers”: class“std::vector<at::Tensor,std::allocator<_Ty>>”需要有 dll 接口由 class“torch::optim::Adagrad”的客户端使用 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/Type.h(224): note: 参见“std::vector<at::Tensor,std::allocator<_Ty>>”的声明 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/optim/adagrad.h(45): warning C4251: “torch::optim::Adagrad::step_buffers”: class“std::vector<int64_t,std::allocator<_Ty>>”需要有 dll 接口由 class“torch::optim::Adagrad”的客户端使用 with [ _Ty=int64_t ] D:\Anaconda3\lib\site-packages\torch\lib\include\c10/util/typeid.h(584): note: 参见“std::vector<int64_t,std::allocator<_Ty>>”的声明 with [ _Ty=int64_t ] D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/optim/adam.h(31): warning C4275: 非 dll 接口 class“torch::optim::Optimizer”用作 dll 接口 class“torch::optim::Adam”的基 D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/optim/optimizer.h(100): note: 参见“torch::optim::Optimizer”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/optim/adam.h(31): note: 参见“torch::optim::Adam”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/optim/adam.h(45): warning C4251: “torch::optim::Adam::step_buffers”: class“std::vector<int64_t,std::allocator<_Ty>>”需要有 dll 接口由 class“torch::optim::Adam”的客户端使用 with [ _Ty=int64_t ] D:\Anaconda3\lib\site-packages\torch\lib\include\c10/util/typeid.h(584): note: 参见“std::vector<int64_t,std::allocator<_Ty>>”的声明 with [ _Ty=int64_t ] D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/optim/adam.h(46): warning C4251: “torch::optim::Adam::exp_average_buffers”: class“std::vector<at::Tensor,std::allocator<_Ty>>”需要有 dll 接口由 class“torch::optim::Adam”的客户端使用 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/Type.h(224): note: 参见“std::vector<at::Tensor,std::allocator<_Ty>>”的声明 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/optim/adam.h(47): warning C4251: “torch::optim::Adam::exp_average_sq_buffers”: class“std::vector<at::Tensor,std::allocator<_Ty>>”需要有 dll 接口由 class“torch::optim::Adam”的客户端使用 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/Type.h(224): note: 参见“std::vector<at::Tensor,std::allocator<_Ty>>”的声明 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/optim/adam.h(48): warning C4251: “torch::optim::Adam::max_exp_average_sq_buffers”: class“std::vector<at::Tensor,std::allocator<_Ty>>”需要有 dll 接口由 class“torch::optim::Adam”的客户端使用 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/Type.h(224): note: 参见“std::vector<at::Tensor,std::allocator<_Ty>>”的声明 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/optim/lbfgs.h(22): warning C4305: “初始化”: 从“double”到“float”截断 D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/optim/lbfgs.h(23): warning C4305: “初始化”: 从“double”到“float”截断 D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/optim/lbfgs.h(27): warning C4275: 非 dll 接口 class“torch::optim::LossClosureOptimizer”用作 dll 接口 class“torch::optim::LBFGS”的基 D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/optim/optimizer.h(110): note: 参见“torch::optim::LossClosureOptimizer”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/optim/lbfgs.h(27): note: 参见“torch::optim::LBFGS”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/optim/lbfgs.h(48): warning C4251: “torch::optim::LBFGS::ro”: class“std::vector<at::Tensor,std::allocator<_Ty>>”需要有 dll 接口由 class“torch::optim::LBFGS” 的客户端使用 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/Type.h(224): note: 参见“std::vector<at::Tensor,std::allocator<_Ty>>”的声明 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/optim/lbfgs.h(49): warning C4251: “torch::optim::LBFGS::al”: class“std::vector<at::Tensor,std::allocator<_Ty>>”需要有 dll 接口由 class“torch::optim::LBFGS” 的客户端使用 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/Type.h(224): note: 参见“std::vector<at::Tensor,std::allocator<_Ty>>”的声明 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/optim/lbfgs.h(50): warning C4251: “torch::optim::LBFGS::old_dirs”: class“std::deque<at::Tensor,std::allocator<_Ty>>”需要有 dll 接口由 class“torch::optim::LBFGS”的客户端使用 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/optim/lbfgs.h(50): note: 参见“std::deque<at::Tensor,std::allocator<_Ty>>”的声明 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/optim/lbfgs.h(51): warning C4251: “torch::optim::LBFGS::old_stps”: class“std::deque<at::Tensor,std::allocator<_Ty>>”需要有 dll 接口由 class“torch::optim::LBFGS”的客户端使用 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/optim/lbfgs.h(50): note: 参见“std::deque<at::Tensor,std::allocator<_Ty>>”的声明 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/optim/rmsprop.h(34): warning C4275: 非 dll 接口 class“torch::optim::Optimizer”用作 dll 接口 class“torch::optim::RMSprop”的基 D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/optim/optimizer.h(100): note: 参见“torch::optim::Optimizer”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/optim/rmsprop.h(34): note: 参见“torch::optim::RMSprop”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/optim/rmsprop.h(50): warning C4251: “torch::optim::RMSprop::square_average_buffers”: class“std::vector<at::Tensor,std::allocator<_Ty>>”需要有 dll 接口由 class“torch::optim::RMSprop”的客户端使用 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/Type.h(224): note: 参见“std::vector<at::Tensor,std::allocator<_Ty>>”的声明 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/optim/rmsprop.h(51): warning C4251: “torch::optim::RMSprop::momentum_buffers”: class“std::vector<at::Tensor,std::allocator<_Ty>>”需要有 dll 接口由 class“torch::optim::RMSprop”的客户端使用 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/Type.h(224): note: 参见“std::vector<at::Tensor,std::allocator<_Ty>>”的声明 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/optim/rmsprop.h(52): warning C4251: “torch::optim::RMSprop::grad_average_buffers”: class“std::vector<at::Tensor,std::allocator<_Ty>>”需要有 dll 接口由 class“torch::optim::RMSprop”的客户端使用 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/Type.h(224): note: 参见“std::vector<at::Tensor,std::allocator<_Ty>>”的声明 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/optim/sgd.h(31): warning C4275: 非 dll 接 口 class“torch::optim::Optimizer”用作 dll 接口 class“torch::optim::SGD”的基 D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/optim/optimizer.h(100): note: 参见“torch::optim::Optimizer”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/optim/sgd.h(31): note: 参见“torch::optim::SGD”的声明 D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/optim/sgd.h(45): warning C4251: “torch::optim::SGD::momentum_buffers”: class“std::vector<at::Tensor,std::allocator<_Ty>>”需要有 dll 接口由 class“torch::optim::SGD”的客户端使用 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\ATen/core/Type.h(224): note: 参见“std::vector<at::Tensor,std::allocator<_Ty>>”的声明 with [ _Ty=at::Tensor ] D:\Anaconda3\lib\site-packages\torch\lib\include\torch\csrc\api\include\torch/torch.h(7): fatal error C1021: 无效的预处 理器命令“warning” error: command 'D:\VisualStudio\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\cl.exe' failed with exit status 2

    opened by Weipeilang 18
  • PyTorch 1.0 support?

    PyTorch 1.0 support?

    Hi guys! Does your project supports PyTorch 1.0? I've tried to install it with PT 1.0 but obtained following error message:

    (.venv) ➜  neural_renderer git:(master) python3 setup.py install             
    running install
    running bdist_egg
    running egg_info
    writing neural_renderer.egg-info/PKG-INFO
    writing dependency_links to neural_renderer.egg-info/dependency_links.txt
    writing requirements to neural_renderer.egg-info/requires.txt
    writing top-level names to neural_renderer.egg-info/top_level.txt
    reading manifest file 'neural_renderer.egg-info/SOURCES.txt'
    writing manifest file 'neural_renderer.egg-info/SOURCES.txt'
    installing library code to build/bdist.linux-x86_64/egg
    running install_lib
    running build_py
    running build_ext
    building 'neural_renderer.cuda.load_textures' extension
    x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fdebug-prefix-map=/build/python3.6-sXpGnM/python3.6-3.6.3=. -specs=/usr/share/dpkg/no-pie-compile.specs -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/daiver/coding/neural_renderer/.venv/lib/python3.6/site-packages/torch/lib/include -I/home/daiver/coding/neural_renderer/.venv/lib/python3.6/site-packages/torch/lib/include/torch/csrc/api/include -I/home/daiver/coding/neural_renderer/.venv/lib/python3.6/site-packages/torch/lib/include/TH -I/home/daiver/coding/neural_renderer/.venv/lib/python3.6/site-packages/torch/lib/include/THC -I/usr/local/cuda/include -I/home/daiver/coding/neural_renderer/.venv/include -I/usr/include/python3.6m -c neural_renderer/cuda/load_textures_cuda.cpp -o build/temp.linux-x86_64-3.6/neural_renderer/cuda/load_textures_cuda.o -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=load_textures -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++11
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    In file included from neural_renderer/cuda/load_textures_cuda.cpp:1:0:
    /home/daiver/coding/neural_renderer/.venv/lib/python3.6/site-packages/torch/lib/include/torch/csrc/api/include/torch/torch.h:7:2: warning: #warning "Including torch/torch.h for C++ extensions is deprecated. Please include torch/extension.h" [-Wcpp]
     #warning \
      ^~~~~~~
    /usr/local/cuda/bin/nvcc -I/home/daiver/coding/neural_renderer/.venv/lib/python3.6/site-packages/torch/lib/include -I/home/daiver/coding/neural_renderer/.venv/lib/python3.6/site-packages/torch/lib/include/torch/csrc/api/include -I/home/daiver/coding/neural_renderer/.venv/lib/python3.6/site-packages/torch/lib/include/TH -I/home/daiver/coding/neural_renderer/.venv/lib/python3.6/site-packages/torch/lib/include/THC -I/usr/local/cuda/include -I/home/daiver/coding/neural_renderer/.venv/include -I/usr/include/python3.6m -c neural_renderer/cuda/load_textures_cuda_kernel.cu -o build/temp.linux-x86_64-3.6/neural_renderer/cuda/load_textures_cuda_kernel.o -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --compiler-options '-fPIC' -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=load_textures -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++11
    /usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<<anonymous>, _Elements>::_MoveConstructibleTuple() [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor>}; bool <anonymous> = true; _Elements = {at::Tensor, at::Tensor, at::Tensor}]’:
    /usr/include/c++/6/tuple:626:248:   required by substitution of ‘template<class ... _UElements, typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor, at::Tensor, at::Tensor>::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor>::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (3ul >= 1)), bool>::type <anonymous> > constexpr std::tuple< <template-parameter-1-1> >::tuple(_UElements&& ...) [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor>}; typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor, at::Tensor, at::Tensor>::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor>::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (3ul >= 1)), bool>::type <anonymous> = <missing>]’
    /home/daiver/coding/neural_renderer/.venv/lib/python3.6/site-packages/torch/lib/include/ATen/core/TensorMethods.h:1117:48:   required from here
    /usr/include/c++/6/tuple:483:67: error: mismatched argument pack lengths while expanding ‘std::is_constructible<_Elements, _UElements&&>’
           return __and_<is_constructible<_Elements, _UElements&&>...>::value;
                                                                       ^~~~~
    /usr/include/c++/6/tuple:484:1: error: body of constexpr function ‘static constexpr bool std::_TC<<anonymous>, _Elements>::_MoveConstructibleTuple() [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor>}; bool <anonymous> = true; _Elements = {at::Tensor, at::Tensor, at::Tensor}]’ not a return-statement
         }
     ^
    /usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<<anonymous>, _Elements>::_ImplicitlyMoveConvertibleTuple() [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor>}; bool <anonymous> = true; _Elements = {at::Tensor, at::Tensor, at::Tensor}]’:
    /usr/include/c++/6/tuple:626:362:   required by substitution of ‘template<class ... _UElements, typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor, at::Tensor, at::Tensor>::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor>::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (3ul >= 1)), bool>::type <anonymous> > constexpr std::tuple< <template-parameter-1-1> >::tuple(_UElements&& ...) [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor>}; typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor, at::Tensor, at::Tensor>::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor>::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (3ul >= 1)), bool>::type <anonymous> = <missing>]’
    /home/daiver/coding/neural_renderer/.venv/lib/python3.6/site-packages/torch/lib/include/ATen/core/TensorMethods.h:1117:48:   required from here
    /usr/include/c++/6/tuple:489:65: error: mismatched argument pack lengths while expanding ‘std::is_convertible<_UElements&&, _Elements>’
           return __and_<is_convertible<_UElements&&, _Elements>...>::value;
                                                                     ^~~~~
    /usr/include/c++/6/tuple:490:1: error: body of constexpr function ‘static constexpr bool std::_TC<<anonymous>, _Elements>::_ImplicitlyMoveConvertibleTuple() [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor>}; bool <anonymous> = true; _Elements = {at::Tensor, at::Tensor, at::Tensor}]’ not a return-statement
         }
     ^
    /usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<<anonymous>, _Elements>::_NonNestedTuple() [with _SrcTuple = const std::tuple<at::Tensor, at::Tensor, at::Tensor>&; bool <anonymous> = true; _Elements = {at::Tensor, at::Tensor, at::Tensor}]’:
    /usr/include/c++/6/tuple:662:419:   required by substitution of ‘template<class ... _UElements, class _Dummy, typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor>::_ConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor, at::Tensor, at::Tensor>::_NonNestedTuple<const tuple<_Elements ...>&>()), bool>::type <anonymous> > constexpr std::tuple< <template-parameter-1-1> >::tuple(const std::tuple<_Args1 ...>&) [with _UElements = {at::Tensor, at::Tensor, at::Tensor}; _Dummy = void; typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor>::_ConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor, at::Tensor, at::Tensor>::_NonNestedTuple<const tuple<_Elements ...>&>()), bool>::type <anonymous> = <missing>]’
    /home/daiver/coding/neural_renderer/.venv/lib/python3.6/site-packages/torch/lib/include/ATen/core/TensorMethods.h:1117:48:   required from here
    /usr/include/c++/6/tuple:495:244: error: wrong number of template arguments (4, should be 2)
           return  __and_<__not_<is_same<tuple<_Elements...>,
                                                                                                                                                                                                                                                        ^    
    /usr/include/c++/6/type_traits:1558:8: note: provided for ‘template<class _From, class _To> struct std::is_convertible’
         struct is_convertible
            ^~~~~~~~~~~~~~
    /usr/include/c++/6/tuple:502:1: error: body of constexpr function ‘static constexpr bool std::_TC<<anonymous>, _Elements>::_NonNestedTuple() [with _SrcTuple = const std::tuple<at::Tensor, at::Tensor, at::Tensor>&; bool <anonymous> = true; _Elements = {at::Tensor, at::Tensor, at::Tensor}]’ not a return-statement
         }
     ^
    /usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<<anonymous>, _Elements>::_NonNestedTuple() [with _SrcTuple = std::tuple<at::Tensor, at::Tensor, at::Tensor>&&; bool <anonymous> = true; _Elements = {at::Tensor, at::Tensor, at::Tensor}]’:
    /usr/include/c++/6/tuple:686:422:   required by substitution of ‘template<class ... _UElements, class _Dummy, typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor>::_MoveConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor, at::Tensor, at::Tensor>::_NonNestedTuple<tuple<_Elements ...>&&>()), bool>::type <anonymous> > constexpr std::tuple< <template-parameter-1-1> >::tuple(std::tuple<_Args1 ...>&&) [with _UElements = {at::Tensor, at::Tensor, at::Tensor}; _Dummy = void; typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor>::_MoveConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor, at::Tensor, at::Tensor>::_NonNestedTuple<tuple<_Elements ...>&&>()), bool>::type <anonymous> = <missing>]’
    /home/daiver/coding/neural_renderer/.venv/lib/python3.6/site-packages/torch/lib/include/ATen/core/TensorMethods.h:1117:48:   required from here
    /usr/include/c++/6/tuple:495:244: error: wrong number of template arguments (4, should be 2)
           return  __and_<__not_<is_same<tuple<_Elements...>,
                                                                                                                                                                                                                                                        ^    
    /usr/include/c++/6/type_traits:1558:8: note: provided for ‘template<class _From, class _To> struct std::is_convertible’
         struct is_convertible
            ^~~~~~~~~~~~~~
    /usr/include/c++/6/tuple:502:1: error: body of constexpr function ‘static constexpr bool std::_TC<<anonymous>, _Elements>::_NonNestedTuple() [with _SrcTuple = std::tuple<at::Tensor, at::Tensor, at::Tensor>&&; bool <anonymous> = true; _Elements = {at::Tensor, at::Tensor, at::Tensor}]’ not a return-statement
         }
     ^
    /usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<<anonymous>, _Elements>::_MoveConstructibleTuple() [with _UElements = {std::tuple<at::Tensor&, at::Tensor&, at::Tensor&>}; bool <anonymous> = true; _Elements = {at::Tensor&, at::Tensor&, at::Tensor&}]’:
    /usr/include/c++/6/tuple:626:248:   required by substitution of ‘template<class ... _UElements, typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor&, at::Tensor&, at::Tensor&>::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor&, at::Tensor&, at::Tensor&>::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor&, at::Tensor&, at::Tensor&>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (3ul >= 1)), bool>::type <anonymous> > constexpr std::tuple< <template-parameter-1-1> >::tuple(_UElements&& ...) [with _UElements = {std::tuple<at::Tensor&, at::Tensor&, at::Tensor&>}; typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor&, at::Tensor&, at::Tensor&>::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor&, at::Tensor&, at::Tensor&>::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor&, at::Tensor&, at::Tensor&>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (3ul >= 1)), bool>::type <anonymous> = <missing>]’
    /home/daiver/coding/neural_renderer/.venv/lib/python3.6/site-packages/torch/lib/include/ATen/Functions.h:2558:85:   required from here
    /usr/include/c++/6/tuple:483:67: error: mismatched argument pack lengths while expanding ‘std::is_constructible<_Elements, _UElements&&>’
           return __and_<is_constructible<_Elements, _UElements&&>...>::value;
                                                                       ^~~~~
    /usr/include/c++/6/tuple:484:1: error: body of constexpr function ‘static constexpr bool std::_TC<<anonymous>, _Elements>::_MoveConstructibleTuple() [with _UElements = {std::tuple<at::Tensor&, at::Tensor&, at::Tensor&>}; bool <anonymous> = true; _Elements = {at::Tensor&, at::Tensor&, at::Tensor&}]’ not a return-statement
         }
     ^
    /usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<<anonymous>, _Elements>::_ImplicitlyMoveConvertibleTuple() [with _UElements = {std::tuple<at::Tensor&, at::Tensor&, at::Tensor&>}; bool <anonymous> = true; _Elements = {at::Tensor&, at::Tensor&, at::Tensor&}]’:
    /usr/include/c++/6/tuple:626:362:   required by substitution of ‘template<class ... _UElements, typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor&, at::Tensor&, at::Tensor&>::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor&, at::Tensor&, at::Tensor&>::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor&, at::Tensor&, at::Tensor&>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (3ul >= 1)), bool>::type <anonymous> > constexpr std::tuple< <template-parameter-1-1> >::tuple(_UElements&& ...) [with _UElements = {std::tuple<at::Tensor&, at::Tensor&, at::Tensor&>}; typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor&, at::Tensor&, at::Tensor&>::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor&, at::Tensor&, at::Tensor&>::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor&, at::Tensor&, at::Tensor&>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (3ul >= 1)), bool>::type <anonymous> = <missing>]’
    /home/daiver/coding/neural_renderer/.venv/lib/python3.6/site-packages/torch/lib/include/ATen/Functions.h:2558:85:   required from here
    /usr/include/c++/6/tuple:489:65: error: mismatched argument pack lengths while expanding ‘std::is_convertible<_UElements&&, _Elements>’
           return __and_<is_convertible<_UElements&&, _Elements>...>::value;
                                                                     ^~~~~
    /usr/include/c++/6/tuple:490:1: error: body of constexpr function ‘static constexpr bool std::_TC<<anonymous>, _Elements>::_ImplicitlyMoveConvertibleTuple() [with _UElements = {std::tuple<at::Tensor&, at::Tensor&, at::Tensor&>}; bool <anonymous> = true; _Elements = {at::Tensor&, at::Tensor&, at::Tensor&}]’ not a return-statement
         }
     ^
    /usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<<anonymous>, _Elements>::_NonNestedTuple() [with _SrcTuple = const std::tuple<at::Tensor&, at::Tensor&, at::Tensor&>&; bool <anonymous> = true; _Elements = {at::Tensor&, at::Tensor&, at::Tensor&}]’:
    /usr/include/c++/6/tuple:662:419:   required by substitution of ‘template<class ... _UElements, class _Dummy, typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor&, at::Tensor&, at::Tensor&>::_ConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor&, at::Tensor&, at::Tensor&>::_ImplicitlyConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor&, at::Tensor&, at::Tensor&>::_NonNestedTuple<const tuple<_Elements ...>&>()), bool>::type <anonymous> > constexpr std::tuple< <template-parameter-1-1> >::tuple(const std::tuple<_Args1 ...>&) [with _UElements = {at::Tensor&, at::Tensor&, at::Tensor&}; _Dummy = void; typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor&, at::Tensor&, at::Tensor&>::_ConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor&, at::Tensor&, at::Tensor&>::_ImplicitlyConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor&, at::Tensor&, at::Tensor&>::_NonNestedTuple<const tuple<_Elements ...>&>()), bool>::type <anonymous> = <missing>]’
    /home/daiver/coding/neural_renderer/.venv/lib/python3.6/site-packages/torch/lib/include/ATen/Functions.h:2558:85:   required from here
    /usr/include/c++/6/tuple:495:244: error: wrong number of template arguments (4, should be 2)
           return  __and_<__not_<is_same<tuple<_Elements...>,
                                                                                                                                                                                                                                                        ^    
    /usr/include/c++/6/type_traits:1558:8: note: provided for ‘template<class _From, class _To> struct std::is_convertible’
         struct is_convertible
            ^~~~~~~~~~~~~~
    /usr/include/c++/6/tuple:502:1: error: body of constexpr function ‘static constexpr bool std::_TC<<anonymous>, _Elements>::_NonNestedTuple() [with _SrcTuple = const std::tuple<at::Tensor&, at::Tensor&, at::Tensor&>&; bool <anonymous> = true; _Elements = {at::Tensor&, at::Tensor&, at::Tensor&}]’ not a return-statement
         }
     ^
    /usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<<anonymous>, _Elements>::_NonNestedTuple() [with _SrcTuple = std::tuple<at::Tensor&, at::Tensor&, at::Tensor&>&&; bool <anonymous> = true; _Elements = {at::Tensor&, at::Tensor&, at::Tensor&}]’:
    /usr/include/c++/6/tuple:686:422:   required by substitution of ‘template<class ... _UElements, class _Dummy, typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor&, at::Tensor&, at::Tensor&>::_MoveConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor&, at::Tensor&, at::Tensor&>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor&, at::Tensor&, at::Tensor&>::_NonNestedTuple<tuple<_Elements ...>&&>()), bool>::type <anonymous> > constexpr std::tuple< <template-parameter-1-1> >::tuple(std::tuple<_Args1 ...>&&) [with _UElements = {at::Tensor&, at::Tensor&, at::Tensor&}; _Dummy = void; typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor&, at::Tensor&, at::Tensor&>::_MoveConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor&, at::Tensor&, at::Tensor&>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor&, at::Tensor&, at::Tensor&>::_NonNestedTuple<tuple<_Elements ...>&&>()), bool>::type <anonymous> = <missing>]’
    /home/daiver/coding/neural_renderer/.venv/lib/python3.6/site-packages/torch/lib/include/ATen/Functions.h:2558:85:   required from here
    /usr/include/c++/6/tuple:495:244: error: wrong number of template arguments (4, should be 2)
           return  __and_<__not_<is_same<tuple<_Elements...>,
                                                                                                                                                                                                                                                        ^    
    /usr/include/c++/6/type_traits:1558:8: note: provided for ‘template<class _From, class _To> struct std::is_convertible’
         struct is_convertible
            ^~~~~~~~~~~~~~
    /usr/include/c++/6/tuple:502:1: error: body of constexpr function ‘static constexpr bool std::_TC<<anonymous>, _Elements>::_NonNestedTuple() [with _SrcTuple = std::tuple<at::Tensor&, at::Tensor&, at::Tensor&>&&; bool <anonymous> = true; _Elements = {at::Tensor&, at::Tensor&, at::Tensor&}]’ not a return-statement
         }
     ^
    /usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<<anonymous>, _Elements>::_MoveConstructibleTuple() [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>}; bool <anonymous> = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor}]’:
    /usr/include/c++/6/tuple:626:248:   required by substitution of ‘template<class ... _UElements, typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (5ul >= 1)), bool>::type <anonymous> > constexpr std::tuple< <template-parameter-1-1> >::tuple(_UElements&& ...) [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>}; typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (5ul >= 1)), bool>::type <anonymous> = <missing>]’
    /home/daiver/coding/neural_renderer/.venv/lib/python3.6/site-packages/torch/lib/include/ATen/Functions.h:3623:197:   required from here
    /usr/include/c++/6/tuple:483:67: error: mismatched argument pack lengths while expanding ‘std::is_constructible<_Elements, _UElements&&>’
           return __and_<is_constructible<_Elements, _UElements&&>...>::value;
                                                                       ^~~~~
    /usr/include/c++/6/tuple:484:1: error: body of constexpr function ‘static constexpr bool std::_TC<<anonymous>, _Elements>::_MoveConstructibleTuple() [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>}; bool <anonymous> = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor}]’ not a return-statement
         }
     ^
    /usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<<anonymous>, _Elements>::_ImplicitlyMoveConvertibleTuple() [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>}; bool <anonymous> = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor}]’:
    /usr/include/c++/6/tuple:626:362:   required by substitution of ‘template<class ... _UElements, typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (5ul >= 1)), bool>::type <anonymous> > constexpr std::tuple< <template-parameter-1-1> >::tuple(_UElements&& ...) [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>}; typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (5ul >= 1)), bool>::type <anonymous> = <missing>]’
    /home/daiver/coding/neural_renderer/.venv/lib/python3.6/site-packages/torch/lib/include/ATen/Functions.h:3623:197:   required from here
    /usr/include/c++/6/tuple:489:65: error: mismatched argument pack lengths while expanding ‘std::is_convertible<_UElements&&, _Elements>’
           return __and_<is_convertible<_UElements&&, _Elements>...>::value;
                                                                     ^~~~~
    /usr/include/c++/6/tuple:490:1: error: body of constexpr function ‘static constexpr bool std::_TC<<anonymous>, _Elements>::_ImplicitlyMoveConvertibleTuple() [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>}; bool <anonymous> = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor}]’ not a return-statement
         }
     ^
    /usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<<anonymous>, _Elements>::_NonNestedTuple() [with _SrcTuple = const std::tuple<at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>&; bool <anonymous> = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor}]’:
    /usr/include/c++/6/tuple:662:419:   required by substitution of ‘template<class ... _UElements, class _Dummy, typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_ConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_NonNestedTuple<const tuple<_Elements ...>&>()), bool>::type <anonymous> > constexpr std::tuple< <template-parameter-1-1> >::tuple(const std::tuple<_Args1 ...>&) [with _UElements = {at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor}; _Dummy = void; typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_ConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_NonNestedTuple<const tuple<_Elements ...>&>()), bool>::type <anonymous> = <missing>]’
    /home/daiver/coding/neural_renderer/.venv/lib/python3.6/site-packages/torch/lib/include/ATen/Functions.h:3623:197:   required from here
    /usr/include/c++/6/tuple:495:244: error: wrong number of template arguments (6, should be 2)
           return  __and_<__not_<is_same<tuple<_Elements...>,
                                                                                                                                                                                                                                                        ^    
    /usr/include/c++/6/type_traits:1558:8: note: provided for ‘template<class _From, class _To> struct std::is_convertible’
         struct is_convertible
            ^~~~~~~~~~~~~~
    /usr/include/c++/6/tuple:502:1: error: body of constexpr function ‘static constexpr bool std::_TC<<anonymous>, _Elements>::_NonNestedTuple() [with _SrcTuple = const std::tuple<at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>&; bool <anonymous> = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor}]’ not a return-statement
         }
     ^
    /usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<<anonymous>, _Elements>::_NonNestedTuple() [with _SrcTuple = std::tuple<at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>&&; bool <anonymous> = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor}]’:
    /usr/include/c++/6/tuple:686:422:   required by substitution of ‘template<class ... _UElements, class _Dummy, typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_MoveConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_NonNestedTuple<tuple<_Elements ...>&&>()), bool>::type <anonymous> > constexpr std::tuple< <template-parameter-1-1> >::tuple(std::tuple<_Args1 ...>&&) [with _UElements = {at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor}; _Dummy = void; typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_MoveConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_NonNestedTuple<tuple<_Elements ...>&&>()), bool>::type <anonymous> = <missing>]’
    /home/daiver/coding/neural_renderer/.venv/lib/python3.6/site-packages/torch/lib/include/ATen/Functions.h:3623:197:   required from here
    /usr/include/c++/6/tuple:495:244: error: wrong number of template arguments (6, should be 2)
           return  __and_<__not_<is_same<tuple<_Elements...>,
                                                                                                                                                                                                                                                        ^    
    /usr/include/c++/6/type_traits:1558:8: note: provided for ‘template<class _From, class _To> struct std::is_convertible’
         struct is_convertible
            ^~~~~~~~~~~~~~
    /usr/include/c++/6/tuple:502:1: error: body of constexpr function ‘static constexpr bool std::_TC<<anonymous>, _Elements>::_NonNestedTuple() [with _SrcTuple = std::tuple<at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor>&&; bool <anonymous> = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, at::Tensor, at::Tensor}]’ not a return-statement
         }
     ^
    /usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<<anonymous>, _Elements>::_MoveConstructibleTuple() [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocator<at::Tensor> > >}; bool <anonymous> = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocator<at::Tensor> >}]’:
    /usr/include/c++/6/tuple:626:248:   required by substitution of ‘template<class ... _UElements, typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocator<at::Tensor> > >::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocator<at::Tensor> > >::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocator<at::Tensor> > >::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (4ul >= 1)), bool>::type <anonymous> > constexpr std::tuple< <template-parameter-1-1> >::tuple(_UElements&& ...) [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocator<at::Tensor> > >}; typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocator<at::Tensor> > >::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocator<at::Tensor> > >::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocator<at::Tensor> > >::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (4ul >= 1)), bool>::type <anonymous> = <missing>]’
    /home/daiver/coding/neural_renderer/.venv/lib/python3.6/site-packages/torch/lib/include/ATen/Functions.h:3626:267:   required from here
    /usr/include/c++/6/tuple:483:67: error: mismatched argument pack lengths while expanding ‘std::is_constructible<_Elements, _UElements&&>’
           return __and_<is_constructible<_Elements, _UElements&&>...>::value;
                                                                       ^~~~~
    /usr/include/c++/6/tuple:484:1: error: body of constexpr function ‘static constexpr bool std::_TC<<anonymous>, _Elements>::_MoveConstructibleTuple() [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocator<at::Tensor> > >}; bool <anonymous> = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocator<at::Tensor> >}]’ not a return-statement
         }
     ^
    /usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<<anonymous>, _Elements>::_ImplicitlyMoveConvertibleTuple() [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocator<at::Tensor> > >}; bool <anonymous> = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocator<at::Tensor> >}]’:
    /usr/include/c++/6/tuple:626:362:   required by substitution of ‘template<class ... _UElements, typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocator<at::Tensor> > >::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocator<at::Tensor> > >::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocator<at::Tensor> > >::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (4ul >= 1)), bool>::type <anonymous> > constexpr std::tuple< <template-parameter-1-1> >::tuple(_UElements&& ...) [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocator<at::Tensor> > >}; typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocator<at::Tensor> > >::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocator<at::Tensor> > >::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocator<at::Tensor> > >::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (4ul >= 1)), bool>::type <anonymous> = <missing>]’
    /home/daiver/coding/neural_renderer/.venv/lib/python3.6/site-packages/torch/lib/include/ATen/Functions.h:3626:267:   required from here
    /usr/include/c++/6/tuple:489:65: error: mismatched argument pack lengths while expanding ‘std::is_convertible<_UElements&&, _Elements>’
           return __and_<is_convertible<_UElements&&, _Elements>...>::value;
                                                                     ^~~~~
    /usr/include/c++/6/tuple:490:1: error: body of constexpr function ‘static constexpr bool std::_TC<<anonymous>, _Elements>::_ImplicitlyMoveConvertibleTuple() [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocator<at::Tensor> > >}; bool <anonymous> = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocator<at::Tensor> >}]’ not a return-statement
         }
     ^
    /usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<<anonymous>, _Elements>::_NonNestedTuple() [with _SrcTuple = const std::tuple<at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocator<at::Tensor> > >&; bool <anonymous> = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocator<at::Tensor> >}]’:
    /usr/include/c++/6/tuple:662:419:   required by substitution of ‘template<class ... _UElements, class _Dummy, typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocator<at::Tensor> > >::_ConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocator<at::Tensor> > >::_ImplicitlyConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocator<at::Tensor> > >::_NonNestedTuple<const tuple<_Elements ...>&>()), bool>::type <anonymous> > constexpr std::tuple< <template-parameter-1-1> >::tuple(const std::tuple<_Args1 ...>&) [with _UElements = {at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocator<at::Tensor> >}; _Dummy = void; typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocator<at::Tensor> > >::_ConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocator<at::Tensor> > >::_ImplicitlyConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocator<at::Tensor> > >::_NonNestedTuple<const tuple<_Elements ...>&>()), bool>::type <anonymous> = <missing>]’
    /home/daiver/coding/neural_renderer/.venv/lib/python3.6/site-packages/torch/lib/include/ATen/Functions.h:3626:267:   required from here
    /usr/include/c++/6/tuple:495:244: error: wrong number of template arguments (5, should be 2)
           return  __and_<__not_<is_same<tuple<_Elements...>,
                                                                                                                                                                                                                                                        ^    
    /usr/include/c++/6/type_traits:1558:8: note: provided for ‘template<class _From, class _To> struct std::is_convertible’
         struct is_convertible
            ^~~~~~~~~~~~~~
    /usr/include/c++/6/tuple:502:1: error: body of constexpr function ‘static constexpr bool std::_TC<<anonymous>, _Elements>::_NonNestedTuple() [with _SrcTuple = const std::tuple<at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocator<at::Tensor> > >&; bool <anonymous> = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocator<at::Tensor> >}]’ not a return-statement
         }
     ^
    /usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<<anonymous>, _Elements>::_NonNestedTuple() [with _SrcTuple = std::tuple<at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocator<at::Tensor> > >&&; bool <anonymous> = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocator<at::Tensor> >}]’:
    /usr/include/c++/6/tuple:686:422:   required by substitution of ‘template<class ... _UElements, class _Dummy, typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocator<at::Tensor> > >::_MoveConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocator<at::Tensor> > >::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocator<at::Tensor> > >::_NonNestedTuple<tuple<_Elements ...>&&>()), bool>::type <anonymous> > constexpr std::tuple< <template-parameter-1-1> >::tuple(std::tuple<_Args1 ...>&&) [with _UElements = {at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocator<at::Tensor> >}; _Dummy = void; typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocator<at::Tensor> > >::_MoveConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocator<at::Tensor> > >::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocator<at::Tensor> > >::_NonNestedTuple<tuple<_Elements ...>&&>()), bool>::type <anonymous> = <missing>]’
    /home/daiver/coding/neural_renderer/.venv/lib/python3.6/site-packages/torch/lib/include/ATen/Functions.h:3626:267:   required from here
    /usr/include/c++/6/tuple:495:244: error: wrong number of template arguments (5, should be 2)
           return  __and_<__not_<is_same<tuple<_Elements...>,
                                                                                                                                                                                                                                                        ^    
    /usr/include/c++/6/type_traits:1558:8: note: provided for ‘template<class _From, class _To> struct std::is_convertible’
         struct is_convertible
            ^~~~~~~~~~~~~~
    /usr/include/c++/6/tuple:502:1: error: body of constexpr function ‘static constexpr bool std::_TC<<anonymous>, _Elements>::_NonNestedTuple() [with _SrcTuple = std::tuple<at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocator<at::Tensor> > >&&; bool <anonymous> = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, std::vector<at::Tensor, std::allocator<at::Tensor> >}]’ not a return-statement
         }
     ^
    /usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<<anonymous>, _Elements>::_MoveConstructibleTuple() [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor, at::Tensor>}; bool <anonymous> = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, at::Tensor}]’:
    /usr/include/c++/6/tuple:626:248:   required by substitution of ‘template<class ... _UElements, typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (4ul >= 1)), bool>::type <anonymous> > constexpr std::tuple< <template-parameter-1-1> >::tuple(_UElements&& ...) [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor, at::Tensor>}; typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (4ul >= 1)), bool>::type <anonymous> = <missing>]’
    /home/daiver/coding/neural_renderer/.venv/lib/python3.6/site-packages/torch/lib/include/ATen/Functions.h:4119:107:   required from here
    /usr/include/c++/6/tuple:483:67: error: mismatched argument pack lengths while expanding ‘std::is_constructible<_Elements, _UElements&&>’
           return __and_<is_constructible<_Elements, _UElements&&>...>::value;
                                                                       ^~~~~
    /usr/include/c++/6/tuple:484:1: error: body of constexpr function ‘static constexpr bool std::_TC<<anonymous>, _Elements>::_MoveConstructibleTuple() [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor, at::Tensor>}; bool <anonymous> = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, at::Tensor}]’ not a return-statement
         }
     ^
    /usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<<anonymous>, _Elements>::_ImplicitlyMoveConvertibleTuple() [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor, at::Tensor>}; bool <anonymous> = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, at::Tensor}]’:
    /usr/include/c++/6/tuple:626:362:   required by substitution of ‘template<class ... _UElements, typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (4ul >= 1)), bool>::type <anonymous> > constexpr std::tuple< <template-parameter-1-1> >::tuple(_UElements&& ...) [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor, at::Tensor>}; typename std::enable_if<(((std::_TC<(sizeof... (_UElements) == 1), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_NotSameTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_MoveConstructibleTuple<_UElements ...>()) && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && (4ul >= 1)), bool>::type <anonymous> = <missing>]’
    /home/daiver/coding/neural_renderer/.venv/lib/python3.6/site-packages/torch/lib/include/ATen/Functions.h:4119:107:   required from here
    /usr/include/c++/6/tuple:489:65: error: mismatched argument pack lengths while expanding ‘std::is_convertible<_UElements&&, _Elements>’
           return __and_<is_convertible<_UElements&&, _Elements>...>::value;
                                                                     ^~~~~
    /usr/include/c++/6/tuple:490:1: error: body of constexpr function ‘static constexpr bool std::_TC<<anonymous>, _Elements>::_ImplicitlyMoveConvertibleTuple() [with _UElements = {std::tuple<at::Tensor, at::Tensor, at::Tensor, at::Tensor>}; bool <anonymous> = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, at::Tensor}]’ not a return-statement
         }
     ^
    /usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<<anonymous>, _Elements>::_NonNestedTuple() [with _SrcTuple = const std::tuple<at::Tensor, at::Tensor, at::Tensor, at::Tensor>&; bool <anonymous> = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, at::Tensor}]’:
    /usr/include/c++/6/tuple:662:419:   required by substitution of ‘template<class ... _UElements, class _Dummy, typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_ConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_NonNestedTuple<const tuple<_Elements ...>&>()), bool>::type <anonymous> > constexpr std::tuple< <template-parameter-1-1> >::tuple(const std::tuple<_Args1 ...>&) [with _UElements = {at::Tensor, at::Tensor, at::Tensor, at::Tensor}; _Dummy = void; typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_ConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_NonNestedTuple<const tuple<_Elements ...>&>()), bool>::type <anonymous> = <missing>]’
    /home/daiver/coding/neural_renderer/.venv/lib/python3.6/site-packages/torch/lib/include/ATen/Functions.h:4119:107:   required from here
    /usr/include/c++/6/tuple:495:244: error: wrong number of template arguments (5, should be 2)
           return  __and_<__not_<is_same<tuple<_Elements...>,
                                                                                                                                                                                                                                                        ^    
    /usr/include/c++/6/type_traits:1558:8: note: provided for ‘template<class _From, class _To> struct std::is_convertible’
         struct is_convertible
            ^~~~~~~~~~~~~~
    /usr/include/c++/6/tuple:502:1: error: body of constexpr function ‘static constexpr bool std::_TC<<anonymous>, _Elements>::_NonNestedTuple() [with _SrcTuple = const std::tuple<at::Tensor, at::Tensor, at::Tensor, at::Tensor>&; bool <anonymous> = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, at::Tensor}]’ not a return-statement
         }
     ^
    /usr/include/c++/6/tuple: In instantiation of ‘static constexpr bool std::_TC<<anonymous>, _Elements>::_NonNestedTuple() [with _SrcTuple = std::tuple<at::Tensor, at::Tensor, at::Tensor, at::Tensor>&&; bool <anonymous> = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, at::Tensor}]’:
    /usr/include/c++/6/tuple:686:422:   required by substitution of ‘template<class ... _UElements, class _Dummy, typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_MoveConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_NonNestedTuple<tuple<_Elements ...>&&>()), bool>::type <anonymous> > constexpr std::tuple< <template-parameter-1-1> >::tuple(std::tuple<_Args1 ...>&&) [with _UElements = {at::Tensor, at::Tensor, at::Tensor, at::Tensor}; _Dummy = void; typename std::enable_if<((std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_MoveConstructibleTuple<_UElements ...>() && std::_TC<(1ul == sizeof... (_UElements)), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_ImplicitlyMoveConvertibleTuple<_UElements ...>()) && std::_TC<(std::is_same<_Dummy, void>::value && (1ul == 1)), at::Tensor, at::Tensor, at::Tensor, at::Tensor>::_NonNestedTuple<tuple<_Elements ...>&&>()), bool>::type <anonymous> = <missing>]’
    /home/daiver/coding/neural_renderer/.venv/lib/python3.6/site-packages/torch/lib/include/ATen/Functions.h:4119:107:   required from here
    /usr/include/c++/6/tuple:495:244: error: wrong number of template arguments (5, should be 2)
           return  __and_<__not_<is_same<tuple<_Elements...>,
                                                                                                                                                                                                                                                        ^    
    /usr/include/c++/6/type_traits:1558:8: note: provided for ‘template<class _From, class _To> struct std::is_convertible’
         struct is_convertible
            ^~~~~~~~~~~~~~
    /usr/include/c++/6/tuple:502:1: error: body of constexpr function ‘static constexpr bool std::_TC<<anonymous>, _Elements>::_NonNestedTuple() [with _SrcTuple = std::tuple<at::Tensor, at::Tensor, at::Tensor, at::Tensor>&&; bool <anonymous> = true; _Elements = {at::Tensor, at::Tensor, at::Tensor, at::Tensor}]’ not a return-statement
         }
     ^
    error: command '/usr/local/cuda/bin/nvcc' failed with exit status 1
    
    
    opened by Daiver 9
  • render_depth is not returning the expected image

    render_depth is not returning the expected image

    My example code is not working, and documentation is scarce. Can you help? By running the code below I cannot obtain the expected image. Also I am not sure were the camera intrinsics should enter in your formulation.

    import neural_renderer as nr
    
    # P0 is projection matrix from the world to the camera
    P = torch.from_numpy(np.expand_dims(P0, 0)).cuda()
    
    vertices, faces = nr.load_obj(str_objfile)
    renderer = nr.Renderer(camera_mode='projection', P=P, image_size=480)
    im = renderer.render_depth(vertices[None, :, :], faces[None, :, :])
    
    plt.imshow(im.data.cpu().numpy()[0])
    plt.show()
    
    opened by pmcrodrigues 9
  • Could not load obj correctly.

    Could not load obj correctly.

    Awesome works!! I am trying to load some fancy obj files without image texture, but there is some difference between the result from the preview(Mac app) and this renderer. It looks like could load object correctly, but lose some texture and seems a general problem since it always happened when I tried several models. I show a simple model comparison below which the left side is rendering result and the right side is preview result. camaro_comp The 3d model is downloaded from 3D Warehouse and exported as obj file from the skp file. Here is obj(1.4MB) and mtl(1.8KB) files. Could you help me to check this problem? What do you think about it? Thanks a lot!

    opened by qilimk 8
  • Too slow on backward computation of silhouettes

    Too slow on backward computation of silhouettes

    Thanks for your work. It costs over 0.1s on only one sample backward computation. As the batch size larger, it significantly slows down my training. Looking forward to your reply!

    opened by Arthur151 5
  • Expected format for textures?

    Expected format for textures?

    I'm having a hard time understanding the way that textures are represented inside the renderer.

    It seems internally (e.g. from the texture optimization example) that textures are stored in Tensors of shape

    (batch_size, num_faces, texture_size, texture_size, texture_size, 3)

    which I understand as representing a 3D grid of size texture_size^3 of RGB value for each face. How does this relate to the per-vertex UV texture coordinates that are stored in .obj files?

    The CUDA kernel for loading textures appears to be bilinearly sampling the RGB values from the texture images, but I am having a hard time understanding exactly what is happening inside this kernel and exactly what it returns. Can you give a brief explanation?

    opened by jcjohnson 5
  • Ghost Texture

    Ghost Texture

    Hi, I test this wonderful renderer with a coffee mug model and it looks great! The model is built by software Blender by myself.

    I use this script run on PyTorch version to load the coffee mug and get this

    Nice rendering work!

    However, when I compare it with below result from OpenGL renderer, I realize that some "ghost" textures on the object on above neural renderer result:(the flip of texture is no big issue)

    So I explored a little bit and also found the phenomenon on other white background objects(Both Chainer version and PyTorch version) when I test other models.

    Any idea how to fix this bug?

    bug 
    opened by czw0078 5
  • Need Transparent Texture Mapping

    Need Transparent Texture Mapping

    In 3d modeling, we sometimes use png picture as the texture for transparent effect. PNG picture has a transparent alpha channel, and it is the easiest way to handle glass material and animal hair. For example, here is the result of a horse model example rendered in OpenGL.

    Look at the horsetail.

    (I will also post PyTorch rendering result here later after the merge #9. PyTorch version can not handle PNG texture for now.)

    PNG texture is a cheap but often-used trick to add realism to the result, which is very useful. But this may be a very challenging enhancement task.

    It could be implemented as a "mask" value, but it is a very complicated issue involving some knowledge like Z-buffer.

    enhancement 
    opened by czw0078 5
  • pip install failed with anaconda env?

    pip install failed with anaconda env?

    ERROR: Complete output from command /home/gaofei/anaconda3/envs/dynamic1/bin/python -u -c 'import setuptools, tokenize;file='"'"'/tmp/pip-install-azhbhou2/neural-renderer-pytorch/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-6ohe3bci --python-tag cp35: ERROR: running bdist_wheel running build running build_py creating build creating build/lib.linux-x86_64-3.5 creating build/lib.linux-x86_64-3.5/neural_renderer copying neural_renderer/load_obj.py -> build/lib.linux-x86_64-3.5/neural_renderer copying neural_renderer/rasterize.py -> build/lib.linux-x86_64-3.5/neural_renderer copying neural_renderer/save_obj.py -> build/lib.linux-x86_64-3.5/neural_renderer copying neural_renderer/perspective.py -> build/lib.linux-x86_64-3.5/neural_renderer copying neural_renderer/look_at.py -> build/lib.linux-x86_64-3.5/neural_renderer copying neural_renderer/renderer.py -> build/lib.linux-x86_64-3.5/neural_renderer copying neural_renderer/get_points_from_angles.py -> build/lib.linux-x86_64-3.5/neural_renderer copying neural_renderer/mesh.py -> build/lib.linux-x86_64-3.5/neural_renderer copying neural_renderer/init.py -> build/lib.linux-x86_64-3.5/neural_renderer copying neural_renderer/look.py -> build/lib.linux-x86_64-3.5/neural_renderer copying neural_renderer/projection.py -> build/lib.linux-x86_64-3.5/neural_renderer copying neural_renderer/lighting.py -> build/lib.linux-x86_64-3.5/neural_renderer copying neural_renderer/vertices_to_faces.py -> build/lib.linux-x86_64-3.5/neural_renderer creating build/lib.linux-x86_64-3.5/neural_renderer/cuda copying neural_renderer/cuda/init.py -> build/lib.linux-x86_64-3.5/neural_renderer/cuda running build_ext building 'neural_renderer.cuda.load_textures' extension creating build/temp.linux-x86_64-3.5 creating build/temp.linux-x86_64-3.5/neural_renderer creating build/temp.linux-x86_64-3.5/neural_renderer/cuda gcc -pthread -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/gaofei/anaconda3/envs/dynamic1/lib/python3.5/site-packages/torch/lib/include -I/home/gaofei/anaconda3/envs/dynamic1/lib/python3.5/site-packages/torch/lib/include/TH -I/home/gaofei/anaconda3/envs/dynamic1/lib/python3.5/site-packages/torch/lib/include/THC -I:/usr/local/cuda-9.0/include -I/home/gaofei/anaconda3/envs/dynamic1/include/python3.5m -c neural_renderer/cuda/load_textures_cuda.cpp -o build/temp.linux-x86_64-3.5/neural_renderer/cuda/load_textures_cuda.o -DTORCH_EXTENSION_NAME=neural_renderer.cuda.load_textures -std=c++11 cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++ neural_renderer/cuda/load_textures_cuda.cpp: In function ‘at::Tensor load_textures(at::Tensor, at::Tensor, at::Tensor, at::Tensor, int, int)’: neural_renderer/cuda/load_textures_cuda.cpp:15:79: error: ‘AT_CHECK’ was not declared in this scope #define CHECK_CUDA(x) AT_CHECK(x.type().is_cuda(), #x " must be a CUDA tensor") ^ neural_renderer/cuda/load_textures_cuda.cpp:17:24: note: in expansion of macro ‘CHECK_CUDA’ #define CHECK_INPUT(x) CHECK_CUDA(x); CHECK_CONTIGUOUS(x) ^ neural_renderer/cuda/load_textures_cuda.cpp:28:5: note: in expansion of macro ‘CHECK_INPUT’ CHECK_INPUT(image); ^ In file included from /home/gaofei/anaconda3/envs/dynamic1/lib/python3.5/site-packages/torch/lib/include/pybind11/pytypes.h:12:0, from /home/gaofei/anaconda3/envs/dynamic1/lib/python3.5/site-packages/torch/lib/include/pybind11/cast.h:13, from /home/gaofei/anaconda3/envs/dynamic1/lib/python3.5/site-packages/torch/lib/include/pybind11/attr.h:13, from /home/gaofei/anaconda3/envs/dynamic1/lib/python3.5/site-packages/torch/lib/include/pybind11/pybind11.h:43, from /home/gaofei/anaconda3/envs/dynamic1/lib/python3.5/site-packages/torch/lib/include/torch/torch.h:6, from neural_renderer/cuda/load_textures_cuda.cpp:1: neural_renderer/cuda/load_textures_cuda.cpp: At global scope: :0:37: error: expected initializer before ‘.’ token /home/gaofei/anaconda3/envs/dynamic1/lib/python3.5/site-packages/torch/lib/include/pybind11/detail/common.h:212:47: note: in definition of macro ‘PYBIND11_CONCAT’ #define PYBIND11_CONCAT(first, second) first##second ^ neural_renderer/cuda/load_textures_cuda.cpp:37:1: note: in expansion of macro ‘PYBIND11_MODULE’ PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) { ^ neural_renderer/cuda/load_textures_cuda.cpp:37:17: note: in expansion of macro ‘TORCH_EXTENSION_NAME’ PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) { ^ :0:37: error: expected initializer before ‘.’ token /home/gaofei/anaconda3/envs/dynamic1/lib/python3.5/site-packages/torch/lib/include/pybind11/detail/common.h:171:51: note: in definition of macro ‘PYBIND11_PLUGIN_IMPL’ extern "C" PYBIND11_EXPORT PyObject *PyInit_##name() ^ neural_renderer/cuda/load_textures_cuda.cpp:37:1: note: in expansion of macro ‘PYBIND11_MODULE’ PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) { ^ neural_renderer/cuda/load_textures_cuda.cpp:37:17: note: in expansion of macro ‘TORCH_EXTENSION_NAME’ PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) { ^ error: command 'gcc' failed with exit status 1

    ERROR: Failed building wheel for neural-renderer-pytorch Running setup.py clean for neural-renderer-pytorch Failed to build neural-renderer-pytorch Installing collected packages: neural-renderer-pytorch Running setup.py install for neural-renderer-pytorch ... error ERROR: Complete output from command /home/gaofei/anaconda3/envs/dynamic1/bin/python -u -c 'import setuptools, tokenize;file='"'"'/tmp/pip-install-azhbhou2/neural-renderer-pytorch/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record /tmp/pip-record-h5tpulv2/install-record.txt --single-version-externally-managed --compile: ERROR: running install running build running build_py creating build creating build/lib.linux-x86_64-3.5 creating build/lib.linux-x86_64-3.5/neural_renderer copying neural_renderer/load_obj.py -> build/lib.linux-x86_64-3.5/neural_renderer copying neural_renderer/rasterize.py -> build/lib.linux-x86_64-3.5/neural_renderer copying neural_renderer/save_obj.py -> build/lib.linux-x86_64-3.5/neural_renderer copying neural_renderer/perspective.py -> build/lib.linux-x86_64-3.5/neural_renderer copying neural_renderer/look_at.py -> build/lib.linux-x86_64-3.5/neural_renderer copying neural_renderer/renderer.py -> build/lib.linux-x86_64-3.5/neural_renderer copying neural_renderer/get_points_from_angles.py -> build/lib.linux-x86_64-3.5/neural_renderer copying neural_renderer/mesh.py -> build/lib.linux-x86_64-3.5/neural_renderer copying neural_renderer/init.py -> build/lib.linux-x86_64-3.5/neural_renderer copying neural_renderer/look.py -> build/lib.linux-x86_64-3.5/neural_renderer copying neural_renderer/projection.py -> build/lib.linux-x86_64-3.5/neural_renderer copying neural_renderer/lighting.py -> build/lib.linux-x86_64-3.5/neural_renderer copying neural_renderer/vertices_to_faces.py -> build/lib.linux-x86_64-3.5/neural_renderer creating build/lib.linux-x86_64-3.5/neural_renderer/cuda copying neural_renderer/cuda/init.py -> build/lib.linux-x86_64-3.5/neural_renderer/cuda running build_ext building 'neural_renderer.cuda.load_textures' extension creating build/temp.linux-x86_64-3.5 creating build/temp.linux-x86_64-3.5/neural_renderer creating build/temp.linux-x86_64-3.5/neural_renderer/cuda gcc -pthread -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/gaofei/anaconda3/envs/dynamic1/lib/python3.5/site-packages/torch/lib/include -I/home/gaofei/anaconda3/envs/dynamic1/lib/python3.5/site-packages/torch/lib/include/TH -I/home/gaofei/anaconda3/envs/dynamic1/lib/python3.5/site-packages/torch/lib/include/THC -I:/usr/local/cuda-9.0/include -I/home/gaofei/anaconda3/envs/dynamic1/include/python3.5m -c neural_renderer/cuda/load_textures_cuda.cpp -o build/temp.linux-x86_64-3.5/neural_renderer/cuda/load_textures_cuda.o -DTORCH_EXTENSION_NAME=neural_renderer.cuda.load_textures -std=c++11 cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++ neural_renderer/cuda/load_textures_cuda.cpp: In function ‘at::Tensor load_textures(at::Tensor, at::Tensor, at::Tensor, at::Tensor, int, int)’: neural_renderer/cuda/load_textures_cuda.cpp:15:79: error: ‘AT_CHECK’ was not declared in this scope #define CHECK_CUDA(x) AT_CHECK(x.type().is_cuda(), #x " must be a CUDA tensor") ^ neural_renderer/cuda/load_textures_cuda.cpp:17:24: note: in expansion of macro ‘CHECK_CUDA’ #define CHECK_INPUT(x) CHECK_CUDA(x); CHECK_CONTIGUOUS(x) ^ neural_renderer/cuda/load_textures_cuda.cpp:28:5: note: in expansion of macro ‘CHECK_INPUT’ CHECK_INPUT(image); ^ In file included from /home/gaofei/anaconda3/envs/dynamic1/lib/python3.5/site-packages/torch/lib/include/pybind11/pytypes.h:12:0, from /home/gaofei/anaconda3/envs/dynamic1/lib/python3.5/site-packages/torch/lib/include/pybind11/cast.h:13, from /home/gaofei/anaconda3/envs/dynamic1/lib/python3.5/site-packages/torch/lib/include/pybind11/attr.h:13, from /home/gaofei/anaconda3/envs/dynamic1/lib/python3.5/site-packages/torch/lib/include/pybind11/pybind11.h:43, from /home/gaofei/anaconda3/envs/dynamic1/lib/python3.5/site-packages/torch/lib/include/torch/torch.h:6, from neural_renderer/cuda/load_textures_cuda.cpp:1: neural_renderer/cuda/load_textures_cuda.cpp: At global scope: :0:37: error: expected initializer before ‘.’ token /home/gaofei/anaconda3/envs/dynamic1/lib/python3.5/site-packages/torch/lib/include/pybind11/detail/common.h:212:47: note: in definition of macro ‘PYBIND11_CONCAT’ #define PYBIND11_CONCAT(first, second) first##second ^ neural_renderer/cuda/load_textures_cuda.cpp:37:1: note: in expansion of macro ‘PYBIND11_MODULE’ PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) { ^ neural_renderer/cuda/load_textures_cuda.cpp:37:17: note: in expansion of macro ‘TORCH_EXTENSION_NAME’ PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) { ^ :0:37: error: expected initializer before ‘.’ token /home/gaofei/anaconda3/envs/dynamic1/lib/python3.5/site-packages/torch/lib/include/pybind11/detail/common.h:171:51: note: in definition of macro ‘PYBIND11_PLUGIN_IMPL’ extern "C" PYBIND11_EXPORT PyObject *PyInit_##name() ^ neural_renderer/cuda/load_textures_cuda.cpp:37:1: note: in expansion of macro ‘PYBIND11_MODULE’ PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) { ^ neural_renderer/cuda/load_textures_cuda.cpp:37:17: note: in expansion of macro ‘TORCH_EXTENSION_NAME’ PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) { ^ error: command 'gcc' failed with exit status 1 ---------------------------------------- ERROR: Command "/home/gaofei/anaconda3/envs/dynamic1/bin/python -u -c 'import setuptools, tokenize;file='"'"'/tmp/pip-install-azhbhou2/neural-renderer-pytorch/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record /tmp/pip-record-h5tpulv2/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-install-azhbhou2/neural-renderer-pytorch/

    opened by Myzhencai 4
  • fail run examples on pytorch1.0

    fail run examples on pytorch1.0

    i run the example.py on pytorch1.0, and get the following error:

    Optimizing:   0%|          | 0/300 [00:00<?, ?it/s]Traceback (most recent call last):
      File "example2.py", line 99, in <module>
        main()
      File "example2.py", line 80, in main
        loss.backward()
      File "/data7//app/miniconda/envs/shape/lib/python2.7/site-packages/torch/tensor.py", line 107, in backward
        torch.autograd.backward(self, gradient, retain_graph, create_graph)
      File "/data7//app/miniconda/envs/shape/lib/python2.7/site-packages/torch/autograd/__init__.py", line 93, in backward
        allow_unreachable=True)  # allow_unreachable flag
    RuntimeError: function RasterizeFunctionBackward returned an incorrect number of gradients (expected 11, got 10)
    
    

    it seems that only the forward step can success.

    opened by weigq 4
  • Support for macOS Apple chip

    Support for macOS Apple chip

    System: MacOS 12.5, Apple M2 Python ver.: Python 3.9.6 (default installation)

    Unable to install for macOS due to lack of CUDA support. Can we add the option to choose if the user wants to enable the GPU or not?

    $ pip3 install neural_renderer_pytorch
    Defaulting to user installation because normal site-packages is not writeable
    Collecting neural_renderer_pytorch
      Using cached neural_renderer_pytorch-1.1.3.tar.gz (19 kB)
      Preparing metadata (setup.py) ... error
      error: subprocess-exited-with-error
      
      × python setup.py egg_info did not run successfully.
      │ exit code: 1
      ╰─> [12 lines of output]
          Traceback (most recent call last):
            File "<string>", line 2, in <module>
            File "<pip-setuptools-caller>", line 34, in <module>
            File "/private/var/folders/yp/rj8hsnnn67d2j8bk8wkycv1jtv2523/T/pip-install-txvkp6qq/neural-renderer-pytorch_8ad7d5bf6a9349cd869edf1fb320505a/setup.py", line 15, in <module>
              CUDAExtension('neural_renderer.cuda.load_textures', [
            File "/Users/jayant.dabas/Library/Python/3.9/lib/python/site-packages/torch/utils/cpp_extension.py", line 1047, in CUDAExtension
              library_dirs += library_paths(cuda=True)
            File "/Users/jayant.dabas/Library/Python/3.9/lib/python/site-packages/torch/utils/cpp_extension.py", line 1179, in library_paths
              if (not os.path.exists(_join_cuda_home(lib_dir)) and
            File "/Users/jayant.dabas/Library/Python/3.9/lib/python/site-packages/torch/utils/cpp_extension.py", line 2230, in _join_cuda_home
              raise EnvironmentError('CUDA_HOME environment variable is not set. '
          OSError: CUDA_HOME environment variable is not set. Please set it to your CUDA install root.
          [end of output]
      
      note: This error originates from a subprocess, and is likely not a problem with pip.
    error: metadata-generation-failed
    
    × Encountered error while generating package metadata.
    ╰─> See above for output.
    
    opened by dabasjayant 0
  • Render 2D Silhouette For an Input Image

    Render 2D Silhouette For an Input Image

    I wanted to render the 2D silhouette for a single input image. Lets say the input image is. inputIMG

    I want the neural renderer to output a single 2D silhouette as shown below, outputIMG

    Are there any examples of how to do that ? Thanks!

    opened by adityab05 0
  • Error in forward_face_index_map_1: invalid device function Error in forward_face_index_map_2: invalid device function Error in forward_texture_sampling: invalid device function

    Error in forward_face_index_map_1: invalid device function Error in forward_face_index_map_2: invalid device function Error in forward_texture_sampling: invalid device function

    torch1.7.0 cuda10.2 Error in forward_face_index_map_1: invalid device function Error in forward_face_index_map_2: invalid device function Error in forward_texture_sampling: invalid device function

    In every iteration. I modified AT_CHECK to AT_ASSERT and TORCH_CHECK but the problem exists still.

    opened by AutumnYQ 0
  • ImportError: /data/user/anconda3/envs/neural_test/lib/python3.7/site-packages/neural_renderer/cuda/load_textures.cpython-37m-x86_64-linux-gnu.so: undefined symbol: _ZN6caffe28TypeMeta21_typeMetaDataInstanceIdEEPKNS_6detail12TypeMetaDataEv

    ImportError: /data/user/anconda3/envs/neural_test/lib/python3.7/site-packages/neural_renderer/cuda/load_textures.cpython-37m-x86_64-linux-gnu.so: undefined symbol: _ZN6caffe28TypeMeta21_typeMetaDataInstanceIdEEPKNS_6detail12TypeMetaDataEv

    import neural_renderer Traceback (most recent call last): File "", line 1, in File "/data/user/anconda3/envs/neural_test/lib/python3.7/site-packages/neural_renderer/init.py", line 3, in from .load_obj import load_obj File "/data/user/anconda3/envs/neural_test/lib/python3.7/site-packages/neural_renderer/load_obj.py", line 8, in import neural_renderer.cuda.load_textures as load_textures_cuda ImportError: /data/user/anconda3/envs/neural_test/lib/python3.7/site-packages/neural_renderer/cuda/load_textures.cpython-37m-x86_64-linux-gnu.so: undefined symbol: _ZN6caffe28TypeMeta21_typeMetaDataInstanceIdEEPKNS_6detail12TypeMetaDataEv

    The installation problem was finally solved, but the above problems occurred in the import. Can anyone help explain?

    opened by fcyx 3
  • problem about 'python setup.py install'

    problem about 'python setup.py install'

    Traceback (most recent call last):
      File "setup.py", line 17, in <module>
        'neural_renderer/cuda/load_textures_cuda_kernel.cu',
      File "/home/zjj/anaconda3/envs/flow/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 912, in CUDAExtension
        library_dirs += library_paths(cuda=True)
      File "/home/zjj/anaconda3/envs/flow/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 1020, in library_paths
        if (not os.path.exists(_join_cuda_home(lib_dir)) and
      File "/home/zjj/anaconda3/envs/flow/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 2035, in _join_cuda_home
        raise EnvironmentError('CUDA_HOME environment variable is not set. '
    OSError: CUDA_HOME environment variable is not set. Please set it to your CUDA install root.
    
    opened by Masterzhuior 1
Owner
Daniilidis Group University of Pennsylvania
Research group of Prof. Kostas Daniilidis
Daniilidis Group University of Pennsylvania
Mesh Graphormer is a new transformer-based method for human pose and mesh reconsruction from an input image

MeshGraphormer ✨ ✨ This is our research code of Mesh Graphormer. Mesh Graphormer is a new transformer-based method for human pose and mesh reconsructi

Microsoft 251 Jan 8, 2023
CoSMA: Convolutional Semi-Regular Mesh Autoencoder. From Paper "Mesh Convolutional Autoencoder for Semi-Regular Meshes of Different Sizes"

Mesh Convolutional Autoencoder for Semi-Regular Meshes of Different Sizes Implementation of CoSMA: Convolutional Semi-Regular Mesh Autoencoder arXiv p

Fraunhofer SCAI 10 Oct 11, 2022
Given a 2D triangle mesh, we could randomly generate cloud points that fill in the triangle mesh

generate_cloud_points Given a 2D triangle mesh, we could randomly generate cloud points that fill in the triangle mesh. Run python disp_mesh.py Or you

Peng Yu 2 Dec 24, 2021
AI Face Mesh: This is a simple face mesh detection program based on Artificial intelligence.

AI Face Mesh: This is a simple face mesh detection program based on Artificial Intelligence which made with Python. It's able to detect 468 different

Md. Rakibul Islam 1 Jan 13, 2022
A PaddlePaddle version of Neural Renderer, refer to its PyTorch version

Neural 3D Mesh Renderer in PadddlePaddle A PaddlePaddle version of Neural Renderer, refer to its PyTorch version Install Run: pip install neural-rende

AgentMaker 13 Jul 12, 2022
Implementation for Paper "Inverting Generative Adversarial Renderer for Face Reconstruction"

StyleGAR TODO: add arxiv link Implementation of Inverting Generative Adversarial Renderer for Face Reconstruction TODO: for test Currently, some model

null 155 Oct 27, 2022
A crossplatform menu bar application using mpv as DLNA Media Renderer.

Macast Chinese README A menu bar application using mpv as DLNA Media Renderer. Install MacOS || Windows || Debian Download link: Macast release latest

null 4.4k Jan 1, 2023
Mitsuba 2: A Retargetable Forward and Inverse Renderer

Mitsuba Renderer 2 Documentation Mitsuba 2 is a research-oriented rendering system written in portable C++17. It consists of a small set of core libra

Mitsuba Physically Based Renderer 2k Jan 7, 2023
Simple renderer for use with MuJoCo (>=2.1.2) Python Bindings.

Viewer for MuJoCo in Python Interactive renderer to use with the official Python bindings for MuJoCo. Starting with version 2.1.2, MuJoCo comes with n

Rohan P. Singh 62 Dec 30, 2022
The official implementation of NeMo: Neural Mesh Models of Contrastive Features for Robust 3D Pose Estimation [ICLR-2021]. https://arxiv.org/pdf/2101.12378.pdf

NeMo: Neural Mesh Models of Contrastive Features for Robust 3D Pose Estimation [ICLR-2021] Release Notes The offical PyTorch implementation of NeMo, p

Angtian Wang 76 Nov 23, 2022
An Efficient Implementation of Analytic Mesh Algorithm for 3D Iso-surface Extraction from Neural Networks

AnalyticMesh Analytic Marching is an exact meshing solution from neural networks. Compared to standard methods, it completely avoids geometric and top

Karbo 45 Dec 21, 2022
Official Pytorch implementation of "Learning to Estimate Robust 3D Human Mesh from In-the-Wild Crowded Scenes", CVPR 2022

Learning to Estimate Robust 3D Human Mesh from In-the-Wild Crowded Scenes / 3DCrowdNet News ?? 3DCrowdNet achieves the state-of-the-art accuracy on 3D

Hongsuk Choi 113 Dec 21, 2022
This repository contains notebook implementations of the following Neural Process variants: Conditional Neural Processes (CNPs), Neural Processes (NPs), Attentive Neural Processes (ANPs).

The Neural Process Family This repository contains notebook implementations of the following Neural Process variants: Conditional Neural Processes (CN

DeepMind 892 Dec 28, 2022
Pytorch port of Google Research's LEAF Audio paper

leaf-audio-pytorch Pytorch port of Google Research's LEAF Audio paper published at ICLR 2021. This port is not completely finished, but the Leaf() fro

Dennis Fedorishin 80 Oct 31, 2022
[ECCV 2020] Reimplementation of 3DDFAv2, including face mesh, head pose, landmarks, and more.

Stable Head Pose Estimation and Landmark Regression via 3D Dense Face Reconstruction Reimplementation of (ECCV 2020) Towards Fast, Accurate and Stable

Remilia Scarlet 221 Dec 30, 2022
MediaPipeのPythonパッケージのサンプルです。2020/12/11時点でPython実装のある4機能(Hands、Pose、Face Mesh、Holistic)について用意しています。

mediapipe-python-sample MediaPipeのPythonパッケージのサンプルです。 2020/12/11時点でPython実装のある以下4機能について用意しています。 Hands Pose Face Mesh Holistic Requirement mediapipe 0.

KazuhitoTakahashi 217 Dec 12, 2022
Open-AI's DALL-E for large scale training in mesh-tensorflow.

DALL-E in Mesh-Tensorflow [WIP] Open-AI's DALL-E in Mesh-Tensorflow. If this is similarly efficient to GPT-Neo, this repo should be able to train mode

EleutherAI 432 Dec 16, 2022
Mesh TensorFlow: Model Parallelism Made Easier

Mesh TensorFlow - Model Parallelism Made Easier Introduction Mesh TensorFlow (mtf) is a language for distributed deep learning, capable of specifying

null 1.3k Dec 26, 2022
Code for Mesh Convolution Using a Learned Kernel Basis

Mesh Convolution This repository contains the implementation (in PyTorch) of the paper FULLY CONVOLUTIONAL MESH AUTOENCODER USING EFFICIENT SPATIALLY

Yi_Zhou 35 Jan 3, 2023