Tensorflow/Pytorch in Houdini | Houdini中使用Tensorflow/Pytorch
Home
>>
Blog
>>
Tensorflow/Pytorch in Houdini | Houdini中使用Tensorflow/Pytorch
Posted on
by
maajor
(首先假定读者有基本的Linux/Houdini/Python操作经验)
Houdini作为最好的程序化建模软件,又正好深度学习框架大部分在Python中,那么进行一些建模/图形的深度学习任务时,怎么能少得了在Houdini?然而有几乎没有文章讲如何在Houdini中使用Tensorflow或者Pytorch,本文聊一聊这个。
笔者查到的唯一一篇文章是这个:
作者在Houdini里搭建了一个Minst识别程序。本文先不讲应用,主要是安装步骤,下一篇再讲应用。
首先一个问题是,Windows下行不行?
笔者感觉,想直接在Houdini里写Python,似乎不能用Windows。主要原因是Windows版本的Houdini使用的一个特殊编译的Python2.7.5版本,一些其它python版本预编译的package会导致houdini闪退。如果想在Windows下部署,似乎只能考虑本地RPC的方式,或者在云端部署深度学习服务。
因此和takavfx的方法一样,在Linux下部署!
另外一个问题是blinux下安装C一些版本比较新的package会导致闪退,所以都不能安装最新版
本文推荐的环境:
基本思路是:在Virtualenv下安装深度学习库,然后用virtualenv启动Houdini,这时houdini的python就是系统的python了,可以使用当前virtualenv下的package
1.Houdini 安装
houdini16.5破解文件和破解方法同样,安装包可以在
官网
下载
houdini-16.5.634-linux_x86_64_gcc4.8.tar.gz
记得安装完在环境变量中加一下安装路径,这样才能terminal启动houdini
笔者直接改的etc/environment这个文件,PATH最后加上
3. GPU库
先是CUDA9.0,为什么这个版本,因为它和tf1.5匹配。。。
有文章说CUDA9.0必须gcc6-,所以要降级系统的gcc,笔者好像没有做这一步也行,还在使用gcc7.3
切到下载路径,然后
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
print (sess.run(hello))
with tf.device('/device:GPU:0'):
a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
c = tf.matmul(a, b)
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
print(sess.run(c))
import
tensorflow
as
tf
hello
=
tf
.
constant
(
'Hello, TensorFlow!'
)
sess
=
tf
.
Session
(
)
print
(
sess
.
run
(
hello
)
)
with
tf
.
device
(
'/device:GPU:0'
)
:
&
nbsp
;
&
nbsp
;
a
=
tf
.
constant
(
[
1.0
,
2.0
,
3.0
,
4.0
,
5.0
,
6.0
]
,
shape
=
[
2
,
3
]
,
name
=
'a'
)
&
nbsp
;
&
nbsp
;
b
=
tf
.
constant
(
[
1.0
,
2.0
,
3.0
,
4.0
,
5.0
,
6.0
]
,
shape
=
[
3
,
2
]
,
name
=
'b'
)
&
nbsp
;
&
nbsp
;
c
=
tf
.
matmul
(
a
,
b
)
sess
=
tf
.
Session
(
config
=
tf
.
ConfigProto
(
log_device_placement
=
True
)
)
print
(
sess
.
run
(
c
)
)