小编Asi*_*sim的帖子

一次性下载 google colaboratory 中的所有 nltk 包

我想在我的 google colab 代码中使用停用词,当我导入有关 nltk 的内容时没有错误,但是当我在我的代码中使用停用词时,google colab 给出了这个错误:-

Resource 'corpora/stopwords.zip/stopwords/' not found.  Please
use the NLTK Downloader to obtain the resource:  >>>
nltk.download()
Run Code Online (Sandbox Code Playgroud)

但是当我这样做时:-

 import nltk
 nltk.download()
Run Code Online (Sandbox Code Playgroud)

它为我提供了所有软件包列表,因此我必须选择 1 进行下载,在终端中我可以执行“全部”来下载所有软件包,但是我如何在 google colab 中执行此操作?我不想每次都添加一个名字来下载东西。这就是 colab 在我执行“nltk.download()”时向我展示的内容:-

NLTK 下载器

d) 下载 l) 列表 u) 更新 c) 配置 h) 帮助 q) 退出

 Downloader> d

 Download which package (l=list; x=cancel)?
Run Code Online (Sandbox Code Playgroud)

有什么办法可以一次将所有 nltk 包下载到我在 google colab 中的项目中?

python package nltk google-colaboratory

7
推荐指数
3
解决办法
1万
查看次数

Graphviz 图形到水平方向

我在堆栈溢出中看到建议使用的答案:-

rankdir="LR
Run Code Online (Sandbox Code Playgroud)

但他们没有处理我的这个剧本。

from graphviz import Digraph


dot = Digraph()
dot.node('A', '(3904,1) (Input)')
dot.node('B', '(3904,64) LSTM layer 1')
dot.node('C', '(3904,128) LSTM layer 2')

dot.edges(['AB', 'BC'])

dot.render("a.gv", view=True)
Run Code Online (Sandbox Code Playgroud)

如果我添加这一行:-

dot=Digraph(rankdir="LR)
Run Code Online (Sandbox Code Playgroud)

它会抛出错误,表示有向图没有名为“rankdir”的属性。

我想将垂直图转换为水平图,任何帮助将不胜感激!谢谢。

python dot graphviz python-3.x

7
推荐指数
1
解决办法
2606
查看次数

Keras将输入提供给中间层并获得最终输出

我的模型是一个简单的完全连接的网络,如下所示:

inp=Input(shape=(10,))
d=Dense(64, activation='relu')(inp)
d=Dense(128,activation='relu')(d)
d=Dense(256,activation='relu')(d)     #want to give input here, layer3
d=Dense(512,activation='relu')(d)
d=Dense(1024,activation='relu')(d)
d=Dense(128,activation='linear')(d)
Run Code Online (Sandbox Code Playgroud)

因此,保存模型后,我想将输入提供给第3层。我现在正在做的是:

model=load_model('blah.h5')    #above described network
print(temp_input.shape)        #(16,256), which is equal to what I want to give

index=3
intermediate_layer_model = Model(inputs=temp_input,
                                 outputs=model.output)

End_output = intermediate_layer_model.predict(temp_input)
Run Code Online (Sandbox Code Playgroud)

但这不起作用,即我收到诸如不兼容输入之类的错误,输入应为元组等。错误消息为:

raise TypeError('`inputs` should be a list or tuple.') 
TypeError: `inputs` should be a list or tuple.
Run Code Online (Sandbox Code Playgroud)

有什么办法可以让我在网络中间传递自己的输入并获取输出,而不是在开始时输入并从末尾获取输出?任何帮助将不胜感激。

python machine-learning neural-network keras keras-layer

4
推荐指数
2
解决办法
2350
查看次数

在 keras 回调中使用带有自定义参数的自定义函数

我正在 keras 中训练模型,我想在每个时期之后绘制结果图。我知道 keras 回调提供了“on_epoch_end”函数,如果人们想在每个 epoch 之后进行一些计算,则可以重载该函数,但是我的函数需要一些额外的参数,当给定这些参数时,元类错误会导致代码崩溃。详情如下:

这是我现在的做法,效果很好:-

class NewCallback(Callback):

def on_epoch_end(self, epoch, logs={}):  #working fine, printing epoch after each epoch
    print("EPOCH IS: "+str(epoch))


epochs=5
batch_size = 16
model_saved=False
if model_saved:
    vae.load_weights(args.weights)
else:
    # train the autoencoder
    vae.fit(x_train,
            epochs=epochs,
            batch_size=batch_size,
            validation_data=(x_test, None),
           callbacks=[NewCallback()])
Run Code Online (Sandbox Code Playgroud)

但我希望我的回调函数是这样的:-

class NewCallback(Callback,models,data,batch_size):
   def on_epoch_end(self, epoch, logs={}):
     print("EPOCH IS: "+str(epoch))
     x=models.predict(data)
     plt.plot(x)
     plt.savefig(epoch+".png")
Run Code Online (Sandbox Code Playgroud)

如果我这样称呼它合适:

callbacks=[NewCallback(models, data, batch_size=batch_size)]
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all …
Run Code Online (Sandbox Code Playgroud)

metaclass callback keras custom-function

3
推荐指数
1
解决办法
1569
查看次数

yolov5 中的非标准化标签

我正在自定义数据集上训练 yolov5 并收到非标准化标签错误。注释有 x,y 和 w,h,这意味着边界框存在于 (x,y) 到 (x+w,y+h) 之间。我正在使用 cv2 矩形函数来显示图像上的边界框,它正在创建完美的边界框。我知道我必须将原始标签转换为标准化中心 x、中心 y、宽度和高度值。我正在下面这样做:

x2=x+w # x,y, w and h are given
y2=y1+h

xc=x+w/2
yc=y+h/2
xc=xc/width # normalize from 0-1. Width and height are image's width and height
yc=yc/height
  
wn=w/width # normalize the width from 0-1
hn=h/height
 
label_file.write(f"{category_idx} {xc} {yc} {wn} {hn}\n")
Run Code Online (Sandbox Code Playgroud)

但是当我在文本文件中写入这些标签并运行 yolov5 训练时,它会给出以下断言错误:

assert (l[:, 1:] <= 1).all(), 'non-normalized or out of bounds coordinate labels: %s' % file # throws assertion error
AssertionError: non-normalized or out of bounds …
Run Code Online (Sandbox Code Playgroud)

opencv normalization python-3.x yolov5

2
推荐指数
1
解决办法
2407
查看次数