提交 b4820a99 authored 作者: bergstra@tikuanyin's avatar bergstra@tikuanyin

Conv updates __hashval on unpickle

上级 cc228c61
...@@ -111,10 +111,7 @@ class ConvOp(Op): ...@@ -111,10 +111,7 @@ class ConvOp(Op):
"and kern shape(%s) are ok. (hint: kerns must fit inside image in" "and kern shape(%s) are ok. (hint: kerns must fit inside image in"
"'valid' mode)")%(self.imshp_logical,self.kshp_logical)) "'valid' mode)")%(self.imshp_logical,self.kshp_logical))
hashval = hash(type(self)) self._rehash()
for a in self.__attrnames:
hashval = hashval ^ hash(getattr(self, a))
self.__hashval = hashval
def __eq__(self, other): def __eq__(self, other):
if type(self) != type(other): if type(self) != type(other):
...@@ -124,6 +121,16 @@ class ConvOp(Op): ...@@ -124,6 +121,16 @@ class ConvOp(Op):
return False return False
return True return True
def __setstate__(self, d):
self.__dict__.update(d)
self._rehash()
def _rehash(self):
hashval = hash(type(self))
for a in self.__attrnames:
hashval = hashval ^ hash(getattr(self, a))
self.__hashval = hashval
def __hash__(self): def __hash__(self):
return self.__hashval return self.__hashval
...@@ -310,7 +317,7 @@ class ConvOp(Op): ...@@ -310,7 +317,7 @@ class ConvOp(Op):
#def c(): #def c():
def c_headers(self): def c_headers(self):
return ['"Python.h"', '"numpy/noprefix.h"'] return ['<numpy/noprefix.h>', '<iostream>', '<sstream>' ]
def c_support_code(self): def c_support_code(self):
return """ return """
...@@ -319,7 +326,6 @@ class ConvOp(Op): ...@@ -319,7 +326,6 @@ class ConvOp(Op):
#define SAME 1 #define SAME 1
#define VALID 0 #define VALID 0
#define MOD % #define MOD %
#include <iostream>
using namespace std; using namespace std;
""" + tensor.blas.blas_header_text() """ + tensor.blas.blas_header_text()
def c_libraries(self): def c_libraries(self):
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论