TensorFlow的基础操作
import tensorflow as tf
x=tf.Variable(3,name='x')
y=tf.Variable(4,name='y')
f=x*y
with tf.Session() as sess:
x.initializer.run()
y.initializer.run()
result=f.eval()
print(result)
对sklearn数据集里面图片集的一个小操作
#wyt
import numpy as np
from sklearn.datasets import load_sample_images
import tensorflow as tf
import matplotlib.pyplot as plt
# 加载数据集
dataset = np.array(load_sample_images().images, dtype=np.float32)
# 数据集里面两张图片,一个建筑物,一个花
batch_size, height, width, channels = dataset.shape
print(batch_size, height, width, channels)
# plt.imshow(load_sample_images().images[0]) # 绘制第一个图
# plt.show()
# plt.imshow(load_sample_images().images[1]) # 绘制第一个图
# plt.show()
# 创建两个filters
# 高,宽,通道,卷积核
# 7, 7, channels, 2
filters_test = np.zeros(shape=(7, 7, channels, 2), dtype=np.float32)
filters_test[:, 3, :, 0] = 1
filters_test[3, :, :, 1] = 1
# filter参数是一个filters集合
X = tf.placeholder(tf.float32, shape=(None, height, width, channels))
convolution = tf.nn.conv2d(X, filter=filters_test, strides=[1, 2, 2, 1], padding='SAME')
#strides中第一个和最后一个最好为1,而中间两个数分别是水平和垂直的步长
with tf.Session() as sess:
output = sess.run(convolution, feed_dict={X: dataset})
# plt.imshow(load_sample_images().images[0]) # 绘制第一个图
# plt.show()
#
# plt.imshow(output[0, :, :, 0]) # 绘制第一个图的第一个特征图
# plt.show()
#
# plt.imshow(output[0, :, :, 1]) # 绘制第一个图的第二个特征图
# plt.show()
plt.imshow(load_sample_images().images[1]) # 绘制第二个图
plt.show()
plt.imshow(output[1, :, :, 0]) # 绘制第二个图的特征图
plt.show()
plt.imshow(output[1, :, :, 1]) # 绘制第二个图的特征图
plt.show()