# Tensorflow 简单数据拟合

## 一、查看原数据，打印查看

```import numpy as np
import matplotlib.pyplot as plt
X = files['X']
label = files['d']
len = X.shape[0]
plt.scatter(X[:,0],X[:,1],c=label)
plt.show()```

## 二、三层网络进行拟合

```mport numpy as np
import matplotlib.pyplot as plt
X = files['X']
label = files['d']
len = X.shape[0]

label_one_hot = []
for x1, x2 in X:
if x1 > 0 and x2 > 0:
label_one_hot.append([1, 0])
elif x1 < 0 and x2 < 0:
label_one_hot.append([1, 0])
else:
label_one_hot.append([0, 1])
label_one_hot = np.array(label_one_hot)

import tensorflow as tf
import tensorflow.contrib.slim as slim
x = tf.placeholder(tf.float32, [None, 2], name="input_x")
d = tf.placeholder(tf.float32, [None, 2], name="input_y")
# 对于sigmoid激活函数而言，效果可能并不理想
net = slim.fully_connected(x, 4, activation_fn=tf.nn.relu,
scope='full1', reuse=False)
net = slim.fully_connected(net, 4, activation_fn=tf.nn.relu,
scope='full4', reuse=False)
y = slim.fully_connected(net, 2, activation_fn=None,
scope='full5', reuse=False)
# loss = tf.reduce_mean(tf.square(y-d))
loss = tf.reduce_mean(-d*tf.log(tf.nn.softmax(y)))
correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(d, 1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))

sess = tf.Session()
sess.run(tf.global_variables_initializer())
l = []
a = []
for itr in range(20000):
idx = np.random.randint(0, 2000, 20)
inx = X[idx]
ind = label_one_hot[idx]
if itr%10==0:
_accuracy = sess.run(accuracy,feed_dict={d:label_one_hot,x:X})
print("迭代:{} 准确率:{}".format(itr,_accuracy))
_loss = sess.run(loss,feed_dict={d:ind,x:inx})
l.append(_loss)
a.append(_accuracy)
sess.run(train_step,feed_dict={d:ind,x:inx})

predict = sess.run(tf.argmax(y, 1),feed_dict={x:[[0.2,0.2]]})
print("[02,0,2] 预测值为 %d" % predict)
plt.plot(l)
plt.plot(a)
plt.show()```

#### 讨论

1. 学习率

1. 损失函数，二范数 vs 交叉熵

0 条评论

### 相关文章

https://docs.docker.com/toolbox/toolbox_install_mac/ 安装好Toolbox后，在启动台多出Kitemati...

• ### 深度学习入门数据集--1.Cifar10数据集

官网地址 官网上提供多种格式数据集，我们选bin。首先观察前25条记录。由于图像像素32*32，很多图像人眼也是难以进行辨别。

• ### java 调优概要

分为两类，一种是boolean类型，设置生效不生效，另一类是设置值。-XX:<name>=<value>

• ### 使用TensorFlow实现手写识别（Softmax）

准备工作 由于将TensorFlow安装到了Conda的tensorflow环境，虽然可以用Jupyter notebook打开，但是没有提示，写代码不方便，所...

• ### 多任务验证码识别

使用Alexnet网络进行训练，多任务学习:验证码是根据随机字符生成一幅图片，然后在图片中加入干扰象素，用户必须手动填入，防止有人利用机器人自动批量注册、灌水、...

• ### TensorFlow2.X学习笔记(3)--TensorFlow低阶API之张量

TensorFlow提供的方法比numpy更全面，运算速度更快，如果需要的话，还可以使用GPU进行加速。

• ### TensorFlow2.X学习笔记(4)--TensorFlow低阶API之AutoGraph相关研究

而Autograph机制可以将动态图转换成静态计算图，兼收执行效率和编码效率之利。

• ### 简单的TensorFlow分类教程

本篇文章有2个topic，简单的分类器和TensorFlow。首先，我们会编写函数生成三种类别的模拟数据。第一组数据是线性可分的，第二种是数据是月牙形数据咬合在...