小编sib*_*iby的帖子

重用一组Keras图层

我知道您可以重用Keras图层。例如,我为解码器网络声明了两层:

decoder_layer_1 = Dense(intermediate_dim,activation='relu',name='decoder_layer_1')
decoder_layer_2 = Dense(intermediate_dim,activation='relu',name='decoder_layer_2')
Run Code Online (Sandbox Code Playgroud)

在第一个模型中使用:

decoded = decoder_layer_1(z)
decoded = decoder_layer_2(decoded)
Run Code Online (Sandbox Code Playgroud)

在第二个模型中使用:

_decoded = decoder_layer_1(decoder_input)
_decoded = decoder_layer_2(_decoded)
Run Code Online (Sandbox Code Playgroud)

如果我只需要重用几个层,则上述方法是可以的,如果我想重用大量的层(例如,具有10个层的解码器网络),则比较麻烦。除了显式声明每一层之外,还有其他更有效的方法吗?是否有实现它的方法,如下所示:

decoder_layers = group_of_layers() 
Run Code Online (Sandbox Code Playgroud)

在第一个模型中重复使用:

decoded = group_of_layers(z)
Run Code Online (Sandbox Code Playgroud)

在第二个模型中重复使用:

_decoded = group_of_layers(decoder_input)
Run Code Online (Sandbox Code Playgroud)

python autoencoder keras tensorflow

6
推荐指数
1
解决办法
1685
查看次数

如何在 tf.data API 中使用 Keras 生成器

我正在尝试使用 Keras 预处理库中的生成器。我想对此进行试验,因为 Keras 为图像增强提供了很好的功能。但是,我不确定这是否真的可能。

以下是我从 Keras 生成器制作 tf 数据集的方法:

def make_generator():
    train_datagen = ImageDataGenerator(rescale=1. / 255)
    train_generator = 
    train_datagen.flow_from_directory(train_dataset_folder,target_size=(224, 224), class_mode='categorical', batch_size=32)
    return train_generator

train_dataset = tf.data.Dataset.from_generator(make_generator,(tf.float32, tf.float32)).shuffle(64).repeat().batch(32)
Run Code Online (Sandbox Code Playgroud)

请注意,如果您尝试直接将其train_generator作为参数提供给tf.data.Dataset.from_generator,则会出现错误。但是,上述方法不会产生错误。

当我在会话中运行它以检查数据集的输出时,我收到以下错误。

iterator = train_dataset.make_one_shot_iterator()
next_element = iterator.get_next()
sess = tf.Session()
for i in range(100):
    sess.run(next_element)
Run Code Online (Sandbox Code Playgroud)

找到属于 2 个类别的 1000 张图像。-------------------------------------------------- ------------------------- InvalidArgumentError Traceback (最近一次调用最后一次) /usr/local/lib/python3.6/dist-packages/tensorflow/ python/client/session.py in _do_call(self, fn, *args) 1291 try: -> 1292 return fn(*args) 1293 除了 errors.OpError as e:

/usr/local/lib/python3.6/dist-packages/tensorflow/python/client/session.py in _run_fn(feed_dict, fetch_list, target_list, …

python keras tensorflow tensorflow-datasets

6
推荐指数
1
解决办法
3381
查看次数

TensorFlow操作'tf.train.match_filenames_once'无效

我有以下代码从目录中读取文件名:

directory = "C:/pics/*.csv"
file_names=tf.train.match_filenames_once(directory)
print(file_names)
<tf.Variable 'matching_filenames_1:0' shape=<unknown> dtype=string_ref>

with tf.Session() as sess:
    tf.global_variables_initializer().run()
    print(sess.run(file_names))
Run Code Online (Sandbox Code Playgroud)

当我运行会话时,我收到以下错误:"尝试使用未初始化的值matching_filenames"

请告诉我我做错了什么.

file-io tensorflow

5
推荐指数
1
解决办法
2628
查看次数

安装后无法在 Google Colab 中导入模块

我试图按照此处提供的说明克隆和安装 Google Unrestricted 对抗性示例存储库。但我无法导入任何模块。首先,我克隆了存储库并更改到该目录。

!git clone https://github.com/google/unrestricted-adversarial-examples.git
cd unrestricted-adversarial-examples
Run Code Online (Sandbox Code Playgroud)

然后我使用了 pip install 命令。

!pip -e install bird-or-bicycle
Run Code Online (Sandbox Code Playgroud)

安装完成,没有任何错误。但是,当我尝试导入时,出现“找不到模块错误”。谁能告诉我我做错了什么?我在我的 PC 上尝试了相同的命令并且它有效。

import bird_or_bicycle
Run Code Online (Sandbox Code Playgroud)

ModuleNotFoundError: 没有名为“bird_or_bicycle”的模块

github google-colaboratory

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

数据集API"flat_map"方法为使用"map"方法的相同代码生成错误

我正在尝试使用TensorFlow Dataset API和Pandas创建一个创建管道来读取多个CSV文件.但是,使用该flat_map方法会产生错误.但是,如果我使用map方法,我可以构建代码并在会话中运行它.这是我正在使用的代码.我已经在TensorFlow Github存储库中打开了#17415问题.但显然,这不是一个错误,他们让我发布在这里.

folder_name = './data/power_data/'
file_names = os.listdir(folder_name)
def _get_data_for_dataset(file_name,rows=100):#
    print(file_name.decode())

    df_input=pd.read_csv(os.path.join(folder_name, file_name.decode()),
                         usecols =['Wind_MWh','Actual_Load_MWh'],nrows = rows)
    X_data = df_input.as_matrix()
    X_data.astype('float32', copy=False)

    return X_data
dataset = tf.data.Dataset.from_tensor_slices(file_names)
dataset = dataset.flat_map(lambda file_name: tf.py_func(_get_data_for_dataset, 
[file_name], tf.float64))
dataset= dataset.batch(2)
fiter = dataset.make_one_shot_iterator()
get_batch = iter.get_next()
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:map_func must return a Dataset object.我使用时管道工作没有错误,map但它没有给出我想要的输出.例如,如果Pandas从我的每个CSV文件中读取N行,我希望管道连接B文件中的数据并给我一个形状为数组的数组(N*B,2).相反,它给了我(B,N,2),其中B是批量大小.map添加另一个轴而不是在现有轴上连接.根据我在文档中的理解,flat_map我们应该提供平坦的输出.在本文档中,都mapflat_map回报类型的数据集.那么我的代码如何使用map而不是flat_map?

如果你能指出数据集API与Pandas模块一起使用的代码,那也很棒.

pandas tensorflow tensorflow-datasets

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