如何解决加载Tensorflow数据集时,“元组索引必须是整数或切片,而不是str”
我正在尝试加载MNIST数据集,但我正在获取
TypeError:元组索引必须是整数或切片,而不是str
这是我的代码:
import numpy as np
import tensorflow as tf
import tensorflow_datasets as tfds
mnist_dataset = tfds.load(name='mnist',with_info=True,as_supervised=True)
mnist_train,mnist_test = mnist_dataset['train'],mnist_dataset['test']
此行给我错误:
mnist_train,mnist_dataset['test']
解决方法
如果包含 {
"data": {
"transactions": [
{
"referenceNumber": "912349949908","transaction": "Reload","details": {
"sourceAccntNickname": "1jkp","sourceAcountNumber": "6*****48","transactionDate": "Feb 08,2018","billerName": "Bill1","billerAccntNumber": "6***98","recurring": false,"amount": 100000
},"status": "failed"
},{
"referenceNumber": "01237659123","details": {
"sourceAccntNickname": "4jkp","sourceAcountNumber": "7*****48","transactionDate": "Feb 11,"billerName": "Bill4","recurring": true,"frequency": "Monthly","amount": 400000
},"status": "success"
},{
"referenceNumber": "012836591828","details": {
"sourceAccntNickname": "3jkp","transactionDate": "Feb 10,"billerName": "Bill3","amount": 300000
},"status": "pending"
},{
"referenceNumber": "69880129365123","details": {
"sourceAccntNickname": "2jkp","transactionDate": "Feb 09,"billerName": "Bill2","amount": 200000
},"status": "failed"
}
]
}
}
,则需要相应地打开包装:
function descendingComparator(a,b,orderBy) {
if (b[orderBy] < a[orderBy]) {
return -1;
}
if (b[orderBy] > a[orderBy]) {
return 1;
}
return 0;
}
function getComparator(order,orderBy) {
return order === 'desc'
? (a,b) => descendingComparator(a,orderBy)
: (a,b) => -descendingComparator(a,orderBy);
}
function stableSort(array,comparator) {
const stabilizedThis = array.map((el,index) => [el,index]);
stabilizedThis.sort((a,b) => {
const order = comparator(a[0],b[0]);
if (order !== 0) return order;
return a[1] - b[1];
});
return stabilizedThis.map((el) => el[0]);
}
/* const date = SchedData.data.transactions.map(
(data) => data.details.transactionDate
);
console.log('Dates:',date,typeof date); */
const headCells = [
{
id: 'transactionDate',numeric: false,disablePadding: true,label: 'PAYMENT DATE',},{ id: 'recurring',disablePadding: false,label: 'SCHEDULE' },{ id: 'frequency',label: 'BILLER' },{
id: 'sourceAccntNickname',label: 'SOURCE',{ id: 'amount',numeric: true,label: 'AMOUNT' },{ id: 'status',label: 'STATUS' },];
const StyledTableCell = withStyles((theme) => ({
head: {
backgroundColor: theme.palette.action.hover,body: {
fontSize: 14,}))(TableCell);
function EnhancedTableHead(props) {
const {
classes,onSelectAllClick,order,orderBy,numSelected,rowCount,onRequestSort,} = props;
const createSortHandler = (property) => (event) => {
onRequestSort(event,property);
};
return (
<TableHead>
<TableRow>
{headCells.map((headCell) => (
<StyledTableCell
key={headCell.id}
sortDirection={orderBy === headCell.id ? order : false}
>
<TableSortLabel
active={orderBy === headCell.id}
direction={orderBy === headCell.id ? order : 'asc'}
onClick={createSortHandler(headCell.id)}
>
{headCell.label}
{orderBy === headCell.id ? (
<span className={classes.visuallyHidden}>
{order === 'desc' ? 'sorted descending' : 'sorted ascending'}
</span>
) : null}
</TableSortLabel>
</StyledTableCell>
))}
</TableRow>
</TableHead>
);
}
with_info=True
是一个包含2个项目的字典和一个mnist_dataset,info = tfds.load(name='mnist',with_info=True,as_supervised=True)
对象的元组:
mnist_dataset