写在最前面: 我自己不是学建筑的,对建筑的理解可能会有偏差,懂一点点deep learning。
这个问题可以分开来回答,Python 与deep learning,deep learning 与建筑。
Python 是deep learning的一个工具,其他的语言,如c/c++,MATLAB也可以实现同意的功能,只是不同的语言有不同的优点。从建筑学学生角度来看,Python 应该是做deep learning最好的工具(个人感觉)。
拿Python自己去一步一步实现 deep learning 框架?显然没必要(这是CS的人干的)。主流的deep learning 框架有mxnet,caffe,TensorFlow(还有很多其他的开源库),这些的底层都是拿c++写的,都留有Python接口。学好了Python,懂算法了,拿这些库来实现就OK。
对比这些个库的效率,上手难易度,功能方面的文章应该是很多,我在这里简单说一下。mxnet有团队一直在维护,效率高,代码规范也不错,分布式的效率也高,但是可能文档没有那么好,毕竟不是公司主推。现在有Amazon了,可能会好一点点。
caffe应该算是deep learning 库的鼻祖,cudnn很多都是参考caffe来设计的。但缺点是贾扬清去了Facebook以后感觉caffe维护的明显很差,代码规范也不是很好,而且很多新的layer 可能更新的不是那么及时。我自己就是基于caffe开发了自己用的工具,但是作为一个单纯的使用者,我不推荐caffe。
TensorFlow是Google的,速度相对慢,代码相对难读(一般人应该不会去读),但是文档支持好,功能也全,用的人也多,是可以考虑的选择。
最后写一点关于电脑硬件相关的问题,学建筑肯定有好显卡,但建筑可能用的更多的是画图卡,不过cuda应该是支持的,有条件的可以配置一台工作站来搞,毕竟需要二十四小时跑数据,电脑差了还是不行。另外就是AMD的卡不支持cuda,Mac pro应该是用的AMD的卡。
接下来回答deep learning 与建筑学。
我对deep learning 在建筑中可能的运用来自己其他场合运用的联想。learning to generate chairs with convolutional neural network 这篇paper 是train 一个网络来生成椅子。网络的输入是椅子的类型,视角,以及空间位移等信息,我个人的理解是同样的想法可能运用与建筑模型的生成。但是这里会有问题,第一,用于train网络的椅子的数据很好生成,建筑模型的数据我不知道怎么去搞,而且想要生成复杂建筑模型,需要的网络更深,所以train的难度更大,需要的数据量更大。第二,椅子的图片是project 到2d平面的,建筑的显然不能这么来,trian 3d的输出,难度再增加两个数量级吧。第三,train出来的椅子的数据质量并不高,所以想要train能够直接使用的建筑模型貌似更难吧,很有可能是只能给建筑设计师提供一些idea。
另外一篇经典paper是visualizing deep convolutional neural networks using natural pre-images,牛津vgg出品,这篇paper主要讲怎么从deep 网络里恢复图片信息,这个思路应该是建筑想要的,可以看看。
希望对你有帮助~