我很不确定这是否正确。我真的很难找到很多关于如何参数化神经网络的好例子。
你如何看待这两个班级的辍学方式。首先,我正在编写原始类:
class NeuralNet(nn.Module):
def __init__(self, input_size, hidden_size, num_classes, p = dropout):
super(NeuralNet, self).__init__()
self.fc1 = nn.Linear(input_size, hidden_size)
self.fc2 = nn.Linear(hidden_size, hidden_size)
self.fc3 = nn.Linear(hidden_size, num_classes)
def forward(self, x):
out = F.relu(self.fc1(x))
out = F.relu(self.fc2(out))
out = self.fc3(out)
return out
Run Code Online (Sandbox Code Playgroud)
然后在这里,我发现了两种不同的写东西的方式,我不知道如何区分。第一个使用:
self.drop_layer = nn.Dropout(p=p)
Run Code Online (Sandbox Code Playgroud)
而第二个:
self.dropout = nn.Dropout(p)
Run Code Online (Sandbox Code Playgroud)
这是我的结果:
class NeuralNet(nn.Module):
def __init__(self, input_size, hidden_size, num_classes, p = dropout):
super(NeuralNet, self).__init__()
self.fc1 = nn.Linear(input_size, hidden_size)
self.fc2 = nn.Linear(hidden_size, hidden_size)
self.fc3 = nn.Linear(hidden_size, num_classes)
self.drop_layer = nn.Dropout(p=p)
def forward(self, x):
out …Run Code Online (Sandbox Code Playgroud) python machine-learning neural-network deep-learning pytorch
我仍在学习 tensorflow 和 keras,我怀疑这个问题有一个非常简单的答案,我只是因为不熟悉而错过了。
我有一个PrefetchDataset对象:
> print(tf_test)
$ <PrefetchDataset shapes: ((None, 99), (None,)), types: (tf.float32, tf.int64)>
Run Code Online (Sandbox Code Playgroud)
...由特征和目标组成。我可以使用for循环遍历它:
> for example in tf_test:
> print(example[0].numpy())
> print(example[1].numpy())
> exit()
$ [[-0.31 -0.94 -1.12 ... 0.18 -0.27]
[-0.22 -0.54 -0.14 ... 0.33 -0.55]
[-0.60 -0.02 -1.41 ... 0.21 -0.63]
...
[-0.03 -0.91 -0.12 ... 0.77 -0.23]
[-0.76 -1.48 -0.15 ... 0.38 -0.35]
[-0.55 -0.08 -0.69 ... 0.44 -0.36]]
[0 0 1 0 1 0 0 0 1 0 …Run Code Online (Sandbox Code Playgroud) 我正在编写一个程序,其中的操作需要几秒钟(加载大文件)。幸运的是,它总是需要相同的时间。所以,为了用户的利益,我想做一个进度条。然而,tqdm似乎是为循环设计的。可以说这sleep(10)是一个需要时间的过程。我该如何解决这个问题?
我想为一个不是循环的长过程制作一个进度条。
from time import time, sleep
from tqdm import tqdm
for i in tqdm([1]):
sleep(10)
Run Code Online (Sandbox Code Playgroud)
这段代码的问题是进度条将保持为零,然后在进程结束时跳到 100%。我想要一个在 10 秒内持续变化的进度条。
我正在使用 Tensorflow DCGAN 实施指南中提供的代码编写自定义训练循环。我想在训练循环中添加回调。在 Keras 中,我知道我们将它们作为参数传递给 'fit' 方法,但找不到有关如何在自定义训练循环中使用这些回调的资源。我正在从 Tensorflow 文档中添加自定义训练循环的代码:
# Notice the use of `tf.function`
# This annotation causes the function to be "compiled".
@tf.function
def train_step(images):
noise = tf.random.normal([BATCH_SIZE, noise_dim])
with tf.GradientTape() as gen_tape, tf.GradientTape() as disc_tape:
generated_images = generator(noise, training=True)
real_output = discriminator(images, training=True)
fake_output = discriminator(generated_images, training=True)
gen_loss = generator_loss(fake_output)
disc_loss = discriminator_loss(real_output, fake_output)
gradients_of_generator = gen_tape.gradient(gen_loss, generator.trainable_variables)
gradients_of_discriminator = disc_tape.gradient(disc_loss, discriminator.trainable_variables)
generator_optimizer.apply_gradients(zip(gradients_of_generator, generator.trainable_variables))
discriminator_optimizer.apply_gradients(zip(gradients_of_discriminator, discriminator.trainable_variables))
def train(dataset, epochs):
for epoch in range(epochs):
start = time.time() …Run Code Online (Sandbox Code Playgroud) 我正在尝试将 Tensorflow 数据集转换为 NumPy 数组,但收到弃用警告:
FutureWarning:要堆栈的数组必须作为“序列”类型(例如列表或元组)传递。从 NumPy 1.16 开始,对非序列迭代(例如生成器)的支持已被弃用,并且将来会引发错误。
这样做的“新”方式是什么?
可重现的示例与numpy 1.18.1和tensorflow 2.1.0:
import tensorflow as tf
import numpy as np
ds = tf.data.Dataset.enumerate(tf.data.Dataset.range(20, 40))
np.vstack(ds)
Run Code Online (Sandbox Code Playgroud)
我尝试过的:我一次只能对一个维度进行操作。
np.fromiter(ds.map(lambda x, y: x), float)
Run Code Online (Sandbox Code Playgroud) 我使用 Keras Subclassing API 创建了一个可以正确运行的模型。也model.summary()可以正常工作。当尝试使用tf.keras.utils.plot_model()可视化模型的架构时,它只会输出以下图像:
这几乎感觉像是 Keras 开发团队的一个笑话。这是完整的架构:
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'
from sklearn.datasets import load_diabetes
import tensorflow as tf
tf.keras.backend.set_floatx('float64')
from tensorflow.keras.layers import Dense, GaussianDropout, GRU, Concatenate, Reshape
from tensorflow.keras.models import Model
X, y = load_diabetes(return_X_y=True)
data = tf.data.Dataset.from_tensor_slices((X, y)).\
shuffle(len(X)).\
map(lambda x, y: (tf.divide(x, tf.reduce_max(x)), y))
training = data.take(400).batch(8)
testing = data.skip(400).map(lambda x, y: (tf.expand_dims(x, 0), y))
class NeuralNetwork(Model):
def __init__(self):
super(NeuralNetwork, self).__init__()
self.dense1 = Dense(16, input_shape=(10,), activation='relu', name='Dense1')
self.dense2 = Dense(32, activation='relu', …Run Code Online (Sandbox Code Playgroud) 我用这一行删除了 Conda 环境
conda env remove -n myenv
Run Code Online (Sandbox Code Playgroud)
并试图通过创建一个新的来替换它
conda create -n myenv
Run Code Online (Sandbox Code Playgroud)
它收到此警告:
警告:目标位置“...”已存在目录,但它不是 conda 环境。继续创建环境 (y/[n])?
即使环境已删除,第一个命令似乎也不会删除环境的文件夹。
删除环境时,有没有办法删除文件夹,这样就不会弹出此警告?
我有一个元组列表,列表的长度可以在 ~8 - 1000 之间变化,具体取决于元组的长度。列表中的每个元组都是唯一的。元组的长度为 N,其中每个条目都是一个通用词。
一个示例元组的长度可以是 N (Word 1, Word 2, Word 3, ..., Word N)
对于列表中的任何元组,所述元组中的元素 j 将是''或Word j
一个非常简单的带有字母的例子是
l = [('A', 'B', '', ''), ('A', 'B', 'C', ''),
('', '', '', 'D'), ('A', '', '', 'D'),
('', 'B', '', '')]
Run Code Online (Sandbox Code Playgroud)
每个元组的每个位置要么具有相同的值,要么为空。我想删除所有''在同一位置的另一个元组中具有所有非值的元组。例如,(A,B,'','')包含所有非''值,(A,B,C,'')因此应删除。
filtered_l = [(A,B,C,''),(A,'','',D)]
Run Code Online (Sandbox Code Playgroud)
元组的长度总是相同的(不一定是 4)。元组的长度将在 2-10 之间。
执行此操作的最快方法是什么?
该CuDNNGRU中TensorFlow 1.0是非常快。但是当我转移到TensorFlow 2.0我无法找到CuDNNGRU. 简单GRU在 TensorFlow 2.0.
有没有办法使用CuDNNGRU的TensorFlow 2.0?
python keras tensorflow recurrent-neural-network tensorflow2.0
我正在尝试创建一个图像字幕模型。你能帮忙解决这个错误吗?input1 是图像向量,input2 是字幕序列。32 是字幕长度。我想将图像向量与序列的嵌入连接起来,然后将其提供给解码器模型。
def define_model(vocab_size, max_length):
input1 = Input(shape=(512,))
input1 = tf.keras.layers.RepeatVector(32)(input1)
print(input1.shape)
input2 = Input(shape=(max_length,))
e1 = Embedding(vocab_size, 512, mask_zero=True)(input2)
print(e1.shape)
dec1 = tf.concat([input1,e1], axis=2)
print(dec1.shape)
dec2 = LSTM(512)(dec1)
dec3 = LSTM(256)(dec2)
dec4 = Dropout(0.2)(dec3)
dec5 = Dense(256, activation="relu")(dec4)
output = Dense(vocab_size, activation="softmax")(dec5)
model = tf.keras.Model(inputs=[input1, input2], outputs=output)
model.compile(loss="categorical_crossentropy", optimizer="adam")
print(model.summary())
return model
Run Code Online (Sandbox Code Playgroud)
ValueError: Input 0 of layer lstm_5 is incompatible with the layer: expected ndim=3, found ndim=2. Full shape received: [None, 512]
Run Code Online (Sandbox Code Playgroud)