[ MOOC课程学习 ] 人工智能实践:Tensorflow笔记_CH3

课程链接这这里

随机产生 32 组生产出的零件的体积和重量,训练 3000 轮,每 500 轮输出一次损失函数

import tensorflow as tf
import numpy as np

SEED = 23455
rng = np.random.RandomState(SEED)

BATCH_SIZE = 8
X_NUM = 32
STEPS = 3000
LEARNING_RATE = 0.001

X = rng.rand(X_NUM, 2)
# LABEL = [[1] if x[0] + x[1] < 1 else [0] for x in X]
LABEL = [[int(x0 + x1 < 1)] for (x0, x1) in X]

x = tf.placeholder(tf.float32, [None, 2], 'x')
label = tf.placeholder(tf.float32, [None, 1], 'label')
w1 = tf.Variable(tf.random_normal([2, 3], stddev=1, seed=1), name='w1')
w2 = tf.Variable(tf.random_normal([3, 1], stddev=1, seed=1), name='w2')
y1 = tf.matmul(x, w1)
y = tf.matmul(y1, w2)

loss = tf.reduce_mean(tf.square(y - label))
train_op = tf.train.GradientDescentOptimizer(LEARNING_RATE).minimize(loss)


with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    epoch = 0
    for step in range(STEPS):
        start = ( step * BATCH_SIZE) % 32
        end = min( (start + BATCH_SIZE), X_NUM)
        loss_v, _ = sess.run([loss, train_op], feed_dict={x: X[start:end], label: LABEL[start:end]})
        if step % 500 == 0:
            epoch += 1
            print('step {}/{}, loss is {} %'.format(step, STEPS, loss_v))
    print('w1: ', sess.run(w1))
    print('w2: ', sess.run(w2))

1.细节:

LABEL = [[int(x0 + x1 < 1)] for (x0, x1) in X]
label = tf.placeholder(tf.float32, [None, 1], 'label')
# int(x0 + x1 < 1) 要用[]包起来

2. class numpy.random.RandomState

Container for the Mersenne Twister pseudo-random number generator.
手册在这里
方法:

  • beta(a, b[, size]) Draw samples from a Beta distribution.
  • binomial(n, p[, size]) Draw samples from a binomial distribution.
  • bytes(length) Return random bytes.
  • chisquare(df[, size]) Draw samples from a chi-square distribution.
  • choice(a[, size, replace, p]) Generates a random sample from a given 1-D array
  • dirichlet(alpha[, size]) Draw samples from the Dirichlet distribution.
  • exponential([scale, size]) Draw samples from an exponential distribution.
  • f(dfnum, dfden[, size]) Draw samples from an F distribution.
  • gamma(shape[, scale, size]) Draw samples from a Gamma distribution.
  • geometric(p[, size]) Draw samples from the geometric distribution.
  • get_state() Return a tuple representing the internal state of the generator.
  • gumbel([loc, scale, size]) Draw samples from a Gumbel distribution.
  • hypergeometric(ngood, nbad, nsample[, size]) Draw samples from a Hypergeometric distribution.
  • laplace([loc, scale, size]) Draw samples from the Laplace or double exponential distribution with specified location (or mean) and scale (decay).
  • logistic([loc, scale, size]) Draw samples from a logistic distribution.
  • lognormal([mean, sigma, size]) Draw samples from a log-normal distribution.
  • logseries(p[, size]) Draw samples from a logarithmic series distribution.
  • multinomial(n, pvals[, size]) Draw samples from a multinomial distribution.
  • multivariate_normal(mean, cov[, size, …) Draw random samples from a multivariate normal distribution.
  • negative_binomial(n, p[, size]) Draw samples from a negative binomial distribution.
  • noncentral_chisquare(df, nonc[, size]) Draw samples from a noncentral chi-square distribution.
  • noncentral_f(dfnum, dfden, nonc[, size]) Draw samples from the noncentral F distribution.
  • normal([loc, scale, size]) Draw random samples from a normal (Gaussian) distribution.
  • pareto(a[, size]) Draw samples from a Pareto II or Lomax distribution with specified shape.
  • permutation(x) Randomly permute a sequence, or return a permuted range.
  • poisson([lam, size]) Draw samples from a Poisson distribution.
  • power(a[, size]) Draws samples in [0, 1] from a power distribution with positive exponent a - 1.
  • rand(d0, d1, …, dn) Random values in a given shape.
Random values in a given shape.
Create an array of the given shape and populate it with random samples from 
a uniform distribution over [0, 1). 均匀分布 
  • randint(low[, high, size, dtype]) Return random integers from low (inclusive) to high (exclusive).
  • randn(d0, d1, …, dn) Return a sample (or samples) from the “standard normal” distribution.
Return a sample (or samples) from the “standard normal” distribution.

If positive, int_like or int-convertible arguments are provided, 
randn generates an array of shape (d0, d1, ..., dn), 
filled with random floats sampled from a univariate “normal” (Gaussian) distribution of mean 0 
and variance 1 (if any of the d_i are floats, they are first converted to integers by truncation). 
A single float randomly sampled from the distribution is returned if no argument is provided.

This is a convenience function. If you want an interface that takes a tuple as the first argument, 
use numpy.random.standard_normal instead.
标准正态分布
如果想要一个以元组作为第一个参数的接口,改用numpy.random.standard_normal。
  • random_integers(low[, high, size]) Random integers of type np.int between low and high, inclusive.
  • random_sample([size]) Return random floats in the half-open interval [0.0, 1.0).
  • rayleigh([scale, size]) Draw samples from a Rayleigh distribution.
  • seed([seed]) Seed the generator.
  • set_state(state) Set the internal state of the generator from a tuple.
  • shuffle(x) Modify a sequence in-place by shuffling its contents.
  • standard_cauchy([size]) Draw samples from a standard Cauchy distribution with mode = 0.
  • standard_exponential([size]) Draw samples from the standard exponential distribution.
  • standard_gamma(shape[, size]) Draw samples from a standard Gamma distribution.
  • standard_normal([size]) Draw samples from a standard Normal distribution (mean=0, stdev=1).
  • standard_t(df[, size]) Draw samples from a standard Student’s t distribution with df degrees of freedom.
  • tomaxint([size]) Random integers between 0 and sys.maxint, inclusive.
  • triangular(left, mode, right[, size]) Draw samples from the triangular distribution over the interval [left, right].
  • uniform([low, high, size]) Draw samples from a uniform distribution.
  • vonmises(mu, kappa[, size]) Draw samples from a von Mises distribution.
  • wald(mean, scale[, size]) Draw samples from a Wald, or inverse Gaussian, distribution.
  • weibull(a[, size]) Draw samples from a Weibull distribution.
  • zipf(a[, size]) Draw samples from a Zipf distribution.

猜你喜欢

转载自blog.csdn.net/ranmw1129/article/details/80954309