- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我最近关注了一个 tutorial使 RNN 生成文本:我准确地复制了 python 代码并且也有点理解它。我的模型已经训练了 20 个时期,它产生了一个包含 3 个单词的长循环:
"and the wour and the wour and the wour..."
我读过 Andrej Kaparthy 的 blog改变 RNN 的温度会改变其置信度:
Decreasing the temperature from 1 to some lower number (e.g. 0.5) makes the RNN more confident, but also more conservative in its samples.
我想更改此温度级别以降低 RNN 的置信度,以便它创建新模式,但由于这是我的第一个机器学习项目,我不知道如何操作。
这是我的 Python/keras 代码:
生成文本文件:
# Generate Text
import sys
import numpy
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import Dropout
from keras.layers import LSTM
from keras.callbacks import ModelCheckpoint
from keras.utils import np_utils
filename = "king_lear.txt"
raw_text = open(filename).read()
raw_text = raw_text.lower()
chars = sorted(list(set(raw_text)))
char_to_int = dict((c, i) for i, c in enumerate(chars))
int_to_char = dict((i, c) for i, c in enumerate(chars))
n_chars = len(raw_text)
n_vocab = len(chars)
print "Total Characters: ", n_chars
print "Total Vocab: ", n_vocab
seq_length = 100
dataX = []
dataY = []
for i in range(0, n_chars - seq_length, 1):
seq_in = raw_text[i:i + seq_length]
seq_out = raw_text[i + seq_length]
dataX.append([char_to_int[char] for char in seq_in])
dataY.append(char_to_int[seq_out])
n_patterns = len(dataX)
print "Total Patterns: ", n_patterns
X = numpy.reshape(dataX, (n_patterns, seq_length, 1))
X = X / float(n_vocab)
y = np_utils.to_categorical(dataY)
model = Sequential()
model.add(LSTM(256, input_shape=(X.shape[1], X.shape[2]), return_sequences=True))
model.add(Dropout(0.2))
model.add(LSTM(256))
model.add(Dropout(0.2))
model.add(Dense(y.shape[1], activation='softmax'))
filename = "weights-improvement-08-2.0298-bigger.hdf5"
model.load_weights(filename)
model.compile(loss='categorical_crossentropy', optimizer='adam')
start = numpy.random.randint(0, len(dataX)-1)
pattern = dataX[start]
print "Seed:"
print "\"", ''.join([int_to_char[value] for value in pattern]), "\""
for i in range(60):
x = numpy.reshape(pattern, (1, len(pattern), 1))
x = x / float(n_vocab)
prediction = model.predict(x, verbose=0)
index = numpy.argmax(prediction)
result = int_to_char[index]
seq_in = [int_to_char[value] for value in pattern]
sys.stdout.write(result)
pattern.append(index)
pattern = pattern[1:len(pattern)]
print "\nDone."
学习文件:
# Learn Sentences
import numpy
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import Dropout
from keras.layers import LSTM
from keras.callbacks import ModelCheckpoint
from keras.utils import np_utils
filename = "king_lear.txt"
raw_text = open(filename).read()
raw_text = raw_text.lower()
chars = sorted(list(set(raw_text)))
char_to_int = dict((c, i) for i, c in enumerate(chars))
n_chars = len(raw_text)
n_vocab = len(chars)
print "Total Characters: ", n_chars
print "Total Vocab: ", n_vocab
seq_length = 100
dataX = []
dataY = []
for i in range(0, n_chars - seq_length, 1):
seq_in = raw_text[i:i + seq_length]
seq_out = raw_text[i + seq_length]
dataX.append([char_to_int[char] for char in seq_in])
dataY.append(char_to_int[seq_out])
n_patterns = len(dataX)
print "Total Patterns: ", n_patterns
X = numpy.reshape(dataX, (n_patterns, seq_length, 1))
X = X / float(n_vocab)
y = np_utils.to_categorical(dataY)
model = Sequential()
model.add(LSTM(256, input_shape=(X.shape[1], X.shape[2]), return_sequences=True))
model.add(Dropout(0.2))
model.add(LSTM(256))
model.add(Dropout(0.2))
model.add(Dense(y.shape[1], activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam')
filepath="weights-improvement-{epoch:02d}-{loss:.4f}-bigger.hdf5"
checkpoint = ModelCheckpoint(filepath, monitor='loss', verbose=1, save_best_only=True, mode='min')
callbacks_list = [checkpoint]
model.fit(X, y, epochs=50, batch_size=64, callbacks=callbacks_list)
请帮我做这件事。如果这篇文章有任何问题,请随时纠正我,因为这是我的第一个问题。非常感谢。
最佳答案
查看 this issue在 Keras GitHub 上。您可以在 softmax 之前添加一个 Lambda 层以除以温度:
model.add(Lambda(lambda x: x / temp))
根据 Wiki :
For high temperatures, all actions have nearly the same probability and the lower the temperature, the more expected rewards affect the probability. For a low temperature, the probability of the action with the highest expected reward tends to 1.
关于python - 改变RNN中的 'temperature'生成文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44365593/
我正在为一个 CS 类(class)做作业,他们希望我为此制作一个原型(prototype): void myFunction(double pressure, int &temperature, d
题目地址:https://leetcode.com/problems/daily-temperatures/description/ 题目描述 Given a list of daily temp
在 Rx.Net 的所有文献中,都提到了通常称为 的内容。温度 一个可观察的。 有冷观测 (就像由 Observable.Interval() 和类似工厂方法创建的那些),每次创建新订阅时都会产生副作
大家好, 所以我创建了一个Temperature类,它有一个构造函数来制作温度。温度是一个由 2 个数字组成的数组列表 [冷度、热度]。 public int hotness; public
我想创建一个类似于这个的 map : 此示例显示了全局温度水平。但我需要使用我自己的非温度数据来表示污染水平。 我试过“热图”层,但它对我不起作用,因为它主要用于表示人口水平: 如何使用 Bing 或
前言 上一篇文章介绍了几个开源LLM的环境搭建和本地部署,在使用ChatGPT接口或者自己本地部署的LLM大模型的时候,经常会遇到这几个参数,本文简单介绍一下~ temperatu
这个问题在这里已经有了答案: Javascript object literal: what exactly is {a, b, c}? (3 个答案) 关闭 4 年前。 此演示代码来自react
我正在尝试构建一个温度转换器来帮助自己学习 C#。我只知道大部分基础知识,这是我到目前为止所想出的。我坚持的是获取用户输入的数字,并将其转换为用户之前输入的选择,即华氏度或摄氏度。同样,我只知道基础知
有人可以帮忙解决这个问题吗?我可以让它运行,但在输出消息“外部温度是多少:”“此处的数字”之后 键入 (C) 表示摄氏度或 (F) 表示华氏度: 一旦我输入 C 或 F,它就会显示此错误消息 线程“m
iOS 10 增加了用户在“设置”>“常规”>“语言和区域”>“温度单位”下设置“温度单位”选项的功能。 我的应用如何以编程方式确定此设置,以便它可以显示正确的温度单位?我翻遍了 NSLocale.h
嗨,我有一个来自 simpleweatherjs 的工作天气脚本。我觉得很奇怪,因为从样本来看,我发现一切都可以在 diff 浏览器上运行,但是当我通过结合自动更新和地理定位来定制插件时,并在堆栈中我
iOS 10 增加了用户在“设置”>“通用”>“语言与地区”>“温度单位”下设置“温度单位”选项的功能。 我的应用如何以编程方式确定此设置,以便显示正确的温度单位?我浏览了 NSLocale.h,没有
我对 LabView/DAQ 完全陌生(通常是技术工程师和程序员)。 去年,我的公司购买了 National Instruments 硬件,急于启动和运行项目。 数据采集硬件: 1x NI cDAQ-
我需要一些帮助。我的任务是开发一个应用程序,使用可实例化的类和数组来存储 3 周(一周 7 天)的温度值,并计算和显示每周的平均值。我想我已经很接近了,但是我的代码返回 null 作为平均值,不知道出
我试图获取 android 设备的 CPU 温度,经过一番搜索我发现一些文件存储了温度数据,我唯一需要做的就是读取这些文件。最具体地说,我发现大多数设备都在路径“/sys/class/thermal/
Nest change target_temperature_f : 如何使用 java http PUT 通过 android 代码设置 Nest Thermostat 的目标温度? 最佳答案 您可
我是一名优秀的程序员,十分优秀!