数据:
func维度为 [358,358] , 元素范围为0-1.
struc维度为 [358,358] , 元素范围为0-x. (x为正整数)
在matlab中,imshow函数显示0-1之间的灰度图,对于元素大于1的值,都显示为最亮的。
数据处理
1.struc数据元素代表ROIs之间的纤维束数量,需要计算其average FA 值。需要 表面,坐标。。。等数据
2、使用python生成灰度图
使用 scipy.io库的 loadmat函数读取mat 数据,返回的是dictionary with variable names as keys, and loaded matrices as values.
matlab_compatible 将数据转换成matlab可以读取的形式
[‘b’],取出变量名为 ‘b’的数组
将数组乘以255,元素范围变为0-255.
之后使用fromarray函数将数组变成图片,单通道358*358的灰度图,保存图像
网络代码结构:
DISCOGAN网络
main():
a_data_loader = get_loader(data_path,...) //相当于是一个batch的数据
trainer = Trainer(config,a_data_loader,...)
if config.is_train:
trainer.train()
else:
trainer.test()
trainer():
class Trainer():
build_model():
load_model():
train():
A_loader = iter(self.a_data_loader) //一个批次的数据
valid_x_A = self._get_variable(A_loader.next()) //获得A_loader里面的变量值
vutils.save_image(valid_x_A,...) //保存一批次的图片
for step in range():
//开始训练
generate_with_A(inputs):
x_AB = self.G_BA(inputs)
x_ABA = self.G_AB(x_BA)
vutile.save_image(...)
generate_with_B(inputs):
x_BA = self.G_BA(inputs)
x_BAB = self.G_AB(X_BA)
vutile.sa...
test():
A_loader = iter(self.a_data_loader)
x_A = self._get_variable(A_loader.next())
vutils.save...
self.generate_with_A(x_A)
self.generate_with_B(x_B)
...
def _get_variable(inputs):
out = Variable(inputs) //将输入的tensor变成variable,variable包含变量的值和梯度