小编Joe*_*iro的帖子

如何在keras中连接两个层?

我有一个有两层神经网络的例子.第一层有两个参数,有一个输出.第二个应该采用一个参数作为第一层和另一个参数的结果.它应该是这样的:

x1  x2  x3
 \  /   /
  y1   /
   \  /
    y2
Run Code Online (Sandbox Code Playgroud)

所以,我创建了一个有两层的模型并尝试合并它们,但它返回一个错误:The first layer in a Sequential model must get an "input_shape" or "batch_input_shape" argument.就行了result.add(merged).

模型:

first = Sequential()
first.add(Dense(1, input_shape=(2,), activation='sigmoid'))

second = Sequential()
second.add(Dense(1, input_shape=(1,), activation='sigmoid'))

result = Sequential()
merged = Concatenate([first, second])
ada_grad = Adagrad(lr=0.1, epsilon=1e-08, decay=0.0)
result.add(merged)
result.compile(optimizer=ada_grad, loss=_loss_tensor, metrics=['accuracy'])
Run Code Online (Sandbox Code Playgroud)

python machine-learning neural-network keras

79
推荐指数
3
解决办法
9万
查看次数

如何将Tensorflow张量尺寸(形状)作为int值?

假设我有一个Tensorflow张量.如何将张量的尺寸(形状)作为整数值?我知道有两种方法,tensor.get_shape()以及tf.shape(tensor),但我不能让形状值作为整int32数值.

例如,下面我创建了一个二维张量,我需要得到行数和列数,int32以便我可以调用reshape()以创建一个形状的张量(num_rows * num_cols, 1).但是,该方法tensor.get_shape()返回值作为Dimension类型,而不是int32.

import tensorflow as tf
import numpy as np

sess = tf.Session()    
tensor = tf.convert_to_tensor(np.array([[1001,1002,1003],[3,4,5]]), dtype=tf.float32)

sess.run(tensor)    
# array([[ 1001.,  1002.,  1003.],
#        [    3.,     4.,     5.]], dtype=float32)

tensor_shape = tensor.get_shape()    
tensor_shape
# TensorShape([Dimension(2), Dimension(3)])    
print tensor_shape    
# (2, 3)

num_rows = tensor_shape[0] # ???
num_cols = tensor_shape[1] # ???

tensor2 = tf.reshape(tensor, (num_rows*num_cols, 1))    
# Traceback (most …
Run Code Online (Sandbox Code Playgroud)

python artificial-intelligence machine-learning tensorflow

70
推荐指数
4
解决办法
9万
查看次数

Keras plot_model未正确显示输入图层

我的模型定义如下:

model = keras.models.Sequential()
model.add(layers.Embedding(max_features, 128, input_length=max_len,
                       input_shape=(max_len,), name='embed'))
model.add(layers.Conv1D(32, 7, activation='relu'))
model.add(layers.MaxPooling1D(5))
model.add(layers.Conv1D(32, 7, activation='relu'))
model.add(layers.GlobalMaxPooling1D())
model.add(layers.Dense(1))
Run Code Online (Sandbox Code Playgroud)

当我使用plot_model函数绘制它时:

from keras.utils import plot_model

plot_model(model, show_shapes=True, to_file='model.png')
Run Code Online (Sandbox Code Playgroud)

我得到的图纸是 像这样

输入层是一系列数字.有人知道如何让它正确显示输入吗?

python artificial-intelligence deep-learning keras tensorflow

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