在谷歌 Colab 工作。使用tf.kerastensorflow版本2.3.0我变得疯狂,因为我无法使用我训练过的模型来运行预测,model.predict因为它耗尽了CPU RAM。我已经能够用一个非常小的例子重现这个问题。
import numpy as np
import tensorflow as tf
from tensorflow.keras import backend as K
from tensorflow.keras.layers import Input,Conv2D, Activation
matrixSide = 512 #define a big enough matrix to give memory issues
inputL = Input([matrixSide,matrixSide,12]) #create a toy model
l1 = Conv2D(32,3,activation='relu',padding='same') (inputL) #120
l1 = Conv2D(64,1,activation='relu',padding='same')(l1)
l1 = Conv2D(64,3,activation='relu',padding='same')(l1)
l1 = Conv2D(1,1,padding='same')(l1)
l1 = Activation('linear')(l1)
model = Model(inputs= inputL,outputs = l1)
#run predictions
inImm = np.zeros((64,matrixSide,matrixSide,12))
for i in range (60):
print(i) …Run Code Online (Sandbox Code Playgroud) 当使用“verbose=1”选项在 Jupyter notebook 中运行 keras 模型时,我开始获得的不是单行进度状态更新,而是批量更新的大量状态行。见附图。重新启动 jupyter 或浏览器没有帮助。Jupyter notebook 服务器是:5.6.0,keras 是 2.2.2,Python 是 Python 3.6.5 请帮忙。
单元格内容:
history = model.fit(x=train_df_scaled,y=train_labels,batch_size=BATCH_SIZE,epochs=EPOCHS,verbose=1, validation_data=(validation_df_scaled,validation_labels),shuffle=True)
输出洪水示例:(它是这样的数千行)
损失:217.5794 - mean_absolute_error:11.166 - ETA:32:42 - 损失:216.9500 - mean_absolute_error:11.165 - ETA:32:21 - 损失:216.6378 - mean_absolute_16:205-16-16 误差-16-16-1604 ETA: 31:41 - 损失: 215.6621 - mean_absolute_error: 11.166 - ETA: 31:21 - 损失: 215.4639 - mean_absolute_error: 11.171 - ETA: 31:02 - 损失: 215.7 mean_absolute_error:-1165-3504 214.6583 - mean_absolute_error: 11.169 - ETA: 30:27 - loss: 213.8844 - mean_absolute_error: 11.164 - ETA: 30:10 …
我该如何改变
tf.contrib.layers.xavier_initializer()
Run Code Online (Sandbox Code Playgroud)
tf 版本 >= 2.0.0 ??
所有代码:
W1 = tf.get_variable("W1", shape=[self.input_size, h_size],
initializer=tf.contrib.layers.xavier_initializer())
Run Code Online (Sandbox Code Playgroud) PyTorch 等效于 SeparableConv2D padding = 'same':
from tensorflow.keras.layers import SeparableConv2D
x = SeparableConv2D(64, (1, 16), use_bias = False, padding = 'same')(x)
Run Code Online (Sandbox Code Playgroud)
该消息来源说:
如果 groups = nInputPlane,kernel=(K, 1),(之前是一个 Conv2d 层,groups=1 且 kernel=(1, K)),那么它是可分离的。
虽然该消息来源说:
其核心思想是将一个完整的卷积酸分解为两步计算,即Depthwise Convolution和Pointwise。
这是我的尝试:
class SeparableConv2d(nn.Module):
def __init__(self, in_channels, out_channels, depth, kernel_size, bias=False):
super(SeparableConv2d, self).__init__()
self.depthwise = nn.Conv2d(in_channels, out_channels*depth, kernel_size=kernel_size, groups=in_channels, bias=bias)
self.pointwise = nn.Conv2d(out_channels*depth, out_channels, kernel_size=1, bias=bias)
def forward(self, x):
out = self.depthwise(x)
out = self.pointwise(out)
return …Run Code Online (Sandbox Code Playgroud) 我在 Jupiter 笔记本中使用 tqdm。通常我会在白色背景上看到一个绿色进度条。但是,现在我看到粉红色背景上有一个黑色进度条:
import tqdm, tqdm.notebook
from time import sleep
# first progress bar
for i in tqdm.notebook.tqdm(range(10)):
sleep(.1)
# second progress bar
for i in tqdm.notebook.tqdm(range(10)):
sleep(.1)
# third progress bar
for i in tqdm.tqdm(range(10)):
sleep(.1)
# fourth progress bar
for i in tqdm.tqdm(range(10), colour='green'):
sleep(.1)
Run Code Online (Sandbox Code Playgroud)
产生这四个条:
我想要的是一个绿色的进度条,没有粉红色的背景。
我安装 PyQt5 后出现了这种行为变化。我已经卸载了,但行为仍然存在。
另外,以前我tqdm.notebook.tqdm在笔记本中使用过进度条。现在该函数不显示进度条(条 1 和条 2)。我需要使用tqdm.tqdm(第 3 条和第 4 条)。
我认为问题与后端有关。