我已经使用CNN训练了二进制分类模型,这是我的代码
model = Sequential()
model.add(Convolution2D(nb_filters, kernel_size[0], kernel_size[1],
border_mode='valid',
input_shape=input_shape))
model.add(Activation('relu'))
model.add(Convolution2D(nb_filters, kernel_size[0], kernel_size[1]))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=pool_size))
# (16, 16, 32)
model.add(Convolution2D(nb_filters*2, kernel_size[0], kernel_size[1]))
model.add(Activation('relu'))
model.add(Convolution2D(nb_filters*2, kernel_size[0], kernel_size[1]))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=pool_size))
# (8, 8, 64) = (2048)
model.add(Flatten())
model.add(Dense(1024))
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(2)) # define a binary classification problem
model.add(Activation('softmax'))
model.compile(loss='categorical_crossentropy',
optimizer='adadelta',
metrics=['accuracy'])
model.fit(x_train, y_train,
batch_size=batch_size,
nb_epoch=nb_epoch,
verbose=1,
validation_data=(x_test, y_test))
Run Code Online (Sandbox Code Playgroud)
在这里,我想像TensorFlow一样获得每一层的输出,我该怎么做?
阅读完文档后,我保存了一个模型TensorFlow,这是我的演示代码:
# Create some variables.
v1 = tf.Variable(..., name="v1")
v2 = tf.Variable(..., name="v2")
...
# Add an op to initialize the variables.
init_op = tf.global_variables_initializer()
# Add ops to save and restore all the variables.
saver = tf.train.Saver()
# Later, launch the model, initialize the variables, do some work, save the
# variables to disk.
with tf.Session() as sess:
sess.run(init_op)
# Do some work with the model.
..
# Save the variables to disk.
save_path = …Run Code Online (Sandbox Code Playgroud) 在降价时,my_stock_index是我的股票指数.但我想要它表明my_stock_index.怎么办?
Drop-Out是正规化技术.并且我想将它应用于非MNIST数据以减少过度拟合以完成我的Udacity深度学习课程作业.我已经阅读了关于如何调用的tensorflow文档tf.nn.dropout.这是我的代码
# before proceeding further.
from __future__ import print_function
import numpy as np
import tensorflow as tf
from six.moves import cPickle as pickle
pickle_file = 'notMNIST.pickle'
with open(pickle_file, 'rb') as f:
save = pickle.load(f)
train_dataset = save['train_dataset']
train_labels = save['train_labels']
valid_dataset = save['valid_dataset']
valid_labels = save['valid_labels']
test_dataset = save['test_dataset']
test_labels = save['test_labels']
del save # hint to help gc free up memory
print('Training set', train_dataset.shape, train_labels.shape)
print('Validation set', valid_dataset.shape, valid_labels.shape)
print('Test set', test_dataset.shape, test_labels.shape)
image_size = 28 …Run Code Online (Sandbox Code Playgroud) 我感到困惑之间的差异apply_gradients,并minimize在tensorflow优化的.例如,
optimizer = tf.train.AdamOptimizer(1e-3)
grads_and_vars = optimizer.compute_gradients(cnn.loss)
train_op = optimizer.apply_gradients(grads_and_vars, global_step=global_step)
Run Code Online (Sandbox Code Playgroud)
和
optimizer = tf.train.AdamOptimizer(1e-3)
train_op = optimizer.minimize(cnn.loss, global_step=global_step)
Run Code Online (Sandbox Code Playgroud)
他们确实一样吗?
如果我想降低学习率,我可以使用以下代码吗?
global_step = tf.Variable(0, name="global_step", trainable=False)
starter_learning_rate = 1e-3
learning_rate = tf.train.exponential_decay(starter_learning_rate, global_step,
100, FLAGS.decay_rate, staircase=True)
# Passing global_step to minimize() will increment it at each step.
learning_step = (
optimizer = tf.train.AdamOptimizer(learning_rate)
grads_and_vars = optimizer.compute_gradients(cnn.loss)
train_op = optimizer.apply_gradients(grads_and_vars, global_step=global_step)
)
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!
我已经阅读了DataFrame.apply的文档
DataFrame.apply(func,axis = 0,broadcast = False,raw = False,reduce = None,args =(),**kwds)沿DataFrame的输入轴应用函数.
那么,如何将函数应用于特定列?
In [1]: import pandas as pd
In [2]: data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
In [3]: df = pd.DataFrame(data)
In [4]: df
Out[4]:
A B C
0 1 4 7
1 2 5 8
2 3 6 9
In [5]: def addOne(v):
...: v += 1
...: return v
...:
In [6]: df.apply(addOne, axis=1)
Out[6]:
A B C …Run Code Online (Sandbox Code Playgroud) NB默认会话是当前线程的属性.如果您创建一个新线程,并希望在该线程中使用默认会话,则必须在该线程的函数中显式添加一个sess.as_default():.
我的理解是,如果在创建新线程时还有两个会话,我们必须设置一个会话来在其中运行TensorFlow代码.因此,要执行此操作,将选择一个会话并as_default()进行调用.
注意使用sess.as_default():block输入a不会影响当前的默认图形.如果使用多个图形,并且sess.graph与tf.get_default_graph的值不同,则必须使用sess.graph.as_default():block显式输入,以使sess.graph成为默认图形.
在sess.as_default()块中,要调用特定图形,必须调用sess.graph.as_default()运行图形?
由于我的pandas数据帧的一列有nan值,所以当我想获得该列的最大值时,它只返回错误.
>>> df.iloc[:, 1].max()
'error:512'
Run Code Online (Sandbox Code Playgroud)
如何跳过该nan值并获取该列的最大值?
每当我尝试使用时tf.reset_default_graph(),我都会收到此错误:IndexError: list index out of range或者``.我应该在哪部分代码中使用它?我什么时候应该使用它?
编辑:
我更新了代码,但错误仍然存在.
def evaluate():
with tf.name_scope("loss"):
global x # x is a tf.placeholder()
xentropy = tf.nn.softmax_cross_entropy_with_logits(labels=y, logits=neural_network(x))
loss = tf.reduce_mean(xentropy, name="loss")
with tf.name_scope("train"):
optimizer = tf.train.AdamOptimizer()
training_op = optimizer.minimize(loss)
with tf.name_scope("exec"):
with tf.Session() as sess:
for i in range(1, 2):
sess.run(tf.global_variables_initializer())
sess.run(training_op, feed_dict={x: np.array(train_data).reshape([-1, 1]), y: label})
print "Training " + str(i)
saver = tf.train.Saver()
saver.save(sess, "saved_models/testing")
print "Model Saved."
def predict():
with tf.name_scope("predict"):
tf.reset_default_graph()
with tf.Session() as sess:
saver …Run Code Online (Sandbox Code Playgroud) 我是一个有张量流的初学者,所以请原谅这是一个愚蠢的问题,答案是显而易见的.
我创建了一个Tensorflow图,从X和y的占位符开始,我已经优化了一些代表我的模型的张量.图的一部分是可以计算预测矢量的东西,例如线性回归
y_model = tf.add(tf.mul(X,w),d)
y_vals = sess.run(y_model,feed_dict={....})
Run Code Online (Sandbox Code Playgroud)
训练结束后,我有w和d的可接受值,现在我想保存我的模型以供日后使用.然后,在另一个python会话中,我想恢复模型,以便我可以再次运行
## Starting brand new python session
import tensorflow as tf
## somehow restor the graph and the values here: how????
## so that I can run this:
y_vals = sess.run(y_model,feed_dict={....})
Run Code Online (Sandbox Code Playgroud)
对于某些不同的数据并取回y值.
我希望这种方式能够存储和恢复用于计算占位符的y值的图形 - 只要占位符获得正确的数据,这应该在没有用户(应用程序的用户)的情况下透明地工作.模型)需要知道图形是什么样的).
据我所知tf.train.Saver().save(..)只保存变量,但我也想保存图形.我认为tf.train.export_meta_graph在这里可能是相关的,但我不明白如何正确使用它,文档对我来说有点神秘,并且示例甚至不使用export_meta_graph.