Open Liqq1 opened 1 year ago
您好,请问您的代码跑通了嘛
可以跑通
前辈,想请假一下您这个用的是哪一版本的TensorFlow,我这里TensorFlow老是出问题跑不通
这个代码是基于pytorch的吧😂
class Logger(object):
def __init__(self, log_dir):
"""Create a summary writer logging to log_dir."""
self.writer = tf.summary.FileWriter(log_dir)
def scalar_summary(self, tag, value, step):
"""Log a scalar variable."""
summary = tf.Summary(value=[tf.Summary.Value(tag=tag, simple_value=value)])
self.writer.add_summary(summary, step)
tf.summary.scalar(tag, value.cpu(),step)
self.writer.flush()
这一块代码用到了TensorFlow,我这里老是出问题,跑不通,呜呜呜
抱歉 我找不到当时跑的环境和文件了; 这个问题应该不大,可以根据报错定位一下哪里出错了。
没关系,解决了,是因为版本问题改来改去改乱了(笑哭; 前辈,我想问一下,刚开始loss很大这个是正常的嘛
应该还挺正常的;你可以跑完所有epoch看看结果,但结果应该是不会太好的,可以看看这篇博客; 我觉得可能代码部分存在一些小问题,但我还没有能力去完全修正/复现好😂
好嘞明白,感谢感谢!
如果想基于lstm,建议可以看看这个https://github.com/yangyan22/Medical-Report-Generation-TriNet 基于transformer的话,可以参考r2gen/r2gencmn.
好的好的,感谢前辈指点
没关系,解决了,是因为版本问题改来改去改乱了(笑哭; 前辈,我想问一下,刚开始loss很大这个是正常的嘛
你好,我想请问下跑完之后评价指标在哪里看啊,比如bleu什么的
尝试复现了一下,发现有几个问题(不确定),如遇到相同问题,欢迎讨论。
1.class JsonReader
对于build_vocab.py中的class JsonReader,在构建vocab的时候是没有问题的,但在dataset.py中,self.caption[image_name],image_name已经是图像名称,而不需要像build_vocab.py中用key[序号]来取。
所以我认为在运行trainer.py->dataset.py的时候class JsonReader应该改为如下。实验结束也表明修改之后的 JsonReader才会构造出不是空的target。
2.Sentence LSTM
和issue #11 中所说的一样,要加上这句话不然状态没法更新只会输出同样的内容。
3.Word LSTM
这里的写法有点不太清楚,只能看到原先被注释掉的。 word_mask).sum() (0.9 ** word_index),这些的含义是什么?
4.Class MLC
感觉圈起来的那一句,应该返回的torch.topk的[0],[0]才是tensor中的内容,而[1]是序号。不知道这边我有没有理解错。
5.MSEloss
此代码中,在做多标签分类的时候用的是MSEloss(是可行的,但不知道是否和文中对应);而论文原文中所说的是交叉熵分类(感觉应该用sigmoid+BCELoss?)
6.图像的输入
文中提到会把image划分成多个region作为输入,但代码中直接使用的是原image(经过了transform操作中的RandomCrop);是直接讲划分成多个region理解为RandomCrop操作吗?还是有另外的操作方式,这里也不是很清楚。