Объект 'NoneType' не имеет атрибута 'add_summary' - PullRequest
0 голосов
/ 01 марта 2019

У меня проблемы с визуализацией весов и смещений моей модели с помощью tenorboardX.Вот моя модель (в любом случае она довольно проста):

    self.pipe = nn.Sequential(nn.Linear(9, 128),
                             nn.ReLU(),
                             nn.Linear(128, 256),
                             nn.ReLU(),
                             nn.Linear(256,2),
                             nn.Softmax()
                             )

     def forward(self, x):
     return self.pipe(x)

И вот где я получаю ошибку в pytorch

for name, param in net.named_parameters():
    writer.add_histogram(name, param, epoch_size, bins='auto')

, и ошибка составляет

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-70-d060d2df4423> in <module>()
      1 for name, param in net.named_parameters():
----> 2     writer.add_histogram(name, param, epoch_size, bins='auto')

~\Anaconda3\lib\site-packages\tensorboardX\writer.py in add_histogram(self, tag, values, global_step, bins, walltime)
    403         if isinstance(bins, six.string_types) and bins == 'tensorflow':
    404             bins = self.default_bins
--> 405         self.file_writer.add_summary(
    406             histogram(tag, values, bins), global_step, walltime)
    407 

AttributeError: 'NoneType' object has no attribute 'add_summary'

но я действительно должен увидеть гистограмму, где веса застряли в субоптимальных.поэтому я немного изменил код, чтобы шаг за шагом двигаться

param = np.array(list(net.parameters()))   
print(param[0].data)
writer.add_histogram('weight', param[0].data)

BOOM!все та же ошибка, может быть, это совсем не изменится.

1 Ответ

0 голосов
/ 01 марта 2019

Фрагмент отправленного кода недостаточен для устранения основной причины проблемы.

Переменная-член file_writer имеет значение None, когда метод close () вызывается в средстве записи.Пожалуйста, проверьте, был ли метод close () вызван на Writer.Метод close () также вызывается, когда объект записи используется в качестве диспетчера контекста, а блок with завершен.

with SummaryWriter() as writer:
   writer.add_scalar...

writer.add_histogram # this will cause a crash
...